因?yàn)锳OF丟失數(shù)據(jù)的概率更低史辙,因此如果對(duì)Redis中數(shù)據(jù)的完整性要求高的話,通常會(huì)啟用AOF存崖。但是由于啟用AOF之后,重啟Redis睡毒,默認(rèn)就會(huì)從aof恢復(fù)數(shù)據(jù)来惧,就會(huì)忽略dump.rdb中的數(shù)據(jù),就會(huì)造成重啟之前數(shù)據(jù)的丟失演顾,因此Redis從RDB向AOF切換的時(shí)候要使用如下步驟:
1)把redis配置文件啟用AOF供搀,比如appendonly設(shè)置為yes;建議把a(bǔ)ppendfsync設(shè)置為everysec钠至,這樣一秒同步一次趁曼,性能不會(huì)像always那樣差,而且最多丟一秒鐘的數(shù)據(jù)棕洋。其他配置請(qǐng)參考其他資料挡闰。
注意:只是修改配置文件,先不要停止或者重啟redis服務(wù)。
2)Redis CLI中執(zhí)行save摄悯,以便把數(shù)據(jù)全部寫入dump.rdb赞季,這是一步備份操作。以便于萬一aof失敗奢驯,還能到dump.rdb中把數(shù)據(jù)恢復(fù)回來申钩。
3)Redis CLI中執(zhí)行bgrewriteaof ,從而把數(shù)據(jù)寫入.aof瘪阁,便于下次以aof啟動(dòng)的時(shí)候加載數(shù)據(jù)撒遣。
4)aof寫入完成后,重啟Redis服務(wù)器即可管跺。
5)如果啟動(dòng)后數(shù)據(jù)正常义黎,rdb就沒用了,愿意刪就刪豁跑。
關(guān)鍵的一步就是在配置啟用aof并且重啟服務(wù)器之前廉涕,要先執(zhí)行bgrewriteaof。