Redis持久化機制之RDB

1. 什麼是RDB?

RDB:每隔一段時間,把內存中的數據寫入磁盤的臨時文件,作爲快照,恢復的時候把快照文件讀進內存。如果宕機重啓,那麼內存裏的數據肯定會沒有的,重啓Redis後,則會恢復。是一個全量的備份模式。
簡單說,就是Redis定期備份內存數據,系統重啓後,再從備份數據讀取到內存中。

2. RDB的優劣勢?

  • 優勢

    1. 每隔一段時間備份,全量備份
    2. 災備簡單,可以遠程傳輸
    3. 子進程備份的時候,主進程不會有任何IO操作,保證備份數據的完整性
    4. 相對AOF來說,當有更大文件的時候可以快速重啓恢復
  • 劣勢

    1. 發生故障時,有可能會丟失最後一次的備份數據
    2. 子進程所佔用的內存和父進程一樣,造成資源緊張
    3. 由於定時全量備份是重量級操作,所以對於實時備份,就無法處理了

3. RDB的配置

  1. 保存位置,可以在redis.conf自定義:

    dbfilename dump.rdb
    dir /usr/local/redis/db
    
  2. 保存機制

    save 900 1 # 如果一個緩存更新,則15分鐘後備份
    save 300 10 # 如果10個緩存更新,則5分鐘後備份
    save 60 10000 # 如果10000個緩存更新,則1分鐘後備份
    save 10 3 # 如果更新3個緩存更新,則10秒後備份
    
  3. stop-writes-on-bgsave-error

    • yes: 如果save過程出錯,則停止寫操作
    • no:可能造成數據不一致
  4. rdbcompression

    • yes:開啓rdb壓縮模式
    • no:關閉,會節約CPU損耗,但是文件會大,和nginx一個道理
  5. rdbchecksum

    • yes: 針對rdb進行數據校驗,會有10%的性能開銷
    • no:關閉,節約CPU資源
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章