redis資料備份
RDB持久化方式
RDB持久化把當前程序資料生成快照(.rdb)檔案儲存到硬碟的過程,有手動觸發和自動觸發
手動觸發有save和bgsave兩命令
save命令:阻塞當前Redis,直到RDB持久化過程完成為止,若記憶體例項比較大會造成長時間阻塞,線上環境不建議用它
bgsave命令:redis程序執行fork操作建立子執行緒,由子執行緒完成持久化,阻塞時間很短(微秒級),是save的優化,在執行redis-cli shutdown關閉redis服務時,如果沒有開啟AOF持久化,自動執行bgsave;
命令:config set dir /usr/local //設定rdb檔案儲存路徑
備份:bgsave
appendfsync always //每收到寫命令就立即強制寫入磁碟,最慢的,但是保證完全的持久化,不推薦使用
appendfsync everysec //每秒強制寫入磁碟一次,效能和持久化方面做了折中,推薦
appendfsync no //完全依賴os,效能最好,持久化沒保證(作業系統自身的同步)
no-appendfsync-on-rewrite yes //正在匯出rdb快照的過程中,要不要停止同步aof auto-aof-rewrite-percentage 100 //aof檔案大小比起上次重寫時的大小,增長率100%時,重寫 auto-aof-rewrite-min-size 64mb //aof檔案,至少超過64M時,重寫
- 設定appendonly yes;
- 將appendonly.aof放到dir引數指定的目錄;
- 啟動Redis,Redis會自動載入appendonly.aof檔案。 1,當AOF和RDB檔案同時存在時,優先載入 2,若關閉了AOF,載入RDB檔案 3,載入AOF/RDB成功,redis重啟成功 4,AOF/RDB存在錯誤,啟動失敗列印錯誤資訊