如果出现网络闪断或者命令丢失等异常情况时,当主从连接恢复后,由于从节点之前保存了自身己复制的
偏移量和主节点的运行ID。因此会把它们当作 psync 参数发送给主节点,要求进行部分复制操作,格式为 psync {runId} {offset}
主节点接到 psync 命令后首先核对参数 runld 是否与自身一致,如果一致, 说明之前复制的是当前主节点,之后根据参数 offset 在自身复制积压缓冲区查找,如果偏移量之后的数据存在缓冲区中,则对从节点发送 +continue 响应,表示可以进行部分复制,否则进行全量复制
主节点根据偏移量把复制积压缓冲区里的数据发送给从节点,保证主从复制进入正常状态
repl-timeout 60,默认超时时间 60 秒client-output-buffer-limit slave 256MB 64MB 60,如果 60 秒内缓冲区消耗持续大于 64MB 或者直接超过 256MB 时,主节点将直接关闭复制客户端连接,造成全量同步失败slave-server-stale-data yes 参数(默认开启),如果开启则 slave 节点依然响应所有命令no 来关闭命令执行,此时从节点除了 info 和 slaveof 命令之外所有的命令只返回 sync with master in progress 信息info server 命令查看当前节点的 runId