Redis AOF原理

在这里插入图片描述

认识

1)不是执行写命令后就会写日志到aof文件,而是先写到aof_buf缓冲区,而aof_buf也并非aof文件内核缓冲区。追加是写到aof_buf缓冲区,写入是写入到aof文件内核缓冲区,同步是将aof文件缓冲区的内容同步回磁盘;
2)appendfsync配置为always也还是回丢数据,但是也只是丢失一个事件循环的写命令;
3)从2可知,就算appendfsync配置为always,基于redis实现的分布式锁也还是会不安全;
4)写入到aof文件的内容是resp协议的字符串;
5)appendfsync配置为everysec,如果发现当前事件距离上一次同步操作1s,会同步aof文件,该操作不是由主线程来执行,这可能也是一种优化吧,毕竟如果1s内写入的命令过多,同步也是需要时间的。避免阻塞客户端的执行,所以redis选择了异步线程去同步aof文件,这里有异步线程同步aof文件并不会和主线程的命令写入aof_buf缓冲区产生冲突;

砸出一个问题

如果1s内redis来了10万条命令,并且都执行完了,那么aof_buf缓冲区就会很大,这个问题redis怎么解决?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值