414 字
2 分钟
面试鸭-Redis 主从复制的实现原理是什么?

Redis 主从复制的实现原理是什么?#

Redis的实现原理可以分为三个阶段来讲解:

第一阶段:主从建立连接,从节点进行全量复制。

  1. 从节点会发送PSYNC ? -1命令给主节点
  2. 主节点会创建一个子线程去生成RDB,并且接下来新的写命令都会存入复制缓冲区(Replication Buffer)中。
  3. 将RDB发给从节点,从节点清空旧数据加载RDB。
  4. 加载完成后,主节点发送复制缓冲区中的写命令给子节点
  5. 子节点执行命令完成全量复制。

第二阶段:命令传播(长连接) 主从建立长连接,之后每当有新的写命令时都会异步发送给从节点让从节点也执行,并且还有写入一个环形缓冲区,便于增量同步时使用。 主从连接时会互相发心跳包来确认对方状态。

第三阶段:断线重连,增量同步 如果出现网络波动导致从节点掉线了一会又连上了,这时候会进行增量同步(要求从节点目前读到的值还在环形缓冲区中能找到) 从节点和主节点都会维护一个偏移量表示当前读取位置,根据这个偏移量能确认数据是否一致。 主节点会确认从节点的偏移量是否还在环形缓冲区中,如果是则从这个偏移量的位置发送数据给从节点,让从节点执行增量数据。否则会进行全量复制

问题#

面试鸭-Redis 主从复制的实现原理是什么?
http://www.shineacz.top/posts/面试鸭-redis-主从复制的实现原理是什么/
作者
shineAcZ
发布于
2026-03-24
许可协议
CC BY 4.0