您好,登錄后才能下訂單哦!
背景:RDB不足之處
1.耗時(shí),耗性能
生成快照文件耗時(shí),load快照文件耗時(shí)
Fork子進(jìn)程網(wǎng)絡(luò)開銷
寫文件磁盤I/O開銷2.不可控,丟失數(shù)據(jù)
會(huì)丟失最后一次快照最后操作的數(shù)據(jù)。
一、工作流程
Redis寫操作命令 ——> aof緩沖區(qū) ——> aof文件
注意,aof緩沖區(qū)的數(shù)據(jù)同步到磁盤的頻率d由aof策略決定
二、AOF三種策略
1.Always 總是
每條指令都即時(shí)寫入
不會(huì)丟失數(shù)據(jù),磁盤I/O開銷
2.Every second每秒
系統(tǒng)默認(rèn)策略
每分鐘寫入一次
可能丟失一秒數(shù)據(jù)
3.No系統(tǒng)自動(dòng)
不可控
3、AOF重寫
隨著時(shí)間得推移,aof文件日益變大。會(huì)降低磁盤性能,降低數(shù)據(jù)恢復(fù)速度。
目的:1.減少磁盤占用;2.加快恢復(fù)速度。
重寫操作
方式一,客戶端手動(dòng)發(fā)送指令bgrewriteof
服務(wù)端fork子進(jìn)程,子進(jìn)程對(duì)內(nèi)存中的數(shù)據(jù)進(jìn)行回塑然后寫入現(xiàn)有的aof文件。
方式二,通過配置文件觸發(fā)
文件增長率
auto-aof-rewrite-percentage 100
最小文件尺寸
auto-aof-rewrite-min-size 64mb
四、AOF實(shí)驗(yàn)
1.redis寫操作
27.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set hello php
OK
127.0.0.1:6379> set hello java
OK
127.0.0.1:6379> set hello jack
OK
127.0.0.1:6379> set zhang san
OK
127.0.0.1:6379> set li si
OK
127.0.0.1:6379> set li xiaolong
OK
上述操作多次覆寫hello,li兩個(gè)key。
2.查看aof日志文件
$ sudo cat -b /var/lib/redis/appendonly.aof
1 REDIS0009? redis-ver5.0.3?
? 2 redis-bits?@?ctime??]used-mem??
aof-preamble??$e???q ?*2
3 $6
4 SELECT
5 $1
6 0
7 *3
8 $3
9 set
10 $5
11 hello
12 $5
13 world
14 *3
15 $3
16 set
17 $5
18 hello
19 $3
20 php
21 *3
22 $3
23 set
24 $5
25 hello
26 $4
27 java
28 *3
29 $3
30 set
31 $5
32 hello
33 $4
34 jack
35 *3
36 $3
37 set
38 $5
39 zhang
40 $3
41 san
42 *3
43 $3
44 set
45 $2
46 li
47 $2
48 si
49 *3
50 $3
51 set
52 $2
53 li
54 $8
55 xiaolong
3.重寫aof
127.0.0.1:6379> bgrewriteaof
Background append only file rewriting started
4.查看重寫后的aof日志文件
whqlkj@whqlkj:~$ sudo cat -b /var/lib/redis/appendonly.aof
1 REDIS0009? redis-ver5.0.3?
? 2 redis-bits?@?ctime????]used-mem??
aof-preamble???zhangsanlxiaolonghellojack??X?-???
五、RDB與AOF對(duì)比
對(duì)比環(huán)節(jié) | RDB | AOF |
---|---|---|
啟動(dòng)優(yōu)先級(jí) | 低 | 高 |
數(shù)據(jù)恢復(fù)速度 | 快 | 慢 |
文件大小 | 小(rdb二進(jìn)制壓縮文件) | 大(重寫后的日志記錄文件) |
數(shù)據(jù)安全 | rdb丟失數(shù)據(jù)(可能會(huì)丟失最后一次save/bgsave快照之后操作的數(shù)據(jù)) | aof根據(jù)策略決定(詳見3種同步策略) |
操作重量級(jí) | 重(rdb快照) | 輕(aof追加日志) |
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。