redis 持久化方式 - aof 和 rdb 區別

aof 和 rdb 是 redis 持久化的兩種方式。我們看看它們的特點和具體應用場景區別。

此博客將逐步遷移到作者新的博客,可以點擊此處進入。



持久化特點

aof

  • aof 是寫命令追加到持久化文件的方式。
  • aof 支持幾種持久化策略,其中每秒數據增量存盤一次效率比較高。
  • aof 支持 rdb 混合型存儲(需要重寫處理)。
  • aof 一定程度上記錄了 redis 的寫操作流水,一段時間內文件冗餘數據比較大需要重寫解決問題。

rdb

  • rdb 快照,一個時間點的 redis 內存數據全盤落地(快照)。
  • rdb 文件是二進制數據壓縮文件,數據落地速度快(相對),體積小。
  • 因爲 redis 內存是全部數據落地,操作頻率不能太高,通過配置持久化頻率,幾分鐘到幾小時不等。

使用場景區別

根據 aof 和 rdb 持久化特點,我們看看應用場景主要區別:

  • 數據恢復

    redis 服務異常,aof 比 rdb 更有利於數據恢復。aof 默認每秒將數據增量追加到文件末存盤一次,rdb 是一個時間點的數據快照,時間跨度比較大。

  • 數據備份

    rdb 是 redis 內存數據快照,速度快,體積小。更適合於數據備份存儲。

  • redis 服務啓動速度

    redis 啓動加載 rdb 文件 比 aof 快。 因爲 aof 文件有冗餘命令,rdb 是數據集合。

  • 持久化速度

    aof 默認每秒存盤和 rdb 持久化都是異步存儲,基本不影響主線程主邏輯功能。如果 aof 採用寫命令實時存盤,將會嚴重影響 redis 服務性能。

  • 集羣節點間全量同步

    集羣節點間數據全量同步,需要拷貝服務進程的內存數據,根據 rdb 持久化特點:速度快,體積小,顯然 rdb 更適合於集羣間數據傳輸。


持久化詳細文檔

redis 持久化 aof 和 rdb 區別,詳細文檔可以參考 redis 作者的文章 Redis Persistence

鏈接可能被牆,用國內搜索引擎搜索下

要了解更多的細節,可以查看 redis 源碼實現。redis 持久化源碼理解,可以參考我的帖子:


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