redis的AOF持久化詳解

概述:

AOF持久化:redis執行數據庫寫的操作的時候,每次寫命令記錄到單獨的日誌文件中;當Redis重啓時再次執行AOF文件中的命令來恢復數據。

存儲過程:將快照內容以命令的形式追加到AOF文件中,所以隨着追加AOF文件會越來越大

           保存的AOF文件存儲了執行的所有命令,所以可以進行修改文件來撤銷輸錯的命令(在重寫之前,如果重寫了就沒有辦法了)

開啓方式:

          AOF默認是關閉的,在redis.conf文件中找到appendonly  no  改成yes

appendonly no //改成yes

 AOF的保存方式:

redisAOF默認的保存方式是:appendfsync everysec ,根據情況可以再redis.conf文件中找到去下圖更改。

appendfsync no :不保存。
appendfsync everysec :每一秒鐘保存一次。
appendfsync always :每執行一個命令保存一次。

 AOF的優勢:

1、該機制可以帶來更高的數據安全性,即數據持久性。

2、由於該機制對日誌文件的寫入操作採用的是append模式,因此在寫入過程中即使出現宕機現象,也不會破壞日誌文件中已經存在的內容。然而如果我們本次操作只是寫入了一半數據就出現了系統崩潰問題,不用擔心,在Redis下一次啓動之前,我們可以通過redis-check-aof工具來幫助我們解決數據一致性的問題。

3、如果日誌過大,Redis可以自動啓用rewrite機制。即Redis以append模式不斷的將修改數據寫入到老的磁盤文件中,同時Redis還會創建一個新的文件用於記錄此期間有哪些修改命令被執行。因此在進行rewrite切換時可以更好的保證數據安全性。

4、AOF包含一個格式清晰、易於理解的日誌文件用於記錄所有的修改操作。

AOF的缺點:

1、對於相同數量的數據集而言,AOF文件通常要大於RDB文件。RDB 在恢復大數據集時的速度比 AOF 的恢復速度要快。

2、根據同步策略的不同,AOF在運行效率上往往會慢於RDB。總之,每秒同步策略的效率是比較高的,同步禁用策略的效率和RDB一樣高效。

總結:

           AOF方式在分佈式下,可應對大量數據處理問題,但也會存在數據丟失。所以推薦與RDB結合使用(根據需求的不同)。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章