1、从 slaveof XX XX master node
2、从节点,通过socket与master建立连接
3、从节点变成主节点的客户端,第一次会执行全量复制。主节点 master bgsave --- RDB –-- slave。RDB传输会有个超时时间,如果接收超时会重新传播,当数据比较大时很难完成,设置超时时间。repl-timeout 默认为60秒。
4、全量复制之后的数据,将通过命令主播的形式同步到从节点。就是主节点执行一个命令,从节点也执行相同的命令
5、主从是由延迟的,可以优化网络。repl-disable-tcp-nodelay 默认值为no,意思就是立即同步,没有延迟。设置为yes将把发送的数据包进行合并,减少带宽,频率会降低,这样一致性就降低了。
6、如果在这个过程中,主节点不断的写入数据。但是从节点由于某些原因断开了和主节点的连接,造成数据的主从不一致。某天从节点连接上了,会基于 master_repl_offset 偏移量进行增量复制