天天看點

redis的兩種持久化方式之RDB一.RDB

Redis 提供了2個不同形式的持久化方式 1.RDB (Redis DataBase) 2.AOF (Append Of File)  

一.RDB

        在指定的時間間隔内将記憶體中的資料集快照寫入磁盤,也就是行話講的Snapshot快照,它恢複時是将快照檔案直接讀到記憶體裡。

   1.備份是如何執行的?

        Redis會單獨建立(fork)一個子程序來進行持久化,會先将資料寫入到一個臨時檔案中,待持久化過程都結束了,再用這個臨時檔案替換上次持久化好的檔案。整個過程中,主程序是不進行任何IO操作的,這就確定了極高的性能如果需要進行大規模資料的恢複,且對于資料恢複的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺點是最後一次持久化後的資料可能丢失。         在Linux程式中,fork()會産生一個和父程序完全相同的子程序,但子程序在此後多會exec系統調用,出于效率考慮,Linux中引入了“寫時複制技術”,一般情況父程序和子程序會共用同一段實體記憶體,隻有程序空間的各段的内容要發生變化時,才會将父程序的内容複制一份給子程序。         在redis.conf中配置檔案名稱,預設為dump.rdb

redis的兩種持久化方式之RDB一.RDB

        rdb檔案的儲存路徑,也可以修改。預設為Redis啟動時指令行所在的目錄下

redis的兩種持久化方式之RDB一.RDB

  2.rdb的儲存政策

redis的兩種持久化方式之RDB一.RDB

redis的兩種持久化方式之RDB一.RDB
  1.     15分鐘最少一個key發生修改
  2.     5分鐘最少10個key發生修改
  3.     60秒最少10000個key發生修改

3.rdb的備份的備份和恢複

  備份

  1.     先通過config get dir  查詢rdb檔案的目錄
  2.     将*.rdb的檔案拷貝到别的地方

  恢複

  1.     關閉Redis
  2.     先把備份的檔案拷貝到工作目錄下
  3.     啟動Redis, 備份資料會直接加載

4.RDB的優點和缺點

  優點:

  •      節省磁盤空間
  •      恢複速度快

  缺點:

  •      雖然Redis在fork時使用了寫時拷貝技術,但是如果資料龐大時還是比較消耗性能。
  •      在備份周期在一定間隔時間做一次備份,是以如果Redis意外down掉的話,就會丢失最後一次快照後的所有修改。

繼續閱讀