Redis AOF持久化
AOF 持久化会将被执行的命令写到AOF文件的结尾,以此来记录数据发生的变化。Redis只要从头到尾重新执行一次AOF文件包含的所有写命令,就可以恢复AOF文件所记录的数据集。
如何使用
- 将appendonly 配置改为yes即可开启AOF持久化
### APPEND ONLY MODE ### appendonly yes
- 配置AOF持久化同步频率
选项 | 同步频率 |
---|---|
always | 每个Redis写命令都要同步写入硬盘。会降低Redis速度 |
everrysec | 每秒执行一次同步,显式地将多个写命令同步到硬盘 |
no | 让操作系统来决定应该何时进行同步 |
警告: always会降低硬盘使用寿命,为了兼顾数据安全和写入性能,可以考虑使用everrysec 选项。
重写/压缩AOF文件
随着Redis不断运行,AOF文件的体积也会不断增长,为了解决AOF文件体积不断增大的问题,用户可以向Redis发送BGREWRITEAOF命令,这个命令会通过移除AOF文件中冗余命令来重写(rewritte)AOF文件,使AOF文件体积变得尽可能的小。BGREWRITEAOF工作原理和BGSAVE创建快照的原理非常相似:Redis会创建一个子进程,然后又子进程负责对AOF文件进行重写。
AOF持久化可以通过设置auto-aof-rewrite-percentage选项和auto-aof-rewrite-min-size选项来自动执行BGREWRITEAOF。
##表示当AOF文件的体积大于64M,并且AOF文件体积比上一次重写之后的体积大了至少一倍(100%)的时候,Redis才会执行BGREWRITEAOF命令进行AOF文件重写。
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb