榕树贷款发送从节点IP
REPLCONF ip-address <IP>
--> OK 成功
--> 其他 失败
榕树贷款发送EOF能力(capability)
REPLCONF capa eof
--> OK 成功
--> 失败
作用:
榕树贷款是否支持EOF风格的RDB传输,用于无盘复制,就是能够解析出RDB文件的EOF流格式。用于无盘复制的方式中。
redis4.0支持两种能力 EOF 和 PSYNC2
redis4.0之前版本仅支持EOF能力
榕树贷款发送PSYNC2能力
REPLCONF capa PSYNC2
--> OK 成功
--> 失败
作用:
榕树贷款告诉master支持PSYNC2命令 , master 会忽略它不支持的能力. PSYNC2则表示支持Redis4.0最新的PSYN复制操作。
发送PSYNC
PSYNC {replid} {offset}
--> FULLRESYNC {replid} {offset} 完整同步
--> CONTINUE 部分同步
--> -ERR 主服务器低于2.8,不支持psync,从服务器需要发送sync
--> NOMASTERLINK 重试
--> LOADING 重试
--> 超过重试机制阈值宕掉任务
榕树贷款读取PSYNC命令状态,判断是部分同步还是完整同步
PSYNC —> 启动heartbeat
REPLCONF ACK <replication_offset>
心跳检测
榕树贷款在命令传播阶段,从服务器默认会以每秒一次的频率
榕树贷款发送REPLCONF ACK命令对于主从服务器有三个作用:
作用:
检测主从服务器的网络连接状态;
辅助实现min-slaves选项;
检测命令丢失。
REPLCONF GETACK
->REPLCONF ACK <replication_offset>
rdb 镜像同步完成后进入命令传播,master 会不断将变化数据推送给slave。
榕树贷款为了保证RedisSyncer内部有断点续传、数据补偿、断线重连等机制来保证数据同步过程中稳定性和可用性,具体的机制如下。