redis 主从数据同步

前面两个章节我们讲了数据持久化的两种方式:AOF和RDB,通过这两种方式可以单个实例的数据的完整性,但是当redis实例出问题时,数据就会丢失了,针对这种情况提出了主从结构:

并且在主从结构中采用读写分离:写只能在主上  ,这就涉及到主从间数据的一致性

redis中主从数据的同步主要分为以下步骤:

replicaof命令用于初始同步数据

1、主生成RDB文件,全量同步数据给从,在此期间新的数据写到缓冲区中,再次同步缓冲区中数据

2、主从之间建立起长连接  再有新数据增加 通过长连接发送增量数据

可能会出现的问题:

当主从间连接断开后再次连接上如何同步数据?

其实在主从实例上都分别维护了自己的offset,每次从机都会向主机发送offset,主机会根据两者的差距来选择同步的数据量,

存储offset的数据结构是一个环形,长时间断开可能会造成数据覆盖,出现这种情况主机会选择全量同步数据

原文地址:https://www.cnblogs.com/zhaolei1996/p/14300774.html