Redis主从复制原理详解(2)
Redis主从复制原理详解
2)易于扩展
我们都知道,大部分使用 Redis 的业务都是读多写少的。所以,我们可以根据业务量的规模来确定挂载几个从节点 Slave,当缓存数据增大时,我们可以很方便的扩展从节点的数量,实现弹性扩展。
同时,读写分离还可以实现数据备份和负载均衡,从而提高可靠性和性能。
3)高可用保障
不仅如此,Redis 还可以手动切换主从节点,来做故障隔离和恢复。这样,无论主节点或者从节点宕机,其他节点依然可以保证服务的正常运行。
3. 主从复制实现
3.1 开启主从复制
要开启主从复制,我们需要用到 replicaof 命令。
当我们确定好主节点的 IP 地址和端口号,在从库执行 replicaof <masterIP> <masterPort> 这个命令,就可以开启主从复制。
注意,在 Redis5.0 之前,该命令为
slaveof
开启主从复制后,应用层采用读写分离,所有的写操作在主节点进行,所有读操作在从节点进行。
主从节点会保持数据的最终一致性:主库更新数据后,会同步给从库。
3.2 主从复制过程
那主从库同步什么时候开始和结束呢?
是一次性传输还是分批次写入?Redis 主从节点在同步过程中网络中断了,没传输完成的怎么办?
带着这些疑问我们来分析下,首先,Redis 第一次数据同步时分 3 个阶段。

1)建立连接,请求数据同步
主从节点建立连接,从库请求数据同步。
从服务器从 replicaof 配置项中获取主节点的 IP 和 Port,然后进行连接。
连接成功后,从服务器会向主服务器发送 PSYNC 命令,表示要进行同步。同时,命令中包含 runID 和 offset 两个关键字段。
- runID:每个 Redis 实例的唯一标识,当主从复制进行时,该值为 Redis 主节点实例的ID。由于首次同步时还不知道主库的实例ID,所以该值第一次为
? - offset:从库数据同步的偏移量,当第一次复制时,该值为
-1,表示全量复制
主服务器收到 PSYNC 命令后,会创建一个专门用于复制的后台线程(replication thread),然后记录从节点的 offset 参数并开始进行 RDB 同步。
2)RDB 同步
主库生成 RDB 文件,同步给从库。
当从服务器连接到主服务器后,主服务器会将自己的数据发送给从服务器,这个过程叫做
相关阅读
-
深入理解网络服务:LAMP架构详解
小编带来的是深入理解网络服务方面的讲解,很不错的方法小知识,建议收藏哦! LAMP架构是现代网络服务中广泛使用的一种技术架构,包括Linux操作系统、Apache Web服务器、MySQL数据库以及PHP编
-
网站域名怎么申请注册 服务器域名注册的流程
一篇很详细的教程是关于网站域名怎么申请注册和服务器域名注册的流程IT技巧方面的经验,具体内容如下: .com域名 是商业使用最广域名,.com域名从开始到现在一直是全球使用最为多的顶级
-
Warehouse:管理Flatpak应用的强大工具
跟大家说一说Warehouse的相关知识,很不错的方法小知识,建议收藏哦! 有一个应用,可以为你提供有关 Flatpak 应用的所有重要信息,以及管理它的工具,这不是很好吗? 这一次你很幸运! 在
-
UDP是什么协议? UDP的主要特点和功能
为网友们详解UDP是什么协议的相关经验,接下来IT袋网带大家一起了解。 UDP(用户数据报协议,User Datagram Protocol)是一种传输层协议,用于在网络中的两个节点(例如计算机、服务器等)之间


