redis 持久化的兩種方式和恢複

來源:互聯網
上載者:User
一、Redis持久化的方式有兩種:
    1.RDB:對記憶體中資料庫狀態進行快照
    2.AOF:把每條寫命令都寫入檔案,類似於mysql的binlog日誌
    
  RDB方式:將Redis在記憶體中的資料庫狀態儲存到磁碟裡面,RDB檔案是一個經過

壓縮的二進位檔案,通過該檔案可以還原產生RDB檔案的資料狀態。
  RDB的產生方式:
  1.指向命令手動產生
    有兩個Redis命令可以產生RDB檔案,一個是SAVE,另一個是BGSAVE,SAVE

命令會阻塞Redis伺服器處理序,知道RDB檔案建立完畢為止,在伺服器阻塞期間,服

務器不能處理任何的進程,BGSAVE會派出一個子進程,然後由子進程負責建立RDB

檔案,伺服器處理序(父進程)繼續處理命令請求,建立RDB檔案結束之前,用戶端

發送的 BGSAVE 和 SAVE 命令會被伺服器拒絕
   2.通過配置自動產生
    可以設定伺服器配置的save選項,讓伺服器每隔一段時間自動執行一次BGSAVE命令,可以通過save選項設定多個儲存條件,但只要其中任意一個條件被滿足就會執行BGSAGE命令
    列如:
    save 900 1
    save 300 10
    save 60  10000
    那麼只要滿足以下三個條件中的其中一個,BGSAVE命令就會被執行
    伺服器在 900 秒之內,對資料庫進行了 1 次修改
    伺服器在 300 秒之內,對資料庫進行了 10 次修改
    伺服器在 900 秒之內,對資料庫進行了 10000 次修改
AOF方式:是通過儲存Redis伺服器所執行的寫命令來記錄資料庫狀態的AOF檔案重新整理方式,有三種:
    1.appendfsync always --每提交一個修改命令都調用fsync到AOF檔案,非常慢,但是很安全;
    2.appendfsync everysec--每秒都調用fsyns重新整理到AOF檔案,很快但可能丟失一秒內的資料;
    3.appendfsync no--依靠OS進行重新整理,redis不主動重新整理AOF,這樣最快但是安全性差;
    預設並且推薦每秒重新整理,這樣在速度和安全上都做到了兼顧
二、資料恢複
    1.ROB方式
    ROB檔案的載入工作是在伺服器啟動時自動執行的,沒有專門用於載入ROB檔案命令,只要Redis伺服器再啟動時檢測到ROB檔案存在,它就會自動載入ROB的檔案,在伺服器載入的期間,會一直處於阻塞狀態,知道載入工作完成為止
    2.AOF方式
    伺服器在啟動時,通過載入和執行AOF檔案中儲存的命令來還原伺服器關閉之前的資料,具體庫狀態過程:
        載入AOF檔案
        建立類比用戶端
        從AOF檔案中讀取一條命令
        使用類比用戶端執行命令
        迴圈讀取並執行命令,知道全部完成
        如果同時啟動了AOF和ROB方式,AOF優先,啟動時只載入AOF檔案恢複數時之家在

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.