redis 主从库如何实现数据一致?

使用 AOF 和 RDB,如果 redis 发生了宕机,可以分别通过回放日志和重新读入 RDB 快照来恢复数据,保证尽量少丢失数据,提升可靠性。但如果只有一个 redis 实例,这个 redis 不幸宕机了,在它恢复期间,就无法服务新来的数据存取请求。
因此,redis 提供了主从库模式,以保证数据副本的一致,主从库之间采用的是读写分离的方式。

  • 读:主、从库都可以接收;
  • 写:首先到主库执行,然后主库将写操作同步到从库。

在这里插入图片描述采用读写分离的原因:如果不管主库还是从库,都能接收客户端的写操作,那么可能客户端对同一个数据前后修改了三次,每次修改的请求都发送到不同的实例上,在不同的实例上执行,那么这个数据在这三个实例上的副本就不一致了。这个时候读取这个数据,就可能读取到旧的值。如果采取加锁的方式来完成修改一致性,就会带来巨额的开销。所以采用读写分离的方式,所有数据的修改只在主库上进行,再同步给从库,这样,主从库的数据就是一致的。

主从库间如何进行第一次同步?

当我们启动多个 redis 实例的时候,它们之间可以通过 replicaof(redis5.0之前使用slaveof)命令形成主从库的关系,之后会按照三个阶段完成数据的第一次同步。如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值