Redis學習筆記(十) aof日誌持久化

2021-08-16 23:30:10 字數 1396 閱讀 3950

aof原理:

來看一看aof的配置:

這是aof工作的三種方式:

#每乙個命令都立即同步到aof,安全但是速度慢

#折衷方案,每秒寫一次

#寫入工作交給作業系統,有作業系統判斷緩衝區大小統一寫到aof,同步頻率低,速度快。

#正在匯出rdb快照的過程中要不要停止同步aof

#aof檔案大小比起上次重寫時的大小,增長率%100時重寫。

#aof檔案,至少超過64m時重寫。

注意:在dumprdb過程中,aof如果停止同步,會不會丟失?

答:不會,所有的操作快取在記憶體的佇列裡,dump完成後統一操作。

注意:aof重寫是指什麼?

答:aof重寫是指把記憶體中的資料,逆化成命令,寫入到aof日誌裡。以解決aof檔案過大的問題

問:如果rdb和aof檔案都在,優先使用哪個恢復資料?

答:aof

問:2種是否可以同時用?

問:恢復時哪個恢復速度快?

答:rdb快,因為是資料的記憶體對映,直接載入到記憶體,而aof需要逐條執行。

下面看執行:

執行兩條語句看

生成了aof檔案且生成了日誌。

對了aof還有個問題,就是你對同乙個key操作一百次,可能這個key只是數值增加了一百次,對記憶體來說這個key佔的記憶體並不多,但是寫到aof檔案中就是多了一百條命令,這裡就出現兩個後果:

1.造成aof檔案過大

2.恢復的時候也太繁瑣,慢。

看例子:

怎麼解決呢?

在某個時間點將key/value逆化成乙個命令,這就是aof重寫。aof每次重寫都會使aof的容量減小。重寫的配置見上文。

測試可以通過redis-benchmark -n  num 來測試,在測試的同時實時檢視aof檔案的大小,當達到64m的時候檔案大小會驟減。

當然也可以通過命令bgrewriteaof命令重寫(這就不會存在命令冗餘了)。這涉及到redis的運維。

Redis 開啟使用AOF日誌

編輯redis,conf檔案,找到aof配置位置 下面的紅框表示aof寫回策略 這三種策略在可靠性上是從高到低,而在效能上則是從低到高。簡單來說重寫機制具有 多合一 功能,就是將舊日誌檔案中的多條命令,在重寫後的新日誌變成一條命令。因為aof是以追加的形式記錄,當乙個鍵值對被反覆修改時候,aof會記...

Redis持久化之AOF日誌

我們知道使用redis,讀寫資料的速度都很快是因為資料儲存在記憶體中,但是正是因為資料儲存在記憶體中,所以我們無可避免要面對乙個問題 一旦伺服器宕機,記憶體中的資料將會全部丟失。當我們把redis用作快取的時候,伺服器宕機了,我們還可以從後端資料庫恢復資料,但是當我們把redis直接用作資料庫的時候...

Redis學習之AOF八

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