新聞中心
Redis 的數據全部在內存里,如果突然宕機,數據就會全部丟失,因此必須有一種機制來保證 Redis 的數據不會因為故障而丟失,這種機制就是 Redis 的持久化機制,下面為大家詳細講解講解一下Redis持久化存儲。

成都創(chuàng)新互聯公司從2013年成立,是專業(yè)互聯網技術服務公司,擁有項目網站設計制作、做網站網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元海陵做網站,已為上家服務,為海陵各地企業(yè)和個人服務,聯系電話:18980820575
一、RBD(快照)
原理
在某個時間點將內存中的數據寫入一個磁盤的臨時文件,持久化結束后,用這個臨時文件替換上次持久化的文件。
配置文件
save 900 1 # 在900秒內如果鍵值修改過1次就快照
save 300 10 # 在300秒內如果鍵值修改過10次就快照
save 60 10000 # 在60秒內鍵值修改過10000次就快照
stop-writes-on-bgsave-error yes # 后臺備份出錯時,是否禁止新的寫入操作?
如果不禁止容易造成數據不一致
rdbcompression yes # 導出的rdb文件是否壓縮
rdbchecksum yes # 恢復時導入rdb文件是否檢驗完整性、是否檢驗版本是否一致
dbfilename dump.rdb # 導出來得rdb文件名
dir /var/lib/redis # rdb的存放路徑
二、AOF
原理
?通過將發(fā)送到服務器的寫操作??命令??記錄下來,形成AOF文件,此文件只許追加不能修改,Redis啟動時會讀取AOF文件后重構數據(重新執(zhí)行一遍)。 文件默認名稱是appendonly.aof?
配置文件
appendonly no # 是否開啟aof功能
appendfilename "appendonly.aof" # 文件名
appendfsync always # 只要一修改就同步至緩沖區(qū),并同步至磁盤
appendfsync everysec # 每秒將數據同步至緩沖區(qū),并同步至磁盤
appendfsync no # redis不設定同步策略,由內核設定的參數決定是否同步
no-appendfsync-on-rewrite no # appendfsync設定為always或everysec的話,還要不要同步磁盤
auto-aof-rewrite-percentage 100 # 每隔多久重構aof文件,單位秒
auto-aof-rewrite-min-size 64mb # aof文件最小為多少時重構一次aof文件。搭配上一條使用
aof-load-truncated yes # 崩潰修復后自動進行全備
aof重寫、重構
將大量重復的命令合并成一條命令,而不必頻繁的去重新執(zhí)行每一條命令.
三、AOF對比RDB
AOF更加安全,可以將數據即時同步到文件中,但是消耗磁盤I/O,效率低
Snapshot更高效,它是服務器在正常運行情況下數據同步最佳手段,文件尺寸小,效率高,安全性低
注:RDB與AOF同時開啟 默認使用AOF來恢復數據
四、常用架構
? 架構良好的環(huán)境中:Master使用AOF,Slave使用snapshot。 原因是主要確保數據完整,從要速度快。?
網絡環(huán)境較差:建議使用master與slave同時使用AOF更加安全
網絡良好、需要收密集型寫操作:建議Master采用snapshot,Slave采用AOF
網頁名稱:詳解Redis持久化存儲機制
URL地址:http://www.dlmjj.cn/article/djgiecd.html


咨詢
建站咨詢
