缓存服务一旦挂掉整个系统的响应速度都会崩。Redis 从单机到高可用一般经历三个阶段主从复制 → 哨兵 Sentinel → Cluster 集群。这篇把三个阶段讲清楚。一、为什么不能只跑单点 Redis单点 Redis 的问题很直接机器挂了服务就没了。更隐蔽的是主从复制模式下如果只有主节点可写主节点宕机后虽然从节点有数据但不会自动顶上——需要人为切换期间写操作全部失败。因此高可用必须解决两件事数据有备份复制故障自动切换哨兵/集群。二、主从复制数据先有备份主从复制配置简单执行slaveof 主节点IP 端口或在配置里声明replicaof。复制过程要点全量同步从节点首次连接时主节点生成 RDB 快照传送后续增量用命令传播增量同步断线重连后从复制积压缓冲区repl-backlog补数据读写分离读请求可以打到从节点写请求仍走主节点。主从只解决数据冗余不解决自动故障转移。三、哨兵 Sentinel自动故障转移Sentinel 是独立进程监控主从节点的健康状态在主节点不可用时自动将从节点提升为新主节点并通知客户端切换。关键机制心跳检测Sentinel 每秒 PING 主从节点主观下线单个哨兵判断→ 客观下线多数哨兵确认选举与切换客观下线后Sentinel 选出新主节点其他从节点重新指向新主最少部署哨兵本身要避免单点至少 3 个哨兵实例组成集群并部署在不同机器。四、Cluster 集群数据分片 高可用数据量大了单机放不下就要上 Cluster槽位分片16384 个哈希槽分配到各主节点KEY 经 CRC16 取模定位到槽主从配对每个主节点配一个或多个从节点主挂从顶故障转移集群中多数节点判定某主节点不可达后提升其从节点客户端重定向访问到错误槽位时节点返回 MOVED/ASK客户端跟随跳转。五、选型建议数据量小、要低成本 → 主从 哨兵读写分离 自动切换数据量大、有分片需求 → Cluster自动分片 高可用追求极简 → 托管版 Redis云厂商已管理哨兵/集群。写在最后理解这条演进线单点 → 主从备份→ 哨兵自动切换→ Cluster分片 高可用Redis 高可用的架构题基本都能答到位。面试时记得主动说出各级的缺点为什么存在比死记配置更能体现理解。多动手敲一遍搭建流程再配合八股复习效果更好——需要刷题的话可以用可面猫笔试助手把 Redis 专题的题过一遍检验掌握程度。