redis AOF
RDB問題:
- 耗時耗效能
- 容易丟失資料
耗時耗效能
- O(n)資料 耗時
- fork() :消耗記憶體,copy-on-write 策略
- Disk I/O :IO效能
不可控 丟失資料
時間 | save |
---|---|
T1 | 執行多個寫命令 |
T2 | 滿足RDB自動建立的條件 |
T3 | 再次執行多個寫命令 |
T4 | 當機 |
AOF 執行原理 -建立
set hello world
AOF檔案
set hello world
hmset myhash a b
sadd myset a b
key | value |
---|---|
hello | string:world |
myhash | hash:{“a”:“b”} |
myset | set:[“a”:“b”] |
AOF 三種策略
- always
- eversec
- no
always
1:redis寫命令到重新整理的緩衝區
2:每條命令fsync到硬碟aof檔案
everysec 系統預設值
1:redis寫命令到重新整理的緩衝區
2:每秒把緩衝區fsync到硬碟 aof檔案
缺點當機可能會丟失1秒的資料
no
1:根據作業系統
os決定fysnc
always everysec no 優缺點
命令 | always | everysync | no |
---|---|---|---|
優點 | 不丟失資料 | 每秒一次fysnc 丟1秒資料 | 不用管 |
缺點 | IO開銷比較大,一般的sata盤只有幾百tps | 丟1秒資料 | 不可控 |
AOF重寫
原生AOF | AOF重寫 |
---|---|
set hello world | set hello hehe |
set hello java | set counter 2 |
AOF重寫作用
減少硬碟用量
加速恢復速度
AOF重寫實現兩種方式
bgrewriteaof
aof重寫配置
bgrewriteaof命令
- client傳送命令bgrewriteaof 到redis
- redis master 接收
- redis開啟子程式
- aof重寫到aof檔案
AOF從重寫自動配置
配置名 | 含義 |
---|---|
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
redis.conf
appendonly yes #開啟aof功能
appendfilename "appendonly-${port}.aof" //aof檔名稱
appendfsync everysec //同步策略
dir /bigdiskpath //儲存rdb aof log 目錄
no-appendfsync-on-rewrite yes //不進行aof 重寫
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes //防止出現斷電後aof不完整
AOF 演示
redis-cli
dbsize
vim redis.cong
appendonly yes
appendfilename "appendonly-6379.aof"
appendfsync
config get appendonly
"appendonly"
"no"
config get appendonly yes
ok
config rewrite
ok
exit
redis-cli
set
相關文章
- redis ——AOF持久化Redis持久化
- Redis 持久化之 AOFRedis持久化
- redis如何控制AOF大小Redis
- redis持久化之AOFRedis持久化
- Redis持久化之RDB & AOFRedis持久化
- Redis持久化——AOF日誌Redis持久化
- Redis持久化RDB和AOFRedis持久化
- Redis持久化(RDB 和 AOF)Redis持久化
- redis(13)持久化操作-AOFRedis持久化
- Redis持久化-RDB與AOFRedis持久化
- (七)Redis 持久化 AOF、RDBRedis持久化
- Redis(五)--- Redis的持久化RDB與AOFRedis持久化
- 【Redis篇】Redis持久化方式AOF和RDBRedis持久化
- Redis基礎(三)Redis持久化:RDB與AOFRedis持久化
- 【Redis】Redis 持久化之 RDB 與 AOF 詳解Redis持久化
- Redis——Redis用作資料庫(持久化/RDB/AOF)Redis資料庫持久化
- 【Redis 系列】redis 學習八,redis 持久化 RDB 和 AOFRedis持久化
- Redis持久化儲存——>RDB & AOFRedis持久化
- REdis AOF檔案結構分析Redis
- redis-17.持久化之AOFRedis持久化
- Redis 持久化之RDB和AOFRedis持久化
- Redis持久化 (RDB和AOF) 梳理Redis持久化
- 10. Redis持久化之AOFRedis持久化
- Redis系列(三):Redis的持久化機制(RDB、AOF)Redis持久化
- 配置方案:Redis持久化RDB和AOFRedis持久化
- Redis-AOF日誌與RDB快照Redis
- Redis 持久化之 AOF 配置詳解Redis持久化
- Redis持久化RDB和AOF的概念Redis持久化
- redis系列:RDB持久化與AOF持久化Redis持久化
- 一文了解:Redis的AOF持久化Redis持久化
- redis的持久化機制 (RDB&AOF)Redis持久化
- Redis RDB和AOF取捨和選擇Redis
- 對比 Redis 中 RDB 和 AOF 持久化Redis持久化
- 故障分析 | Redis AOF 重寫原始碼分析Redis原始碼
- Redis - 2 - 聊聊Redis的RDB和AOF持久化 - 更新完畢Redis持久化
- GO實現Redis:GO實現Redis的AOF持久化(4)GoRedis持久化
- AOF持久化(儲存的是操作redis命令)持久化Redis
- 搞懂Redis RDB和AOF持久化及工作原理Redis持久化