大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 分布式內存數據庫之Redis的持久化

分布式內存數據庫之Redis的持久化

更新時間:2021-08-17 10:02:37 來源:動力節點 瀏覽990次

1.Redis 提供了不同級別的持久化方式:

Redis提供了兩種方式對數據進行持久化,分別是RDB和AOF。

RDB持久化方式能夠在指定的時間間隔能對你的數據進行快照存儲。

AOF持久化方式記錄每次對服務器寫的操作,當服務器重啟的時候會重新執行這些命令來恢復原始的數據,AOF命令以redis協議追加保存每次寫的操作到文件末尾。Redis還能對AOF文件進行后臺重寫,使得AOF文件的體積不至于過大。

如果你只希望你的數據在服務器運行的時候存在,你也可以不使用任何持久化方式。

你也可以同時開啟兩種持久化方式,,在這種情況下,當redis重啟的時候會優先載入AOF文件來恢復原始的數據,因為在通常情況下AOF文件保存的數據集要比RDB文件保存的數據集要完整。

2.配置文件中對兩種存儲方式的設置

Redis默認開啟RDB的存儲方式。

The filename where to dump the DB

dbfilename “dump.rdb”

對于AOF的存儲方式redis并沒有默認開啟。通過配置開啟如下:

把注釋去掉就開啟了AOF的存儲方式。

3.RDB(Redis DataBase)介紹

開啟RDB方式redis會在指定的時間段內將內存中的數據快照到磁盤中,redis啟動時再恢復到內存中。

Redis會單獨創建(fork)一個線程,將數據寫入到臨時文件中,持久化的過程都結束了,在用這個臨時文件替換上次的臨時文件。

如果需要進行大規模的數據恢復,并且對于數據恢復不是很敏感,RDB的方式比AOF方式更加高效,RDB的缺點就在于最后一次持久化后的數據有可能會丟失。

RDB持久化數據觸發配置在redis.conf中:

默認是當一條數據寫入時15分鐘持久化一次,當10條數據發生變化5分鐘(為了測試方便改成了2分鐘)持久化一次,當10000條數據發生變化1分鐘進行持久化。

RDB存儲方式測試:

兩分鐘后在文件夾中生成了一個dump.rdb的文件,這個就是臨時文件,保存該臨時文件。

再次清空數據庫:

然后刪除dum.rdb文件,將dump.rdb.bk文件恢復成dump.rdb。再啟動服務器。

如上圖所示,redis中的數據已經從dump.rdb中恢復過來了。

4.AOF(APPEND ONLY FILE)存儲介紹

以日志的形式來記錄每個寫操作,將Redis執行過的所有寫指令記錄下來(讀操作不記錄),

只許追加文件但不可以改寫文件,redis啟動之初會讀取該文件重新構建數據,換言之,redis

重啟的話就根據日志文件的內容將寫指令從前到后執行一次以完成數據的恢復工作。

注:所有的指令記錄也包括flushDB操作,后面會有坑。

在redis中這種存儲方式默認是關閉的,需要在redis.conf文件中開啟,開啟方式在文中已經做了介紹,就不在贅述。

Redis對于AOF存儲方式是怎么持久化的在redis.conf也有,如下:

配置文件對于這種方式的持久化有三種方式:

(1)有寫操作就寫。顯然這種方式影響性能。但是數據完整,不會丟數據

(2)不開啟。不開啟AOF就沒意思了

(3)每秒寫文件。折中的方式更加合適。但是有可能導致一秒的數據丟失。

AOF的重寫(Rewrite)

AOF采用文件追加方式,文件會越來越大為避免出現此種情況,新增了重寫機制,

當AOF文件的大小超過所設定的閾值時,Redis就會啟動AOF文件的內容壓縮。

重寫原理

AOF文件持續增長而過大時,會fork出一條新進程來將文件重寫(也是先寫臨時文件最后再rename),遍歷新進程的內存中數據,每條記錄有一條的Set語句。重寫aof文件的操作,并沒有讀取舊的aof文件,而是將整個內存中的數據庫內容用命令的方式重寫了一個新的aof文件,這點和快照有點類似。

觸發機制:

Redis會記錄上次重寫時的AOF大小,默認配置是當AOF文件大小是上次rewrite后大小的一倍且文件大于64M時觸發。

AOF存儲方式優點:

(1)每秒同步。

(2)每修改同步。

AOF存儲方式缺點:

(1)AOF文件遠大于EDB。

(2)運行效率慢。

AOF存儲方式測試:

(1)寫入數據

(2)寫入之后在文件夾中出現了AOF文件,再對這個文件進行備份

(3)清空數據庫并退出

(4)恢復appendonly.aof文件

(5)啟動redis服務器,查看數據

如圖所示數據已經恢復。

5.同時開啟了RDB和AOF兩種方式默認是哪種方式?

從剛才測試AOF可以看出兩種方式同時開啟是使用AOF的存儲方式。

當只開啟了RBD方式時數據庫中有10條數據,當開啟了AOF方式之后,由于appendonly.aof文件中沒有備份數據,所以啟動后如第二個框中框出的所示沒有數據。從這里可以看出默認首先使用AOF的存儲方式。

6.Redis重寫

AOF是使用文件追加的方式,隨著系統使用的越來越久,AOF的文件會越來越大,當AOF的大小超過文件大小所設定的閾值時,Redis就會啟動AOF文件內容壓縮,只保留可以恢復的最小指令集。

重寫原理:對文件進行壓縮(AOF文件過大時,redis會fork出一條新的進程將文件重寫,遍歷新進程中的內存數據)。

觸發條件:Redis會記錄上次重寫時AOF的大小,默認配置是當AOF文件大小是上次rewrite后大小的一倍,且文件大于64M時觸發,可以在配置文件中修改。

以上就是動力節點小編介紹的"分布式內存數據庫之Redis的持久化",希望對大家有幫助,想了解更多可查看Java分布式應用教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产亚洲精品一区二区三区 | 国产精品小视频在线观看 | 在线观看99 | 99热这里只有精品第一页 | 特黄特级毛片免费视 | 婷婷六月激情在线综合激情 | 在线观看h片 | 国产美女a做受大片免费 | 欧美一区二区三区视频 | 日韩在线不卡 | 免费国产午夜高清在线视频 | 9299yy看片淫黄大片在线 | 日本成人一区二区三区 | 国产欧美日韩在线播放 | 特黄特a级特别特级特毛片 特黄特黄aaaa级毛片免费看 | 黄色高清在线观看 | 日本特黄特色aaa大片免费欧 | 97视频免费看 | 最猛黑人xxxⅹ黑人猛交 | 国产精品视频免费观看 | 一本到中文字幕高清不卡在线 | 成人综合婷婷国产精品久久免费 | 免费的毛片网站 | 91在线免费看 | 男女羞羞网站 | 色综合网站国产麻豆 | 天天操天天插天天射 | 一级床上爽高清播放 | 久久久久久麻豆 | 亚洲v欧美| 国产激情影院 | 五月婷婷在线播放 | 亚洲性在线 | 国产国拍亚洲精品福利 | 九九在线观看高清免费 | 日韩精品视频一区二区三区 | 亚洲欧美日韩v中文在线 | 亚洲免费中文 | 精品国产一区二区三区四区不 | 日本裤袜xxxx视频 | 久久视频免费观看 |