什么是RDB和AOF


RDB:Redis DataBase,在指定的時間間隔內將內存中的數據集快照寫⼊磁盤,實際操作過程是fork⼀ 個⼦進程,先將數據集寫⼊臨時⽂件,寫⼊成功后,再替換之前的⽂件,⽤⼆進制壓縮存儲。
優點: 1. 整個Redis數據庫將只包含⼀個⽂件 dump.rdb,⽅便持久化。
2. 容災性好,⽅便備份。
3. 性能最⼤化,fork ⼦進程來完成寫操作,讓主進程繼續處理命令,所以是 IO 最⼤化。使⽤單獨⼦ 進程來進⾏持久化,主進程不會進⾏任何 IO 操作,保證了 redis 的⾼性能
4. 相對於數據集⼤時,⽐ AOF 的啟動效率更⾼。
缺點: 1. 數據安全性低。RDB 是間隔⼀段時間進⾏持久化,如果持久化之間 redis 發⽣故障,會發⽣數據丟 失。所以這種⽅式更適合數據要求不嚴謹的時候)
2. 由於RDB是通過fork⼦進程來協助完成數據持久化⼯作的,因此,如果當數據集較⼤時,可能會導 致整個服務器停⽌服務⼏百毫秒,甚⾄是1秒鍾。
AOF:Append Only File,以⽇志的形式記錄服務器所處理的每⼀個寫、刪除操作,查詢操作不會記 錄,以⽂本的⽅式記錄,可以打開⽂件看到詳細的操作記錄
優點: 1. 數據安全,Redis中提供了3中同步策略,即每秒同步、每修改同步和不同步。事實上,每秒同步也 是異步完成的,其效率也是⾮常⾼的,所差的是⼀旦系統出現宕機現象,那么這⼀秒鍾之內修改的 數據將會丟失。⽽每修改同步,我們可以將其視為同步持久化,即每次發⽣的數據變化都會被⽴即 記錄到磁盤中。
2. 通過 append 模式寫⽂件,即使中途服務器宕機也不會破壞已經存在的內容,可以通過 redis- check-aof ⼯具解決數據⼀致性問題。 3. AOF 機制的 rewrite 模式。定期對AOF⽂件進⾏重寫,以達到壓縮的⽬的
缺點: 1. AOF ⽂件⽐ RDB ⽂件⼤,且恢復速度慢。
2. 數據集⼤的時候,⽐ rdb 啟動效率低。
3. 運⾏效率沒有RDB⾼。
AOF⽂件⽐RDB更新頻率⾼,優先使⽤AOF還原數據,AOF⽐RDB更安全也更⼤,RDB性能⽐AOF好, 如果兩個都配了優先加載AOF。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM