后端岗位面试题更新 2026-08-05

请阐述 Redis 集群的工作机制,包括数据分片、节点通信和故障转移等核心部分。

后端开发系统设计技术原理Redis

考察说明

考查对 Redis 集群整体架构和核心机制的理解。

回答思路

  1. 【回答框架 1】Redis 集群通过分片实现数据分布,采用哈希槽(hash slot)机制,整个键空间被划分为 16384 个槽,每个节点负责一部分槽。键通过 CRC16 计算后对 16384 取模,决定其归属的槽。
  2. 【回答框架 2】节点间通过 Gossip 协议进行通信,交换状态信息,包括节点列表、槽分配和故障信息。客户端可以连接到任意节点,当访问的键不在该节点时,会返回 MOVED 错误,客户端根据返回的地址重定向。
  3. 【回答框架 3】集群支持故障转移,当主节点不可达时,从节点会通过选举提升为主节点。故障检测基于节点间持续的 PING/PONG 消息,当多数节点认为某个主节点失效时,会触发从节点选举。
  4. 【回答框架 4】集群的高可用性依赖于副本机制,每个主节点可以有多个从节点。从节点负责复制主节点的数据,并在主节点故障时承担其职责。
  5. 【关键点 1】数据分片通过哈希槽实现,共 16384 个槽。
  6. 【关键点 2】节点通信使用 Gossip 协议,客户端通过 MOVED 重定向。
  7. 【关键点 3】故障转移由从节点选举产生新主节点。
  8. 【关键点 4】集群不保证强一致性,网络分区时可能丢失数据。
  9. 【关键点 5】集群支持在线扩容和缩容,通过槽迁移完成。
  10. 【易错点 1】误以为 Redis 集群是一致性哈希,实际是哈希槽。
  11. 【易错点 2】忽略客户端重定向机制,认为节点会转发请求。
  12. 【易错点 3】认为集群事务支持多键操作,实际上多键操作仅在槽相同且使用 hash tag 时可行。