复述,持久化之AOF

  
  

<强>背景:RDB不足之处
1。耗时,耗性能
生成快照文件耗时,加载快照文件耗时
叉子进程网络开销
写文件磁盘I/O开销

  

2。不可控,丢失数据
会丢失最后一次快照最后操作的数据。

     

<强>一、工作流程
复述,写操作命令——比;aof缓冲区——比;aof文件

  

注意,aof缓冲区的数据同步到磁盘的频率d由aof策略决定

  

<强>二,AOF三种策略

  
  

1。总总是

     

每条指令都即时写入
不会丢失数据,磁盘I/O开销

  
  

2。每一秒每秒

     

系统默认策略
每分钟写入一次
可能丢失一秒数据

  
  

3.没有系统自动

     

不可控   

<强> 3,AOF重写

  
  

随着时间得推移,aof文件日益变大。会降低磁盘性能,降低数据恢复速度。
目的:<强> 1。减少磁盘占用;2。加快恢复速度。

     

重写操作

  

方式,一客户端手动发送指令bgrewriteof
服务端叉子进程,子进程对内存中的数据进行回塑然后写入现有的aof文件。

  

方式二,通过配置文件触发
文件增长率
auto-aof-rewrite-percentage 100

  

最小文件尺寸
auto-aof-rewrite-min-size 64 mb

  

<强>四,AOF实验

  
  

1.复述,写操作

     
 <代码> 27.0.0.1:6379>设置hello world
  好吧
  127.0.0.1:6379>你好设置php
  好吧
  127.0.0.1:6379>你好设置java
  好吧
  127.0.0.1:6379>设置你好杰克
  好吧
  127.0.0.1:6379>设置张三
  好吧
  127.0.0.1:6379>设置李四
  好吧
  127.0.0.1:6379>李集枭龙
  好 
  

上述操作多次覆写你好,李两个关键。

  
  

2。查看aof日志文件

     
 <代码> $ sudo猫- b/var/lib/redis/appendonly.aof
  1 REDIS0009 ?redis-ver5.0.3吗?
  ?    2 redis-bits ? @ ctime ? ?] used-mem ? ?
  aof-preamble ? ? $ e ? ? ?问? * 2
  3 6美元
  4个选择
  5美元1
  6 0
  7 * 3
  8 3美元
  9集
  10 5美元
  11个你好
  12 5美元
  13个世界
  14 * 3
  15日3美元
  16集
  17个5美元
  18个你好
  19 3美元
  20 php
  21 * 3
  22 3美元
  23集
  24日5美元
  25个你好
  26日4美元
  27个java
  28 * 3
  29日3美元
  30集
  31日5美元
  32个你好
  33 4美元
  34岁的杰克
  35 * 3
  36 3美元
  37集
  38 5美元
  39张
  40 3美元
  41个圣
  42 * 3
  43 3美元
  44集
  45 $ 2
  46个李
  47个2美元
  48个如果
  49 * 3
  50 3美元
  51集
  52 $ 2
  53岁的李
  54 8美元
  55枭龙
   
  
  

3。重写aof

     
 <代码> 127.0.0.1:6379>bgrewriteaof
  背景仅附加文件重写开始
   
  
  

4。查看重写后的aof日志文件

     
 <代码> whqlkj@whqlkj: ~ $ sudo猫- b/var/lib/redis/appendonly.aof
  1 REDIS0009 ?redis-ver5.0.3吗?
  ?    2 redis-bits ? @ ctime ? ? ? ?] used-mem ? ?
  X aof-preamble ? ? ? zhangsanlxiaolonghellojack ? ? ?, ? ? ?  
  

<强>五,RDB与AOF对比

           对比环节   RDB   AOF               启动优先级   低   高         数据恢复速度   快   慢         文件大小   小(rdb二进制压缩文件)   大(重写后的日志记录文件)         数据安全   rdb丢失数据(可能会丢失最后一次保存/bgsave快照之后操作的数据)   aof根据策略决定(详见3种同步策略)         操作重量级   重(rdb快照)   轻(aof追加日志)

复述,持久化之AOF