跳到内容
当前位置:首页>面试真题>大厂Redis面试通关(3):哨兵脑裂、Cluster不可用、线上卡顿?这5道生产,能答对的人不到10%!

大厂Redis面试通关(3):哨兵脑裂、Cluster不可用、线上卡顿?这5道生产,能答对的人不到10%!

  • 2026-10-23 15:20:39
大厂Redis面试通关(3):哨兵脑裂、Cluster不可用、线上卡顿?这5道生产,能答对的人不到10%!

面试官问:“哨兵模式怎么选主?”、“Redis Cluster 集群不可用的常见原因?”、“线上Redis突然卡顿,你怎么排查?”

如果你只会背“哨兵监控、自动切换”,那面试官可能会觉得你没处理过真实的线上故障。真正的运维老炮,必须对脑裂、集群不可用、阻塞卡顿有肌肉记忆。

这是【DevOps-运维小子】Redis面试通关合集的第3篇。

🛡️ 【考点11-14:哨兵模式与 Cluster 集群】

👉 哨兵模式:监控、通知、自动故障转移、配置中心。基于 Raft 协议选主。

👉 哨兵模式(Sentinel)下应用层如何感知主节点切换?应用层通过连接哨兵集群获取主节点地址,哨兵通过发布订阅机制通知客户端。客户端需支持 Sentinel 协议(如 Jedis、Lettuce)。

👉 Redis Cluster 工作原理:分片(16384个槽),去中心化,节点间通过 Gossip 协议通信。客户端请求重定向(MOVED/ASK)。

👉 Redis Cluster 集群不可用的常见原因?槽未完全分配、主节点宕机且从节点无法提升、网络分区导致脑裂、节点超时。

🚨 【生产级实战:脑裂(Split-Brain)怎么解决?】

“这是面试官最爱问的生产级故障。当主节点网络隔离,哨兵提升从节点,导致双主。旧主节点还在接收写入,当网络恢复后,旧主节点会被降级为从节点,导致数据丢失。解决方案:在配置文件中设置 min-replicas-to-write 1 和 min-replicas-max-lag 10。主节点发现从节点太少(少于1个)或延迟太大(超过10秒),直接拒绝写入,把损失降到最低。”

🚀 【考点15:Redis 阻塞、卡顿怎么处理?】

👉 排查思路:排查慢查询(slowlog)、大Key、客户端缓冲区溢出(client-output-buffer-limit)、AOF重写、RDB fork、内存交换(SWAP)。

👉 生产级回答(加分项):“如果 redis-cli --latency 发现延迟高,先执行 slowlog get 10 看慢查询。如果 redis-cli info stats 显示 expired_keys 极多,说明存在大量集中过期的Key(可能引发缓存雪崩)。⚠️ 另外,检查是否开启了 lazyfree(异步删除),如果没有,DEL 大Key会导致主线程阻塞几秒甚至几十秒。”

你们在生产环境里,遇到过Redis脑裂吗?最后是怎么解决的?欢迎评论区聊聊。

上面展示的仅仅是核心考点。为了方便大家复习,我整理了《Redis生产级面试通关全集》PDF + 4个生产排查脚本。

👉 关注公众号【DevOps-运维小子】,后台回复【Redis面试】,直接领走!

(预告:下一篇是完结篇,讲“性能优化与安全”,Redis 6.0多线程、慢查询监控、安全加固,全是高薪DevOps的必备技能。)