Redis 提供兩種持久化機制 RDB 和 AOF 機制:
1、RDBRedis DataBase)持久化方式: 是指用數據集快照的方式半持久化模式)
記錄 redis 數據庫的所有鍵值對,在某個時間點將數據寫入一個臨時文件,持久化
結束后,用這個臨時文件替換上次持久化的文件,達到數據恢復。
優點:
1、只有一個文件 dump.rdb,方便持久化。
2、容災性好,一個文件可以保存到安全的磁盤。
3、性能最大化,fork 子進程來完成寫操作,讓主進程繼續處理命令,所以是 IO
最大化。使用單獨子進程來進行持久化,主進程不會進行任何 IO 操作,保證了 redis
的高性能) 4.相對於數據集大時,比 AOF 的啟動效率更高。
缺點:
1、數據安全性低。RDB 是間隔一段時間進行持久化,如果持久化之間 redis 發生
故障,會發生數據丟失。所以這種方式更適合數據要求不嚴謹的時候)
2、AOFAppend-only file)持久化方式: 是指所有的命令行記錄以 redis 命令請
求協議的格式完全持久化存儲)保存為 aof 文件。
優點:
1、數據安全,aof 持久化可以配置 appendfsync 屬性,有 always,每進行一次
命令操作就記錄到 aof 文件中一次。
2、通過 append 模式寫文件,即使中途服務器宕機,可以通過 redis-check-aof
工具解決數據一致性問題。
3、AOF 機制的 rewrite 模式。AOF 文件沒被 rewrite 之前(文件過大時會對命令
進行合並重寫),可以刪除其中的某些命令(比如誤操作的 flushall))
缺點:
1、AOF 文件比 RDB 文件大,且恢復速度慢。
2、數據集大的時候,比 rdb 啟動效率低。