redis三主三从原理-三主三从 Redis 原理
1人看过
- Master 节点 1:负责处理所有读请求,并协调双写事务以维护数据一致性。
- Master 节点 2:同样负责读请求处理,参与双写事务,作为主节点 1 的冗余备份。
- Master 节点 3:作为主节点 1 和主节点 2 的第三重冗余,防止因单主故障导致的服务中断。
- Slave 节点 1:存储与主节点 1 同步的副本,当主节点 1 故障时接收写请求。
- Slave 节点 2:存储与主节点 2 同步的副本,当主节点 2 故障时接收写请求。
这种设计巧妙地利用了 Redis 的持久化机制,将数据一致性责任分散到多个节点上。即使某个 Master 节点宕机,从节点也能自动接管写请求,并通过持久化保证数据不丢失。
于此同时呢,多从节点的存在使得系统在面对流量洪峰时具备强大的弹性伸缩能力,能够平滑应对压力。对于企业级应用而言,这是构建“永不宕机”的缓存服务的重要基石。
故障检测与切换原理:
系统运行时会持续监控每个 Master 节点的存活状态。一旦某个 Master 节点检测到连接中断或资源耗尽,它会自动广播故障通知。系统中的从节点会接收到通知并迅速启动“故障切换”流程。在切换期间,旧的主节点将停止处理写请求,确保数据无法写入新状态,而新选定的 Master 节点(可能是其他从节点)随即接管写请求。
初始状态:Master A(主)、Master B(主)、Master C(主)同步读,Slave D 同步写。
当 Master A 宕机时: 1.Slave D 立即接收所有写请求,并同步至本地。 2.Slave D 向新选定的 Master B 通知故障。 3.系统自动将读请求路由至 Master B。 4.此时,Master B 和 Master C 同时处理读写,Slave D 继续处理写。
通过这种“故障检测 - 通知 - 自动切换”的闭环机制,三主三从架构实现了毫秒级的故障响应,彻底消除了因单点故障导致的业务中断风险。
双写(Write-through)与双读(Read-through):
在三主三从架构中,每个主节点都维护着所有从节点的副本。系统采用双写策略,即任何写操作必须同时写入两个不同的 Node(例如 Master A 和 Master B)。只有当两者都成功确认写入后,该写操作才会被记录在持久化文件中(如 RDB 或 AOF,视具体配置而定)。
这意味着,如果主节点 A 宕机,主节点 B 必须能立即恢复之前的所有写操作。由于两个主节点同步了相同的副本,且副本被同步给了所有从节点,因此从节点上的数据状态必然是完全一致的。这种设计从根本上消除了单主节点故障可能带来的数据丢失风险,确保了业务数据的绝对安全。
热增容与负载均衡:
在面对突发的流量高峰时,三主三从架构展现出了强大的扩展能力。由于系统中有三个 Master 节点,它们可以独立承载读请求,通过轮询或哈希算法将流量均匀分布,避免了单点过载。更重要的是,当流量激增时,Slave 节点数量会根据需要动态增加。
例如,如果某个从节点服务负载过高,系统可自动将其降级为 Master,或将新节点加入网络,从而在不重启服务的情况下平滑提升处理能力。
- 场景:某业务瞬间流量提升 100 倍,原有 1 个 Master 节点负载已满。
- 操作:系统检测到负载高于阈值,自动触发热扩容策略。
- 执行:从节点 1 和 2 立即晋升为主节点,或分配更多读写权重。
- 结果:系统无感知地增加了 2 个活跃节点,流量被均匀分散,服务无异常。
这种弹性设计使得 Redis 三主三从架构能够轻松应对云原生环境下复杂的流量波动,是构建高可用缓存集群的关键要素。



