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 啟動效率低