Redis的持久化機制是什麼?各自的優缺點?

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

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