Redis常见的集群模式有单机,主从复制、Sentinel(哨兵)、Redis Cluster,分别解决 数据复制、自动高可用、分片扩展 三类问题
单机
单机模式下,Redis 的数据存储在单个节点上,当数据量过大时,单机模式下Redis的性能会下降。一般用在开发及测试环境中,uat及prod环境一般都采用高可用哨兵模式
主从复制(Master–Slave)
主节点负责写,从节点负责读读,主节点数据写入后,会自动将数据同步给从节点,主从复制的延迟问题可以通过设置参数slave-read-only=no解决,但是性能会下降
使用的业务场景,如:高并发、读多写少,对可用性要求一般
Sentinel(哨兵)
Sentinel 作用
监控 Master / Slave
Master 挂了 → 自动主从切换
通知客户端新的 Master 地址
核心能力
自动 Failover
高可用(HA)
客户端透明(通过 Sentinel 获取 master)
优点
解决主从无自动切换问题
成熟稳定
运维成本低
缺点
❌ 不支持水平扩容(仍是单 Master 写)
❌ 数据量受单机内存限制
❌ 客户端需支持 Sentinel
适用(非常常见)
中小规模缓存
QPS 不是极端高
强调稳定性
Redis Cluster
Cluster 是具备Master 和 Slave模式,Redis 集群中的每个实例节点都负责一些槽位,节点之间保持TCP通信,当Master发生了宕机, Redis Cluster自动会将对应的Slave节点选为Master,来继续提供服务
核心机制
数据分片(Hash Slot)
自动重定向(MOVED / ASK)
节点互相 Gossip
节点级 Failover
优点
✅ 水平扩容(容量 + QPS)
✅ 高可用
✅ 官方方案
缺点(⚠️ 高频面试点)
❌ 多 key 操作受限
MGET、事务、Lua 必须在同一 slot
❌ 不支持复杂事务
❌ 运维 & 客户端复杂度高
❌ slot 迁移期间性能抖动
适用
大数据量(百GB+)
高并发
缓存核心链路
多业务共享 Redis