654 字
3 分钟
Redis Cluster 模式与 Sentinel 模式的区别是什么?
  1. 1Redis 系列导读:知识地图、必会主线与复习顺序
  2. 2Redis 中常见的数据类型有哪些?
  3. 3Redis 通常应用于哪些场景?
  4. 4Redis为什么这么快?
  5. 5Redis 常用的过期时间、删除 Key 命令有哪些?
  6. 6Redis 的过期 Key 是如何被删除的?
  7. 7Redis 内存满了怎么办?有哪些淘汰策略?
  8. 8缓存穿透、击穿、雪崩的区别与解决方案
  9. 9Redis 如何保证缓存与数据库的数据一致性?
  10. 10Redis 的持久化机制有哪些?
  11. 11Redis 主从复制的完整流程是什么?
  12. 12Redis 的哨兵机制是什么?
  13. 13Redis Cluster 模式与 Sentinel 模式的区别是什么?本文
  14. 14Redis 支持事务吗?如何实现?
  15. 15Redis 中如何实现分布式锁?
  16. 16Redis 的 Lua 脚本功能是什么?如何使用?
  17. 17如何解决 Redis 中的热点 Key 问题?
  18. 18Redis BigKey 有什么危害?如何发现和治理?
  19. 19为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
  20. 20Redis 的 LRU 和 LFU 有什么区别?
  21. 21Redis 数据类型和底层编码有什么区别?
  22. 22Redis 中跳表的实现原理是什么?
  23. 23Redis 的 ZSet 为什么使用跳表,而不是平衡树?
  24. 24Redis 的 RDB 快照如何生成?为什么会有写时复制?
  25. 25Redis 的 AOF 刷盘和重写有什么区别?
  26. 26Redis 断线后如何通过 PSYNC 部分重同步?
  27. 27Redis 主从切换为什么会丢数据?WAIT 能解决吗?
  28. 28Redis 集群会出现脑裂问题吗?
  29. 29Redisson 看门狗(watch dog)机制了解吗?
  30. 30Redis Cluster:哈希槽、Gossip 与故障转移
  31. 31Redis Pipeline 为什么能提高吞吐?能保证原子性吗?
  32. 32Redis 的 SCAN 和 KEYS 有什么区别?
  33. 33Redis 变慢时如何排查?SLOWLOG 能看到所有耗时吗?
  34. 34Redis 和 MySQL 有什么区别?
  35. 35Redis 为什么使用 SDS,而不是 C 字符串?
  36. 36Redis 的哈希表如何处理冲突和渐进式 rehash?
  37. 37Redis Cluster 的 MOVED 和 ASK 重定向有什么区别?
  38. 38Redis Cluster 为什么会报 CROSSSLOT?Hash Tag 怎么用?
  39. 39Redis 如何实现限流?固定窗口和滑动窗口怎么选?
  40. 40Redis Stream 如何保证消息消费?ACK 和 PEL 是什么?
  41. 41Redis 删除数据后为什么内存不下降?如何理解内存碎片?

这道题的核心是:Sentinel 解决的是高可用问题,Cluster 既能实现高可用,也能实现数据分片,解决单个 Redis 主节点存储和处理能力的瓶颈。

一、先理解两种模式#

1. Sentinel(哨兵模式)#

Sentinel 通常搭配一主多从架构使用。

Sentinel 模式示意

特点:

  • 所有数据原则上都存储在每个主从组中。
  • 主节点故障时,哨兵可以自动选出新的主节点。
  • 主要解决高可用问题。
  • 不能通过增加主节点来自动分散整个数据集。

2. Cluster(集群模式)#

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/
作者
xqcherry
发布于
2026-10-12
许可协议
CC BY-NC-SA 4.0