5 3 Redis持久化之AOF

2021-10-22 16:35:05 字數 1936 閱讀 5625

1.rdb方式存在的問題

2.簡介

(1).什麼是aof

aof是指將執行的redis命令儲存在日誌檔案中。

(2).恢復

出現宕機後,通過重啟操作可以將日誌檔案中的資料載入到redis中,以恢復資料。

(3).策略

3.三種策略

(1).always

always表示每條命令都執行fsync,存到硬碟中,防止內容丟失。

everysec表示每秒都將緩衝區命令重新整理到硬碟中,但可能會丟失一秒的資料。

no由作業系統來決定什麼時候將緩衝區命令重新整理到硬碟中。

(4).三種策略的選擇

命令always

everysec

no優點

不丟失資料

每秒一次fsync

不用管缺點

io開銷較大,一般的sata盤只有幾百tps

丟1秒資料

不可控4.aof重寫策略

(1).簡介

a:什麼是aof重寫策略

aof重寫策略是指將過期、重複、沒有用或可優化的命令,進行化簡,從而減少硬碟占有量以及加快恢復速度。如下面所示的兩個案例,第乙個案例只有最後一條是有效的,那麼aof重寫策略會將三條命令壓縮為一條,第二個案例會直接將三條自增命令壓縮為一條設定命令。

set key hello

set key world

set key hello world

set key hello world

incr counter

incr counter

incr counter

set counter 3

b:作用

c:實現方式

(2).bgrewriteaof

客戶端傳送bgrewriteaof命令,redis生成子程序進行aof重寫。這裡的aof重寫不是生成新的aof檔案,而是對aof檔案進行修正。

(3).配置

配置名含義

auto-aof-rewrite-min-size

aof檔案重寫需要的尺寸

auto-aof-rewrite-percentage

aof檔案增長率

統計名含義aof_current_size

aof當前尺寸(單位位元組)

aof_base_size

aof上次啟動和重寫的尺寸(單位位元組)

觸發條件

同時滿足如下配置才能夠觸發aof重寫策略。

aof_current_size >

auto

-aof-rewrite-min-size

aof_current_size-aof_base_size/aof_base_size >

auto

-aof-rewrite-percentage

5.配置

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檔案進行同步,同步操作由乙個執行緒專...