1. 什么是RDB:
RDB(Redis DataBase):RDB 持久性以指定的時間間隔執(zhí)行數(shù)據(jù)集的時間點(diǎn)快照。
說人話:實(shí)現(xiàn)類似照片記錄效果的方式,把某一時刻的數(shù)據(jù)和狀態(tài)以文件的形式寫到磁盤上,也就是快照,恢復(fù)時再將硬盤快照文件直接讀回到內(nèi)存里。
這樣一來,即使故障宕機(jī),快照文件也不會丟失,數(shù)據(jù)的可靠性也就得到了保證。這個快照文件就稱為RDB文件(dump.rdb)。
2. 修改配置文件:
2.1 查詢redis7原始配置文件:
要注意的一點(diǎn)是redis7相比于redis6在快照的時間間隔上和修改頻次是變化較大的
2.2 將時間間隔和頻次修改為5秒2次:
2.3 修改rdb文件的保存路徑已經(jīng)文件名(方便自己查找):
默認(rèn)路徑為:/usr/local/redis
修改為:
注意:這里修改路徑可能會出現(xiàn)問題:
解決方法是dir /myredis/dumpfiles 改成 dir ./myredis/dumpfiles
默認(rèn)文件名:
修改為:
修改成功:
3. 觸發(fā)備份:
3.1 自動觸發(fā):
5秒鐘修改2次自動觸發(fā)(兩個條件都要滿足,即時間間隔大于等于5秒,修改次數(shù)大于等于2次)
3.2 備份恢復(fù):
在啟動服務(wù)時,redis自動根據(jù)rdb文件進(jìn)行備份。
有兩種特殊情況,當(dāng)執(zhí)行flushall/flushdb(這種情況生成的rdb文件即為空,沒有意義)或者退出客戶端,redis自動會生成一個當(dāng)下最新的rdb文件。
具體實(shí)踐參考https://www.bilibili.com/video/BV13R4y1v7sP?p=31&vd_source=a579082d717747b1e99fe189207e7c29
注意:不可以把備份文件dump.rdb和生產(chǎn)redis服務(wù)器放在同一臺機(jī)器,必須分開各自存儲,以防生產(chǎn)機(jī)物理損壞后備份文件也掛了。
3.3 手動觸發(fā):
兩個命令:save(線上生產(chǎn)禁用)和bgsave(默認(rèn))
save在主程序中執(zhí)行會阻塞當(dāng)前redis服務(wù)器直到持久化工作完成,執(zhí)行save命令期間,redis不能處理其他命令,非常嚴(yán)重的問題,線上禁止使用。
bgsave命令會在后臺異步進(jìn)行快照操作,這個操作是fork(即產(chǎn)生一個和父進(jìn)程完全相同的子進(jìn)程)出一個子進(jìn)程在后臺完成的不阻塞,快照同時還可以響應(yīng)客戶端請求。
4. RDB的優(yōu)勢與缺點(diǎn):
4.1 優(yōu)勢:
1)適合大規(guī)模的數(shù)據(jù)恢復(fù)
2)適合按照業(yè)務(wù)定時備份
3)對數(shù)據(jù)完整性和一致性不高
4)RDB文件在內(nèi)存中的加載速度比AOF快得多
4.2 缺點(diǎn):
1)在一定時間間隔內(nèi)做備份,如果redis意外發(fā)生宕機(jī),如斷電,則會丟失當(dāng)前至最近一次快照之間的數(shù)據(jù)
具體實(shí)踐參考https://www.bilibili.com/video/BV13R4y1v7sP?p=33&vd_source=a579082d717747b1e99fe189207e7c29
2)RDB需要經(jīng)常fork出一個子進(jìn)程在磁盤上持久化,如果數(shù)據(jù)量很大則會導(dǎo)致I/O嚴(yán)重影響服務(wù)器性能
5. 檢查修復(fù)dump.rdb文件:
在rdb文件遷移或者寫入過程中都有可能發(fā)生數(shù)據(jù)損壞,這些數(shù)據(jù)損壞很可能使整個rdb文件不可用,所以需要嘗試檢查并修復(fù)。
先進(jìn)入/usr/local/redis/bin,使用里面的redis-check-rdb進(jìn)行rdb文件檢查修復(fù):
修復(fù)成功:
如果修復(fù)不了,那只能自認(rèn)倒霉了。。。文章來源:http://www.zghlxwxcb.cn/news/detail-440824.html
6. RDB快照禁用:
1)redis-cli set save ""
2) 修改配置文件:save 5 2 --> save "" (推薦)文章來源地址http://www.zghlxwxcb.cn/news/detail-440824.html
到了這里,關(guān)于redis持久化之RDB的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!