Redis 数据持久化的方案的实现
一、需要了解的基礎(chǔ)
1、Redis實(shí)現(xiàn)數(shù)據(jù)持久化的兩種實(shí)現(xiàn)方式:
RDB:指定的時(shí)間間隔內(nèi)保存數(shù)據(jù)快照
AOF:先把命令追加到操作日志的尾部,保存所有的歷史操作
二、RDB 實(shí)現(xiàn) Redis數(shù)據(jù)持久化(默認(rèn)方式)
1、編輯 redis.conf
注:使用whereis redis命令查看redis安裝在哪個(gè)位置,然后進(jìn)入redis安裝目錄的etc目錄下,編輯redis.conf。
2、默認(rèn)備份的時(shí)間間隔
3、默認(rèn)備份的文件名稱
4、默認(rèn)備份的RDB文件位置
5、像這樣,就是其中的備份文件
6、當(dāng)然,也可以主動(dòng)觸發(fā)保存redis數(shù)據(jù)快照,操作如下
注:當(dāng)然,如果是線上的redis要主動(dòng)備份,建議使用bgsave命令,更多關(guān)于RDB的原理和使用?
http://www.chenxm.cc/post/526.html?segmentfault
7、缺點(diǎn):
因?yàn)槭翘囟l件下進(jìn)行一次持久化(每隔一段時(shí)間),就可能會(huì)導(dǎo)致一旦redis崩潰,再次回復(fù)時(shí),可能會(huì)導(dǎo)致部分?jǐn)?shù)據(jù)丟失。
注:如果設(shè)置的備份時(shí)間間隔較短,比較耗服務(wù)器性能,如果設(shè)置的備份時(shí)間間隔較長,又可能會(huì)導(dǎo)致數(shù)據(jù)恢復(fù)時(shí)部分?jǐn)?shù)據(jù)丟失。
三、AOF持久化方案
先把命令追加到操作日志的尾部,保存所有的歷史操作。
1、相比于RDB持久化方案的優(yōu)點(diǎn):
(1)數(shù)據(jù)非常完整,故障恢復(fù)丟失數(shù)據(jù)少
(2)可對歷史操作進(jìn)行處理
2、如何開啟AOF持久化模式
將redis.conf 配置文件中的appendonly 參數(shù)改為yes 后,則redis開始啟動(dòng)AOF數(shù)據(jù)持久化模式
設(shè)置AOF同步的方式,這里設(shè)置的默認(rèn)的每秒同步一次
3、開啟AOF同步模式后,備份文件是這樣的
從上面可以看出,它記錄了從我開啟AOF后的所有操作命令
4、缺點(diǎn)
(1)因?yàn)锳OF模式要把每一步redis命令都記錄下來,所以就導(dǎo)致文件的體積會(huì)很大
(2)而且會(huì)導(dǎo)致速度低于RDB,并且恢復(fù)速度慢
四、RDB模式和AOF模式的恢復(fù)
Redis崩潰后,重啟redis會(huì)自動(dòng)找備份恢復(fù)文件,下圖大致描述了redis重啟后的過程。
總結(jié):
在實(shí)際應(yīng)用中,根據(jù)場景不同,選擇的方式也不盡相同,各有優(yōu)缺點(diǎn)。但我個(gè)人看法,RDB的快照方式相比于AOF的逐步記錄模式要好一些。至于RDB丟數(shù)據(jù)的風(fēng)險(xiǎn),我們完全可以通過控制備份的時(shí)間間隔來避免這個(gè)問題。當(dāng)然,也是可以兩種方式同時(shí)使用的,只是大多不會(huì)這么做。
總結(jié)
以上是生活随笔為你收集整理的Redis 数据持久化的方案的实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据分块加载——BigPipe 技术【类
- 下一篇: 六台机器搭建RedisCluster分布