本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
云數據庫Redis版默認開啟AOF落盤,即基于AOF(append-only file)的數據持久化。您可以通過設置appendonly參數來關閉或重新開啟AOF落盤。
AOF落盤
AOF持久化是Redis除了RDB備份外的另一種持久化方式。開啟AOF持久化后,Redis以日志的形式記錄所有的寫入類操作,例如SET。服務重啟時,Redis可以重新執行AOF文件中的操作來恢復數據。當AOF文件過大時,原生Redis會自動執行AOF Rewrite,重組AOF文件,降低其占用的存儲空間。
云Redis的AOF持久化策略為AOF_FSYNC_EVERYSEC,系統每秒將接收到的寫入類命令記錄到AOF,保存在磁盤中,因此又稱為AOF落盤。這種策略對Redis服務性能的影響較小,同時也能極大地降低意外情況下的數據損失風險。云Redis支持AOF增量歸檔,避免了AOF Rewrite對服務性能的影響。
AOF落盤會帶來一定寫性能損耗,如果將Redis實例應用于純緩存場景中,對數據持久化沒有需求,您可以按照本章節的說明,修改appendonly參數的值,關閉AOF落盤。
AOF Rewrite觸發規則:AOF文件大小超過實例內存的25%且相比上次Rewrite后(Base Rewrite)增長超過200%則觸發Rewrite(空實例的Base Rewrite值為1 Byte)。
AOF落盤狀態及其影響
創建云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時拷貝頁表的時延)。
適用場景
若您的Redis實例開啟了AOF持久化功能,出現由fork、aof_write耗時長,影響到業務的情況,建議您關閉AOF功能。
若您的Redis實例作為Cache類應用,建議您關閉AOF功能。
如果使用的是企業版Redis(Tair),且開通了DTS跨域多活服務,或者數據閃回(任意時間點進行數據恢復),則不能關閉AOF。
操作步驟
訪問Redis實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側導航欄中,單擊參數設置。
在參數列表中,單擊appendonly右側操作列的修改。
在彈出的對話框中完成以下步驟。
選擇appendonly的值。
可選值:
yes(開啟AOF落盤)
no(關閉AOF落盤)
單擊確定。
相關API
API接口 | 說明 |
查詢Redis實例的配置參數和運行參數。 | |
修改Redis實例的參數配置。 |