redis容災


 redis 持久化策略:

  RDB:對redis中的數據周期性的持久化

    優點:1、會生成多個數據文件,每個數據文件都代表了某一個時間的全部數據。非常適合做冷備。可以將數據上傳到雲服務備份。

    2、RDB對redis對外提供的服務影響小,可以讓redis保持高性能。

    3、相比較來說,基於RDB文件重啟恢復redis更快

  AOF:對每條寫入命令作為日志。以append-only模式寫入日志。

    優點:1、可以更好的保護數據不丟失,一般AOF每隔1秒,通過后台線程執行一次fsync操作。最多丟失1s數據

    2、文件以append-only模式寫入,沒有io開銷。文件不容易損壞。損壞也很容易恢復。

    3、AOF日志文件即使過大的時候,出現后台重寫操作,也不會影響客戶端的讀寫。因為在rewrite log的時候,會對其中的指導進行壓縮,創建出一份需要恢復數據的最小日志出來。再創建新日志文件的時候,老的日志文件還是照常寫入。當新的merge后的日志文件ready的時候,再交換新老日志文件即可。

    4、日志文件可讀性強。適合做災難性的誤刪除的緊急恢復。

 

一般線上環境我們會將2中機制都開啟。具體的RDB策略和AOF策略都可以在redis.conf里面配置

RDB:  save 60 1000 : 表示每60s有超過1000條數據更新就備份。

AOF: append-only : true 開啟aof策略

    everysec: 每秒備份

    auto-aof-rewrite-percentage 100 : 當aof大小膨脹到上次2倍就備份

    auto-aof-rewrite-min-size 64mb : 和上面是 且 關系。 aof文件必須超過64m才會備份

 

通過RDB恢復數據的步驟:

先將雲服務的RDB備份數據copy到redis配置的備份目錄。然后將aof關閉(一定要關閉,否則優先從aof日志文件本分,但是如果沒有的話就創建空的。所以redis是無法加載rdb備份文件的)。然后重啟redis,此時我們redis-cli 進入redis發現redis已經自動加載備份的rdb文件數據了。這時候手動命令啟動aof。這時候redis就會備份aof日志。這啟動aof是暫時的。我們停掉redis,在配置文件中修改將aof開啟,然后再開啟,現在redis已經恢復數據,且AOF已經開啟了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM