Redis學習之AOF八

2021-10-01 03:22:45 字數 1018 閱讀 6800

aof是以日誌的形式來記錄每個寫操作,將redis執行過的所有寫指令記錄下來(讀操作不記錄),只許追加檔案但不可以改寫檔案,redis啟動之初會讀取改檔案重新構架資料,換言之,redis重啟的話就根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作。

1.預設情況下

everysec: 出廠預設推薦,非同步操作,每秒記錄 ,如果一秒內宕機,有資料丟失

no:auto-aof-rewrite-min-size:設定重寫的基準值

auto-aof-rewrite-percentage:設定重寫的基準值

4.aof正常恢復:

將有資料的aof檔案複製乙份儲存到對應的目錄(config get dir)

備份被寫壞的aof檔案

修復:redis-check-aof --fix 進行修復

rewrite:

aof採用檔案追加大小,檔案會越來越大為避免出現將此種情況,新增了重寫機制,當aof檔案的大小超過所設定的閥值時,redis就會啟動aof檔案的內容壓縮,只保留可以恢復資料的最小指令集,可以使用命令bgrewriteaof

重寫原理

aof檔案持續增長而過大時,會fork出一條新程序來將檔案重寫(也是先寫臨時檔案最後在rename),遍歷新程序的記憶體中資料,每條記錄有一條的set語句。重寫aof檔案的操作,並沒有讀取舊的aof檔案,而是將整個記憶體中的資料庫內容用用命令的方式重寫了乙個新的aof檔案,這點和快照有點類似

觸發機制:

redis會記錄上次重寫時的aof大小,預設配置是當aof檔案大小是上次rewrite後大小的一倍且檔案大於64m時觸發

總結aof檔案時乙個只進行追加的日誌檔案

redis可以在aof檔案體積變得過大時,自動地在後台對aof進行重寫

aof檔案有序地儲存了對資料庫執行的所有寫入操作,這些寫入操作以redis協議的格式儲存,因此aof檔案的內容非常容易被人讀懂,對檔案進行分析也很輕鬆

對於相同資料集來說,aof檔案的體積通常大於rdb檔案的體積

根據所使用的fsync策略,aof的速度可能會慢於rdb

redis持久化之AOF

號外號外,新建 redis 交流討論群 332160890,歡迎加入!一 說明 1.1aof 相關配置項 配置項作用aof rewrite perc 百分比閾值,當 aof的增量超過這個閾值時,開始 aof的 rewrite操作 aof rewrite min size 當aof 的檔案大小超過該值...

Redis之AOF資料備份

找到redis.conf配置檔案開啟aof 1 為什麼?aof採用檔案追加方式,檔案會越來越大為避免出現此種情況,新增了重寫機制,當aof檔案的大小超過所設定的閾值時,redis就會啟動aof檔案的內容壓縮,只保留可以恢復資料的最小指令集.可以使用命令bgrewriteaof。2 重寫原理?aof檔...

Redis持久化之AOF

aof是redis的另一種持久化方式。什麼是aof?aof的實現原理 aof相關配置 redis的配置檔案 配置檔案的第934行 everysec 將aof buf快取區的所有內容寫入到aof檔案,如果上次同步aof檔案的時間與當前時間大於1秒,那麼會再次對aof檔案進行同步,同步操作由乙個執行緒專...