redis持久化之aof

2021-10-17 04:10:06 字數 1410 閱讀 8570

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

1修改配置檔案

2啟動redis,寫2次,然後flushall.檢視aof檔案,恢**現並沒有資料,在aof檔案中刪除掉flushall命令,再次啟動redis,發現資料存在。

1備份aof檔案,修改aof檔案,加入不符合redis語法的內容

2嘗試啟動redis,無法啟動

3使用redis-check-aof --fix進行修復

4重啟redis,正常

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

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

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

優點:1相同資料集的資料而言aof檔案要遠大於rdb檔案,恢復速度慢於rdb

2aof執行效率要慢於rdb,每秒同步策略效率較好,不同步效率和rdb相同

redis持久化之AOF持久化

aof與rdb持久化通過儲存資料庫中的鍵值對來記錄資料庫狀態不同,aof持久化是通過儲存redis伺服器所執行的寫命令來記錄資料庫狀態的。被寫入aof檔案的所有命令都是以redis的命令請求協議格式儲存的。當aof持久化功能處於開啟狀態,伺服器在執行完乙個寫命令之後,會以協議格式將被執行的寫命令追加...

redis持久化之AOF

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

Redis持久化之AOF

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