Redis AOF相关

1、开启AOF

设置 appendonly yes
表示开启AOF,默认不开启,每一次写操作都会记录一条日志,用于恢复数据使用
这么做有什么好处?------能够保证数据持久化的实时性
AOF文件名通过appendfilename配置设置,默认文件名是appendonly.aof

开启了之后对程序会有什么影响?
我们需要知道的是AOF一定会影响程序的性能,I/O方面,为什么呢?我们看看AOF的过程
写命令—>append到AOF缓冲区—>同步到AOF文件(文件会越来越大,需要定期rewrite压缩)

如果写操作非常繁忙的话,再碰上磁盘“忙”,那么同步到AOF文件也可能花费很长时间,这会对redis集群的PING/PONG起到阻塞的副作用,这种情况下很容易发生程序写操作异常,CLUSTERDOWN The cluster is down,这个问题可能很多小伙伴都会遇到。

2、刷写磁盘

appendfsync always 表示对每一次写操作,强制立即刷写磁盘,提供最高的可靠性
appendfsync everync 每秒钟进行一次刷写磁盘,默认是这种方式
appendfsync no 依赖os来进行刷写磁盘,通常30s,这种情况下可靠性不能很好保证,但由于不会有持续不断的IO,Redis可以获得很好的读写性能

3、rewrite

因为命令越来越多,所以AOF文件也越来越大,Redis通过重写压缩来解决这个问题
触发重写的条件:

  • 手动触发 bgrewriteaof命令
  • 自动进行 auto-aof-rewrite-min-size和auto-aof-rewrite-percentage 表示配置的重写时文件的最小大小和文件增长比例(表示当前AOF文件比上次重写时增长的比例大小)

重写机制:达到触发条件时,自动fork一个新进程,对所有Redis内存中的每条记录通过Set命令的方式记录一遍。并不是读取旧的AOF文件,而是创建临时文件,最后重命名覆盖之前的文件。这样的好处是不用去管那些发生变化的记录,减少工作量,类似快照,更简单直接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值