Redis的持久化 AOF

2021-07-14 05:59:01 字數 1437 閱讀 5403

redis的aof持久化策略是將傳送到redis服務端的每一條命令都記錄下來,並且儲存到硬碟中的aof檔案中,類似打日誌檔案,來一條命令就記錄一條。

aof設定

aof測試

當客戶端向伺服器傳送一些redis命令時,redis會將所執行的命令記錄到aof檔案中,如下所示:

當redis伺服器重啟後,會將執行該aof檔案,達到資料恢復的目的。

aof檔案重寫

為什麼要重寫?重寫可以去除資料的中間執行過程,直接保留最終資料命令。

舉個栗子:比如在redis客戶端對key執行了一系列命令

set count 1 //初始值為1

incr count // 加1

incr count //加1

decr count //減1

這個時候結果為

get count

「2」

如果不進行aof重寫的話,進行aof檔案恢復的時候,redis會執行aof檔案中的每一條命令,並最終得到 count 為2 。

進行aof重寫後,相當於把中間的計算過程略去。直接把計算得到的結果設定進redis,相當於僅執行了一條命令 set count 2。

可以使用bgrewriteaof命令來重寫aof檔案。

重寫策略

重寫策略的引數設定:

auto-aof-rewrite-percentage 100

當前的aof檔案大小超過上一次重寫時的aof檔案大小的百分之多少時,會再次進行重寫,如果之前沒有重寫過,則以啟動時的aof檔案大小為依據。

auto-aof-rewrite-min-size 64mb

限制了允許重寫的最小aof檔案大小,通常在aof檔案很小的時候,即使其中有些冗餘的命令也是可以忽略的。

rdb 優點

rdb 缺點

aof 優點

aof 缺點

rdb和aof如何取捨

通常來說,你應該同時使用這兩種持久化方法,以達到和 postgresql 提供的一樣的資料安全程度。

如果你很關注你的資料,但是仍然可以接受災難時有幾分鐘的資料丟失,你可以只單獨使用 rdb。

有很多使用者單獨使用 aof,但是我們並不鼓勵這樣,因為時常進行 rdb 快照非常方便於資料庫備份,啟動速度也較之快,還避免了 aof 引擎的 bug。

redis持久化 AOF持久化

1.aof持久化原理 aof持久化會將被執行的寫命令寫到aof檔案的末尾。在恢復的時候,redis只要從頭到尾重新執行一次aof檔案包含的所有寫命令 2.配置選項 固態硬碟禁用always選項,在某些情況頻繁讀寫會大大降低固態硬碟的壽命 4.aof檔案的重寫和壓縮 aof檔案裡面記錄了所有的命令而不...

Redis的持久化 AOF

redis的aof持久化策略是將傳送到redis服務端的每一條命令都記錄下來,並且儲存到硬碟中的aof檔案中,類似打日誌檔案,來一條命令就記錄一條。aof設定 aof測試 當客戶端向伺服器傳送一些redis命令時,redis會將所執行的命令記錄到aof檔案中,如下所示 當redis伺服器重啟後,會將...

redis持久化之AOF持久化

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