1. 程式人生 > 實用技巧 >Redis的持久化機制 - RDB

Redis的持久化機制 - RDB

1. 什麼是RDB

RDB:每隔一段時間,把記憶體中的資料寫入磁碟的臨時檔案,作為快照,恢復的時候把快照檔案讀進記憶體。如果宕機重啟,那麼記憶體裡的資料肯定會沒有的,那
dis後,則會恢復。

2. 備份與恢復

記憶體備份 --> 磁碟臨時檔案
臨時檔案 --> 恢復到記憶體

3. RDB優劣勢

優勢

  1. 每隔一段時間備份,全量備份
  2. 災備簡單,可以遠端傳輸
  3. 子程序備份的時候,主程序不會有任何io操作(不會有寫入修改或刪除),保證備份資料的的完整性
  4. 相對AOF來說,當有更大檔案的時候可以快速重啟恢復
    劣勢
  5. 發生故障是,有可能會丟失最後一次的備份資料
  6. 子程序所佔用的記憶體比會和父程序一模一樣,如會造成CPU負擔
  7. 由於定時全量備份是重量級操作,所以對於實時備份,就無法處理了。

4. RDB的配置

  1. 儲存位置,可以在redis.conf自定義:
/user/local/redis/working/dump.rdb
  1. 儲存機制:
save 900 1
save 300 10
save 60 10000
* 如果1個快取更新,則15分鐘後備份
* 如果10個快取更新,則5分鐘後備份
* 如果10000個快取更新,則1分鐘後備份
  1. stop-writes-on-bgsave-error
    yes:如果save過程出錯,則停止寫操作
    no:可能造成資料不一致

  2. rdbcompression
    yes:開啟rdb壓縮模式
    no:關閉,會節約cpu損耗,但是檔案會大,道理同nginx