Redis是大型架构核心,下面我详解Redis主从复制@mikechen
Redis主从复制
主从复制(Replication)指的是:一个 Redis 主节点(Master)的数据,会自动同步给多个从节点(Slave),保持数据一致性。

简单来说:
Master 负责写操作;
Slave 负责读操作;
Slave 会周期性地向 Master 请求最新数据,保持数据同步。
Redis主从复制原理
Redis主从之间的复制分为两部分:全量复制和增量复制。
1.Redis全量复制过程
全量复制通常发生在:
首次建立主从;
主节点重启;
主从断开太久无法增量追上。
具体流程如下:

主节点执行 RDB 快照,将当前内存数据保存为 RDB 文件。
RDB 文件发送给从节点,主节点将 RDB 文件通过网络传输给从节点。
从节点加载数据,从节点清空旧数据,载入新的 RDB 数据。
命令缓冲区同步,在生成 RDB 期间主节点的新写操作,暂存在 复制缓冲区,RDB 传输完成后一起发送给从节点执行。
形象理解:
就像主节点把“全量数据库”快照打包发过去,从节点解压后再补齐“漏掉的更新记录”。
2.Redis增量复制过程
Redis 2.8 之后引入 PSYNC 协议,支持断线重连后的增量复制,避免每次都全量同步。

作流程:
从节点断线后重连;
发送 PSYNC runid offset 请求;
主节点检查缓冲区中是否还保留该偏移量后的数据;
如果有 → 增量复制;
如果没有 → 重新全量复制。
好处:
避免了频繁的 RDB 生成与全量同步,极大提高了主从复制的性能和稳定性。
mikechen睿哥
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。