持久化是指為了避免資料丟失,定期將資料存放區到磁碟中。如遇Tair (Redis OSS-compatible)執行個體宕機或重啟,能夠利用磁碟中的持久化檔案恢複資料。為滿足各類情境下對備份與恢複的需求,Tair (Redis OSS-compatible)執行個體提供RDB持久化、AOF持久化和Tair-Binlog持久化策略。
持久化策略
Tair (Redis OSS-compatible)支援以下持久化策略。
RDB持久化
RDB持久化是指周期性地為引擎中儲存的資料建立快照,產生RDB檔案,儲存到磁碟中,實現資料的持久化。RDB檔案佔用空間小,便於移動,非常適合用於備份或遷移指定時間點的資料。
開源Redis在產生RDB檔案時會可能會帶來操作阻塞,阻塞時間取決於執行個體的資料總量。而Tair (Redis OSS-compatible)執行個體對此最佳化並實現了“無阻塞備份”,使執行個體的備份不影響用戶端請求。
Tair (Redis OSS-compatible)的RDB持久化策略預設每天備份一次,您可以根據業務需求修改自動備份策略,也可以手動發起臨時的備份。
AOF持久化
AOF持久化是指以日誌的形式記錄所有的寫入類操作(例如SET)。當服務重啟時,通過重新執行AOF檔案中的操作來恢複資料。
由於AOF檔案記錄了所有寫入類操作,隨著AOF檔案中的記錄越來越多,當AOF檔案過大時,Redis會自動執行AOF Rewrite,重組AOF檔案,降低其佔用的儲存空間,提高資料恢複效率,但AOF Rewrite對寫入效能會有一定損耗。
Tair (Redis OSS-compatible)執行個體(除持久記憶體型以外)預設啟用AOF持久化,策略為AOF_FSYNC_EVERYSEC且不支援修改,即Redis每秒執行一次fsync,將AOF緩衝區中的寫入類命令重新整理到磁碟,這個過程又稱為AOF落盤。AOF_FSYNC_EVERYSEC策略對Redis服務效能的影響較小,同時也能極大地降低意外情況下的資料損失風險。
Tair-Binlog
Tair(企業版)記憶體型不僅支援上述兩種持久化策略,還最佳化了基於AOF(Append-only-file)的持久化機制,實現AOF增量歸檔,避免了AOF Rewrite對服務效能的影響,同時完整保留了每一次寫操作與其時間戳記,可以將執行個體整體或指定Key的資料恢複至某個秒級的時間點(PITR,point-in-time recovery)。更多資訊,請參見通過資料閃回按時間點恢複資料。
備份恢複方案
Tair (Redis OSS-compatible)執行個體基於RDB持久化、AOF持久化和AOF增量歸檔,實現資料的備份與恢複。
類別 | 實施方案 | 說明 |
資料備份 | 支援資料持久化,會按照預設的策略自動備份資料(基於RDB),您可以根據業務需求修改自動備份策略,也可以手動發起臨時的備份。 | |
備份檔案支援保留7~730天,如果需要更長時間的備份存檔(例如監管或資訊安全需要),您可以將備份檔案下載到本地進行儲存。 | ||
資料恢複 | 支援從指定的備份組建立新執行個體,新執行個體中的資料將和該備份組中的資料一致,可用於資料恢複、快速部署業務或資料驗證等情境。 | |
開啟資料閃回功能(基於AOF)後,在備份檔案的儲存期內,您可以恢複指定時間點(精確到秒級)的資料,可最大限度地避免誤操作帶來的資料損失,或者在頻繁回檔的業務情境快速完成資料切換。 說明 該功能僅Tair(企業版)記憶體型支援。 |