雲資料庫Tair(相容 Redis)執行個體預設開啟AOF落盤,即基於AOF(append-only file)的資料持久化。您可以通過設定appendonly參數來關閉或重新開啟AOF落盤。
AOF落盤
AOF持久化是執行個體除了RDB備份外的另一種持久化方式。開啟AOF持久化後,執行個體以日誌的形式記錄所有的寫入類操作,例如SET。服務重啟時,執行個體可以重新執行AOF檔案中的操作來恢複資料。當AOF檔案過大時,執行個體會自動執行AOF Rewrite,重組AOF檔案,降低其佔用的儲存空間。完全相容Redis。
雲資料庫Tair(相容 Redis)的AOF持久化策略為AOF_FSYNC_EVERYSEC,系統每秒將接收到的寫入類命令記錄到AOF,儲存在磁碟中,因此又稱為AOF落盤。這種策略對執行個體服務效能的影響較小,同時也能極大地降低意外情況下的資料損失風險。同時執行個體還支援AOF增量歸檔,避免了AOF Rewrite對服務效能的影響。
AOF落盤會帶來一定寫效能損耗,如果將執行個體應用於純緩衝情境中,對資料持久化沒有需求,您可以按照本章節的說明,修改appendonly參數的值,關閉AOF落盤。
AOF Rewrite觸發規則:AOF檔案大小超過執行個體記憶體的25%且相比上次Rewrite後(Base Rewrite)增長超過200%則觸發Rewrite(空執行個體的Base Rewrite值為1 Byte)。
AOF落盤狀態及其影響
除Tair持久記憶體型以外,建立Tair(以及Redis開源版)執行個體時,AOF落盤預設開啟。
將appendonly的值從yes修改為no:
AOF落盤立即關閉,無需重啟執行個體。
後續無法通過AOF檔案恢複資料。
已有的AOF日誌不受影響。
標準版執行個體中僅主節點的AOF落盤關閉,replica不受影響。
叢集版執行個體中所有資料分區的主節點均關閉AOF落盤,所有從節點不受影響。
讀寫分離版執行個體中主節點與所有隻讀副本的AOF落盤關閉,從節點不受影響。
雙副本執行個體,關閉AOF(實際上是關閉了主庫上的AOF)能夠減少Rewrite對時延的影響,但是會少一份資料的保障。
將appendonly的值從no修改為yes:
AOF落盤立即開啟,無需重啟執行個體。
開啟AOF後會定期將AOF產生的檔案壓縮(Rewrite),而在fork壓縮排程工作時會有幾十毫秒甚至一百多毫秒的抖動,這個時間與執行個體的記憶體使用量量有關(Linux或Unix在fork時拷貝頁表的時延)。
適用情境
若您的執行個體開啟了AOF持久化功能,出現由fork、aof_write耗時間長度,影響到業務的情況,建議您關閉AOF功能。
若您的執行個體作為Cache類應用,建議您關閉AOF功能。
如果使用的是Tair(企業版),且開通了DTS跨域多活服務或者資料閃回(任意時間點進行資料恢複),則不能關閉AOF。
操作步驟
訪問執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在左側導覽列中,單擊參數設定。
在參數列表中,單擊appendonly右側操作列的修改。
在彈出的對話方塊中完成以下步驟。
選擇appendonly的值。
可選值:
yes(開啟AOF落盤)
no(關閉AOF落盤)
單擊確定。
相關API
API介面 | 說明 |
查詢執行個體的配置參數和運行參數。 | |
修改執行個體的參數配置。 |