Redis主从间是异步复制,这里提到强一致是如何做到的??

Redis主从间是异步复制,这里提到强一致是如何做到的?应用层的工作吗?显示全部

Redis主从间是异步复制,这里提到强一致是如何做到的?应用层的工作吗?

收起
参与5

返回顾黄亮的回答

顾黄亮顾黄亮课题专家组技术总监畅销书作者

不得不说,redis的数据同步,强一致性是有前置条件的
强一致性的根据有两个前提,1:持久化文件的生成的一致性;2:持久化文件的写入的一致性
针对1,目前有两种持久化方式,RDB和AOF,针对两者而言,其实都是异步的,两个都有优缺点,但针对落地数据而言,都是异步的,所以能做到准实时,不能做到真正意义上的实时。很多人有疑问了,appendfsync always这个参数明明是同步的,是能牺牲性能保证数据的一致性的。仔细看官网的介绍,AOF持久化中的文件写入操作其实是将aof_buf缓冲区的内容存放到了内存缓冲区中,这时还没有真正写入到磁盘中,这个缓冲区达到同步条件时,才会执行fsync将这个缓冲区的内容写入到硬盘中,完成文件同步。所以持久化和REDIS事务的原子性是解耦的。
针对2,取决于持久化文件的大小,曾遇到一种情况,当持久化文件非常大的时候,同步也是需要时间的。
综上所述,不能做到绝对的强一致性,只能做到可接受的范围的强一致性。

银行 · 2019-04-28
浏览2776

回答者

顾黄亮
技术总监畅销书作者
擅长领域: 云计算数据库系统运维

顾黄亮 最近回答过的问题

回答状态

  • 发布时间:2019-04-28
  • 关注会员:2 人
  • 回答浏览:2776
  • X社区推广