Redis主从复制原理详解(图文全面总结)

Redis是大型架构核心,下面我详解Redis主从复制@mikechen

Redis主从复制

主从复制(Replication)指的是:一个 Redis 主节点(Master)的数据,会自动同步给多个从节点(Slave),保持数据一致性。

Redis主从复制原理详解(图文全面总结)-mikechen

简单来说:

Master 负责写操作;

Slave 负责读操作;

Slave 会周期性地向 Master 请求最新数据,保持数据同步。

 

Redis主从复制原理

Redis主从之间的复制分为两部分:全量复制和增量复制。

1.Redis全量复制过程

全量复制通常发生在:

首次建立主从;

主节点重启;

主从断开太久无法增量追上。

具体流程如下:

Redis主从复制原理详解(图文全面总结)-mikechen

主节点执行 RDB 快照,将当前内存数据保存为 RDB 文件。

RDB 文件发送给从节点,主节点将 RDB 文件通过网络传输给从节点。

从节点加载数据,从节点清空旧数据,载入新的 RDB 数据。

命令缓冲区同步,在生成 RDB 期间主节点的新写操作,暂存在 复制缓冲区,RDB 传输完成后一起发送给从节点执行。

形象理解:

就像主节点把“全量数据库”快照打包发过去,从节点解压后再补齐“漏掉的更新记录”。

 

2.Redis增量复制过程

Redis 2.8 之后引入 PSYNC 协议,支持断线重连后的增量复制,避免每次都全量同步。

Redis主从复制原理详解(图文全面总结)-mikechen

作流程:

从节点断线后重连;

发送 PSYNC runid offset 请求;

主节点检查缓冲区中是否还保留该偏移量后的数据;

如果有 → 增量复制;

如果没有 → 重新全量复制。

好处:

避免了频繁的 RDB 生成与全量同步,极大提高了主从复制的性能和稳定性。

mikechen睿哥

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

评论交流
    说说你的看法