aof橱赠,rdb是兩種 redis持久化的機制。用于crash后箫津,redis的恢復(fù)狭姨。
rdb的特性如下:
fork一個進程,遍歷hash table苏遥,利用copy on write饼拍,把整個db dump保存下來。
save, shutdown, slave 命令會觸發(fā)這個操作田炭。
粒度比較大师抄,如果save, shutdown, slave 之前crash了,則中間的操作沒辦法恢復(fù)教硫。
aof有如下特性:
把寫操作指令叨吮,持續(xù)的寫到一個類似日志文件里。(類似于從postgresql等數(shù)據(jù)庫導出sql一樣瞬矩,只記錄寫操作)
粒度較小茶鉴,crash之后,只有crash之前沒有來得及做日志的操作沒辦法恢復(fù)景用。
兩種區(qū)別就是涵叮,一個是持續(xù)的用日志記錄寫操作,crash后利用日志恢復(fù)伞插;一個是平時寫操作的時候不觸發(fā)寫割粮,只有手動提交save命令,或者是關(guān)閉命令時媚污,才觸發(fā)備份操作舀瓢。
選擇的標準,就是看系統(tǒng)是愿意犧牲一些性能耗美,換取更高的緩存一致性(aof)氢伟,還是愿意寫操作頻繁的時候,不啟用備份來換取更高的性能幽歼,待手動運行save的時候,再做備份(rdb)谬盐。