一、主从复制模式(Master-Slave Replication)
架构示意图
核心特点
- 单向数据同步:主节点(Master)处理写请求,从节点(Slave)异步复制数据
- 读写分离:主节点负责写,从节点处理读请求(需客户端手动分流)
- 故障恢复:需人工介入主节点切换
关键参数
replicaof <masterip> <masterport>
配置从节点repl-backlog-size
控制复制缓冲区大小
二、哨兵模式(Sentinel)
架构示意图
核心能力
- 自动故障转移:哨兵集群通过投票机制选举新Master
- 监控系统:持续检查节点健康状态(每秒1次PING检测)
- 配置中心:自动更新客户端连接的主节点信息
典型配置
REDIS
sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000
三、Cluster 模式(官方分布式方案)
架构示意图
核心机制
- 数据分片:采用虚拟槽(16384 slots)分配数据
- Gossip协议:节点间通过PING/PONG消息维护集群状态
- 自动重定向:客户端访问错误分片时返回MOVED/ASK响应
关键命令
BASH
redis-cli --cluster create 192.168.1.1:7000 192.168.1.2:7000 ... --cluster-replicas 1
模式对比表
特性 | 主从复制 | 哨兵模式 | Cluster模式 |
---|---|---|---|
数据一致性 | 最终一致性 | 最终一致性 | 强一致性(同步复制) |
自动故障转移 | 不支持 | 支持 | 支持 |
水平扩展能力 | 无 | 无 | 支持分片扩展 |
最大节点数 | 无限制 | 无限制 | 1000+节点 |
适用场景 | 读写分离 | 高可用 | 大规模分布式 |
客户端复杂度 | 低 | 中 | 高 |
选择建议
- 主从复制:快速实现读写分离,适合中小规模系统
- 哨兵模式:需要高可用但数据量不大的场景(如<16GB内存)
- Cluster模式:数据量超过单机内存容量或需要线性扩展的场景
实际部署时建议:生产环境至少使用3主3从的Cluster配置,配合合理的槽位分配策略。