Redis 持久化的若干問題

Redis持久化的方式


Redis 提供了多種不同級別的持久化方式:

  1. RDB 持久化可以在指定的時間間隔內生成數據集的時間點快照
  2. AOF 持久化記錄服務器執行的所有寫操作命令,並在服務器啓動時,通過重新執行這些命令來還原數據集。 AOF 文件中的命令全部以 Redis 協議的格式來保存,新命令會被追加到文件的末尾。Redis 還可以在後臺對 AOF 文件進行重寫(rewrite),使得 AOF 文件的體積不會超出保存數據集狀態所需的實際大小
  3. Redis 還可以同時使用 AOF 持久化和 RDB 持久化。 在這種情況下, 當 Redis 重啓時, 它會優先使用 AOF 文件來還原數據集

具體 RDB 持久化的配置方式


具體 AOF 持久化的配置方式


RDB 持久化的優缺點


採用 RDB 持久化的方式有三個優點:

  1. 它保存了 Redis 在某個時間點上的數據集,這種文件非常適合用於進行備份:你可以在最近的24小時內,每小時備份一次 RDB 文件,並且在每個月的每一天,也備份一個 RDB 文件
  2. RDB 可以最大化 Redis 的性能:父進程在保存 RDB 文件時唯一要做的就是 fork 出一個子進程,然後這個子進程就會處理接下來的所有保存工作
  3. RDB 在恢復大數據集時的速度比 AOF 的恢復速度要快

採用 RDB 持久化的方式有以下缺點:

  1. 每次保存 RDB 的時候,Redis 都要 fork() 出一個子進程,並由子進程來進行實際的持久化工作。 在數據集比較龐大時, fork() 可能會非常耗時,造成服務器在某某毫秒內停止處理客戶端; 如果數據集非常巨大,並且 CPU 時間非常緊張的話,那麼這種停止時間甚至可能會長達整整一秒。

AOF 持久化的優缺點


如何選擇 RDB 和 AOF


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