654 字
3 分钟
Redis Cluster 模式与 Sentinel 模式的区别是什么?
这道题的核心是:Sentinel 解决的是高可用问题,Cluster 既能实现高可用,也能实现数据分片,解决单个 Redis 主节点存储和处理能力的瓶颈。
一、先理解两种模式
1. Sentinel(哨兵模式)
Sentinel 通常搭配一主多从架构使用。

特点:
- 所有数据原则上都存储在每个主从组中。
- 主节点故障时,哨兵可以自动选出新的主节点。
- 主要解决高可用问题。
- 不能通过增加主节点来自动分散整个数据集。
2. Cluster(集群模式)
Cluster 将数据分散到多个主节点,每个主节点只负责一部分数据。

特点:
- 数据按照哈希槽分布在不同主节点。
- 可以通过增加主节点来扩展存储容量和整体处理能力。
- 每个主节点通常还配置从节点,故障时可以进行主从切换。
- 客户端根据哈希槽定位数据所在的节点。
二、两种模式的区别
| 对比项 | Sentinel 模式 | Cluster 模式 |
|---|---|---|
| 核心目标 | 高可用 | 高可用 + 数据分片 |
| 数据存储 | 主节点保存完整数据集 | 多个主节点分别保存部分数据 |
| 故障转移 | Sentinel 负责监控和切主 | Cluster 内部通过节点通信和选举等机制处理 |
| 水平扩展 | 不能通过增加主节点分片数据 | 可以增加主节点分担数据 |
| 容量瓶颈 | 受单个主节点容量限制 | 可通过分片扩展整体容量 |
| 使用复杂度 | 相对简单 | 相对复杂,需要考虑槽位和客户端路由 |
三、面试时怎么回答?
Redis Sentinel 模式和 Cluster 模式的主要区别在于解决的问题不同。
Sentinel 是哨兵模式,通常基于一主多从架构,通过监控主节点、判断故障和自动故障转移来实现高可用,但它不负责数据分片,整个数据集仍然由一个主节点承载。
Redis Cluster 是集群模式,除了支持主从故障转移,还通过 16384 个哈希槽将数据分散到多个主节点,实现数据分片和水平扩展。
因此,如果数据量不大,主要需要自动故障转移,可以考虑 Sentinel;如果单个主节点的存储容量或处理能力成为瓶颈,需要通过多个主节点分担数据,则可以考虑 Cluster。
记忆口诀:Sentinel 管高可用,Cluster 管高可用 + 分片扩展。
Redis Cluster 模式与 Sentinel 模式的区别是什么?
https://blog.xqcherry.top/posts/interview/redis/redis-sentinel-vs-cluster/ 目录