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

Redis 提供兩種持久化機制 RDB 和 AOF 機制:redis

一、RDBRedis DataBase)持久化方式:是指用數據集快照的方式半持久化模式) 記錄 redis 數據庫的全部鍵值對,在某個時間點將數據寫入一個臨時文件。數據庫

持久化 結束後,用這個臨時文件替換上次持久化的文件,達到數據恢復。安全

優勢:服務器

一、只有一個文件 dump.rdb,方便持久化。app

二、容災性好,一個文件能夠保存到安全的磁盤。工具

三、性能最大化,fork 子進程來完成寫操做,讓主進程繼續處理命令,因此是 IO 最大化。使用單獨子進程來進行持久化,主進程不會進行任何 IO 操做,保證了 redis 的高性能)性能

4.相對於數據集大時,比 AOF 的啓動效率更高。命令行

缺點:進程

一、數據安全性低。RDB 是間隔一段時間進行持久化,若是持久化之間 redis 發生 故障,會發生數據丟失。因此這種方式更適合數據要求不嚴謹的時候)it

二、AOFAppend-only file)持久化方式:是指全部的命令行記錄以 redis 命令請 求協議的格式徹底持久化存儲)保存爲 aof 文件。

優勢:

一、數據安全,aof 持久化能夠配置 appendfsync 屬性,有 always,每進行一次 命令操做就記錄到 aof 文件中一次。

二、經過 append 模式寫文件,即便中途服務器宕機,能夠經過 redis-check-aof 工具解決數據一致性問題。

三、AOF 機制的 rewrite 模式。AOF 文件沒被 rewrite 以前(文件過大時會對命令 進行合併重寫),能夠刪除其中的某些命令(好比誤操做的 flushall))

缺點:

一、AOF 文件比 RDB 文件大,且恢復速度慢。

二、數據集大的時候,比 rdb 啓動效率低

相關文章
相關標籤/搜索