redis 持久化配置 無縫從rdb切換到aof 安全保留數據redis
redis默認持久化配置rdb,可是若是貿然切換配置到aof方式,重啓會致使數據丟失
問題vim
redis默認持久化配置rdb,可是若是貿然切換配置到aof方式,重啓會致使數據丟失緩存
若是數據不重要,都是緩存數據則沒什麼,若是是重要臨時數據,不能丟失的狀況,則須要特殊處理,保證數據不丟失安全
根本緣由app
rdb
方式默認將數據持久化存儲到dump.rdb
文件下aof
方式默認將數據寫操做記錄到appendonly.aof
文件下aof
方式rdb
rdb
方式,而後貿然切換到aof
,重啓後會讀取aof
文件,可是這個時候aof
文件是空的,則會致使redis被清空解決方法code
原理:在redis控制檯動態配置打開aof
方式,在shutdown
安全退出後,自動記錄了當前全部記錄到aof
文件,再修改redis文件配置打開aof
方式,啓動redis時會自動加載以前安全退出保存的aof
數據
進入redis內存
redis-cli
redis中動態修改配置並退出同步
127.0.0.1:6379> save # 收到觸發rdb存儲數據 OK 127.0.0.1:6379> CONFIG SET appendonly yes # 動態配置 OK 127.0.0.1:6379> save OK 127.0.0.1:6379> shutdown save # 安全退出並存儲數據 not connected>
修改redis配置,打開aof
vim redis.conf
it
appendonly no #aof方式默認關閉
service redis start
附錄原理
rdb配置
save 900 1 #在900秒(15分鐘)以後,若是至少有1個key發生變化,則dump內存快照。 save 300 10 #在300秒(5分鐘)以後,若是至少有10個key發生變化,則dump內存快照。 save 60 10000 #在60秒(1分鐘)以後,若是至少有10000個key發生變化,則dump內存快照。
aof配置
appendonly no #aof方式默認關閉 appendfilename "appendonly.aof" #文件名 appendfsync everysec #同步模式(可選no always everysec) no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes