码上敲享录 > redis数据库常见问题 > Redis集群能保证数据的一致性?

Redis集群能保证数据的一致性?

上一章章节目录下一章 2020-01-08已有654人阅读 评论(0)

Redis集群能保证数据的一致性?


解决方法:

Redis 并不能保证数据的强一致性,原因是reids集群是主节点通过异步复制的方式把客户的数据异步写到从节点(注意:Redis 集群可能会在将来提供同步写的方法)。例如客户端向主节点B写入一条命令,主节点B先向客户端回复命令状态,然后主节点再将数据复制给他的从节点 B1持久化到磁盘中。


如果出现网络分区且分区的时间长的足够将从节点B1取代主节点B,选举为新的主节点,那么在网络分区区间客户端写入B中的数据就丢失了,新的主节点B1中没有这些数据。不过可以通过设置node timeout减少数据丢失,在网络分裂出现期间, 客户端可以向主节点B发送写命令的最大时间是有限制的, 这一时间限制称为节点超时时间(node timeout), 是 Redis 集群的一个重要的配置选项。


网络分区:其实就是一个集群中的多个redis实例在不同网络中,而这个几个网络之间不能通讯,比如客户端和主节点B在一个网络,他们之间可以数据传输,而从节点在另外一个网络,不能与主节点B数据传输。

0

有建议,请留言!

  • *您的姓名:

  • *所在城市:

  • *您的联系电话:

    *您的QQ:

  • 咨询问题:

  • 提 交