以上摘自官網
以日誌的形式來記錄每個寫操作,將redis執行過的所有寫指令記錄下來(讀操作不記錄),只許追加檔案但不可以改寫檔案,redis啟動之初會讀取該檔案重新構建資料,換言之,redis重啟的話就根據日誌檔案的內容將寫指令從前到後執行一次以完成資料的恢復工作
將有資料的aof檔案複製乙份儲存到對應目錄(config get dir)
備份被寫壞的aof檔案
修復:(redis-check-aof --fix進行修復)
是什麼?aof採用檔案追加方式,檔案會越來越大為避免出現此種情況,新增了重寫機制,
當aof檔案的大小超過所設定的閾值時,redis就會啟動aof檔案的內容壓縮,
只保留可以恢復資料的最小指令集.可以使用命令bgrewriteaof
2.重寫原理
1.aof檔案持續增長而過大時,會fork出一條新程序來將檔案重寫(也是先寫臨時檔案最後再rename),
遍歷新程序的記憶體中資料,每條記錄有一條的set語句。重寫aof檔案的操作,並沒有讀取舊的aof檔案,
而是將整個記憶體中的資料庫內容用命令的方式重寫了乙個新的aof檔案,這點和快照有點類似
3.觸發機制
1.redis會記錄上次重寫時的aof大小,預設配置是當aof檔案大小是上次rewrite後大小的一倍且檔案大於64m時觸發
相同資料集的資料而言aof檔案要遠大於rdb檔案,恢復速度慢於rdb
aof執行效率要慢於rdb,每秒同步策略效率較好,不同步效率和rdb相同
redis持久化 AOF持久化
1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...
Redis的持久化
我們都知道,redis的資料都是儲存在記憶體裡面的,導致了redis有如下特點 1.由於記憶體的容量較小,並且速度很快,所以redis相對於mysql orcle等資料庫相比,儲存的容量較小,但是io速度特別快。2.由於記憶體的臨時儲存性,在機器斷電之後記憶體裡的內容將會丟失,若redis沒有持久化...
redis的持久化
redis有兩種持久化策略 rdb 是redis的預設持久化級制。相當於照快照,儲存的是一種狀態。優點 快照速度極快 還原資料速度極快 適用於災難備份 缺點 小記憶體機器不適合,適用於記憶體充裕的計算機 rdb機制符合要求就會找快照 隨時啟動,會突然的占用一部分系統資源 伺服器正常關閉 key滿足一...