Redis 在处理主从网络断开重连时,判断进行全量同步还是增量同步(部分同步),核心是依赖 命令以及三个关键的内部机制:复制偏移量(Offset)、复制积压缓冲区(Replication Backlog Buffer) 和 运行ID(Repl ID / Run ID)。 下面是具体的判断逻辑和底层原理: 1. 三个核心概念 在了解判断过程前,需要先明确这三个核心概念: 运行 ID (Repl ID): 每个 Redis 实例启动时都会自动生成一个随机的 ID。主节点会将自己的 ID 同步给从节点。这个 ID 就像是主节点的“身份证”。 复制偏移量 (Offset): 主节点和从节点都会维护一个偏移量。主节点每次向从节点发送 N 个字节的数据时,自己的 offset 就会增加 N;从节点每次收到 N 个字节的数据时,自己的 offset 也会增加 N。通过对比主从的 offset,就能知道从节点落后了多少数据。 复制积压缓冲区 (Replication Backlog Buffer): 这是主节点上的一个固定大小的环形缓冲区(Ring Buffer),默认大小通常是 1MB。当主节...