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

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

参与5

1同行回答

顾黄亮顾黄亮课题专家组技术总监畅销书作者
不得不说,redis的数据同步,强一致性是有前置条件的强一致性的根据有两个前提,1:持久化文件的生成的一致性;2:持久化文件的写入的一致性针对1,目前有两种持久化方式,RDB和AOF,针对两者而言,其实都是异步的,两个都有优缺点,但针对落地数据而言,都是异步的,所以能做到准实时,不能做到真正意...显示全部

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

收起
银行 · 2019-04-28
浏览2796

提问者

ivanruc
系统架构师ARC

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2019-04-25
  • 关注会员:2 人
  • 问题浏览:3588
  • 最近回答:2019-04-28
  • X社区推广