redis持久化——AOF持久化

1.AOF持久化原理

AOF持久化会将被执行的写命令写到AOF文件的末尾。在恢复的时候,redis只要从头到尾重新执行一次AOF文件包含的所有写命令

2.配置选项

appendonly     yes

appendfsync   always  everysec  no

3.appendfsync选项意义

  • always               每个Redis写命令都会写入硬盘
  • everysec           每秒执行一次同步
  • no                     让操作系统决定应该何时进行同步

固态硬盘禁用always选项,在某些情况频繁读写会大大降低固态硬盘的寿命

4.AOF文件的重写和压缩

AOF文件里面记录了所有的命令而不是最近的结果,这会导致AOF文件里面命令的冗余,这样AOF文件的体积会不断的变大。另一个问题是每次redis重启后都会通过重新执行AOF文件中的写命令来还原数据集,需要时间会非常长。

5.重写方法

  • 向Redis发送BGREWRITEAOF命令

   redis不会去读取原aof文件,而是读取现在的redis状态。在执行命令开始时,redis会维护一个aof重写缓冲区,在子进程创建新的AOF文件期间,记录了服务器后续执行的所有写命令。当子进程完成AOF重写后,会将缓冲区的所有写命令追加到AOF尾部

  • 自动化配置

通过配置auto-aof-rewrite-percentage和auto-aof-rewrite-min-size来自动执行BGREWRITEAOF

auto-aof-rewrite-percentage   100        表示文件扩大一倍

auto-aof-rewrite-min-size        64mb     表示文件体积大于64MB

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值