数据同步:主从库如何实现数据一致

如果Redis发⽣了宕机,AOF和RDB可以分别通过回放⽇志和重新读⼊RDB⽂ 件的⽅式恢复数据,从⽽保证尽量少丢失数据,提升可靠性。 不过,即使⽤了这两种⽅法,也依然存在服务不可⽤的问题。⽐如说,我们在实际使⽤时只运⾏了⼀个 Redis实例,那么,如果这个实例宕机了,它在恢复期间,是⽆法服务新来的数据存取请求的。 那我们总说的Redis具有⾼可靠性有两层含义:⼀是数据尽量少丢失 数据尽量少丢失,⼆是 服务尽量少中断 服务尽量少中断。AOF和RDB保证了前者,⽽对于后者,Redis的做法就是增加副本冗余量 增加副本冗余量,将⼀份数据同 时保存在多个实例上。即使有⼀个实例出现了故障,需要过⼀段时间才能恢复,其他实例也可以对外提供服 务,不会影响业务使⽤。

Redis提供了主从库模式,以保证数据副本的⼀致,主从库之间采⽤的是读写分离的⽅式。
读操作:主库、从库都可以接收;

写操作 写操作:⾸先到主库执⾏,然后,主库将写操作同步给从库。

数据同步:主从库如何实现数据一致

主从库模式⼀旦采⽤了读写分离,所有数据的修改只会在主库上进⾏,不⽤协调三个实例。主库有了最新
的数据后,会同步给从库,这样,主从库的数据就是⼀致的。
 

主从库间如何进⾏第⼀次同步? 

当我们启动多个Redis实例的时候,它们相互之间就可以通过replicaof(Redis5.0之前使⽤slaveof)命令形 成主库和从库的关系,之后会按照三个阶段完成数据的第⼀次同步。 例如,现在有实例1(ip:172.16.19.3)和实例2(ip:172.16.19.5),我们在实例2上执⾏以下这个命令 后,实例2就变成了实例1的从库,并从实例1上复制数据:
replicaof        172.16.19.3        6379

 

数据同步:主从库如何实现数据一致