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