redis自学(31)全量同步
数据同步原理
主从的第一次同步是全量同步:
Master如何判断slave是不是第一次来同步数据?这里会用到两个很重要的概念:
- Replication id:简称replid,是数据集的标记,id一致则说明是同一数据集。每一个master都有唯一的replid,slave则会继承master节点的replid
- offset:偏移量,随着记录在repl_baklog中的数据增多而逐渐增大。Slave完成同步时也会记录当前同步的offset。如果slave的offset小于master的offset,说明slave数据落后于master,需要更新。
因此slave做数据同步,必须向master声明自己的Replication id和Offset,master才可以判断到底需要同步哪些数据。
是不是第一次,是根据replid是否一致判断的。