Redis Cluster分片机制与Key哈希槽定位全解
ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花
Redis Cluster是Redis官方推出的分布式集群方案,核心采用哈希槽(Hash Slot)分片实现数据分布式存储,摒弃了传统一致性哈希,通过固定槽位映射实现集群扩容、缩容和故障转移,整体分片逻辑分为「槽位划分→节点绑定槽位→Key映射槽位」三大核心环节,下文逐一拆解。
一、Redis Cluster核心分片原理:哈希槽机制
Redis Cluster的分片本质是将整个Redis键空间逻辑拆分为固定数量的哈希槽,每个主节点负责托管一部分槽位,数据按槽位归属存储,从节点仅负责备份主节点的槽位数据,不承担读写流量(默认)。
1.1 固定哈希槽总数:16384个
Redis Cluster强制设定16384个哈希槽,编号范围为0~16383,这个数值是官方精心设计的结果:
- 数值适配CRC16算法:16384是2的14次方(2¹⁴),CRC16哈希结果取低14位即可完成槽位计算,位运算效率远高于普通取模;
- 兼顾集群规模与性能:16384个槽位既满足千级节点集群的分片需求(官方建议最大主节点数≤1000),又不会因槽位过多增加节点通信、槽位迁移的开销;
- 便于位图存储:槽位状态可用位图标记,16384个槽仅需2KB内存即可存储全量槽位归属信息,轻量化同步。
1.2 哈希槽与集群节点的绑定规则
哈希槽是分片的最小单元,每个槽位唯一归属一个主节点,集群搭建时会自动将16384个槽位均匀分配给所有主节点,也支持手动调整槽位分配比例:
- 例如3主节点集群:每个主节点大致分配5461个槽位(16384/3≈5461);
- 例如6主节点集群:每个主节点大致分配2730个槽位;
- 槽位支持连续/分散分配,扩容缩容时仅需迁移目标槽位数据,无需全量重排。
集群通过Gossip协议同步各节点的槽位归属信息,所有节点维护同一份全局槽位-节点映射表,客户端连接集群后会缓存这份映射表,提升路由效率。
二、Key定位哈希槽的完整流程
确定Key归属的哈希槽,是Redis Cluster路由数据的核心步骤,全程由客户端/集群节点通过固定算法计算,无需人工干预,核心公式采用位运算优化(效率更高),而非直接取模。
2.1 核心计算公式
官方标准计算逻辑(位运算版):
$$SLOT = CRC16(key) \& 16383$$
等价于普通取模公式(结果一致):
$$SLOT = CRC16(key) \% 16384$$
关键说明:CRC16是针对Key字符串的循环冗余校验算法,生成16位哈希值;与16383(二进制14个1)做按位与运算,仅保留低14位,直接得到0~16383的槽位编号。
2.2 分步计算拆解
- Key预处理:若Key包含哈希标签(Hash Tag),仅提取标签内的字符串参与计算;无标签则使用完整Key字符串;
- CRC16哈希计算:对预处理后的字符串执行CRC16算法,得到16位无符号整数;
- 位运算取槽位:将哈希结果与16383做按位与运算,最终得到目标哈希槽编号;
- 节点路由:根据全局槽位映射表,找到该槽位归属的主节点,完成数据读写。
2.3 哈希标签(Hash Tag):自定义槽位绑定
为解决多Key原子操作(如MSET、事务)需同节点存储的问题,Redis Cluster支持哈希标签,语法为{自定义标识},规则如下:
- 仅计算Key中{}包裹的子字符串,忽略其余字符;
- 示例:Key为user:{1001}:info、order:{1001}:detail,均提取「1001」计算,最终归属同一个槽位;
- 注意:若Key中存在多个{},仅取第一个{}内的内容参与计算。
三、关键补充:槽位迁移与重定向
集群扩容/缩容时,会触发槽位迁移:目标槽位从原主节点迁移至新主节点,迁移期间集群仍可正常服务。若客户端访问的槽位正在迁移或归属其他节点,集群会返回ASK/MOVED重定向指令,客户端自动更新缓存的槽位映射表,重新路由请求,保证数据访问不中断。
总结
Redis Cluster分片核心是16384个固定哈希槽,通过槽位与主节点绑定实现分布式存储;Key定位槽位依靠CRC16哈希+位运算快速计算,哈希标签可实现多Key同槽绑定,整套机制兼顾性能、扩展性和运维便捷性,是Redis分布式部署的标准方案。
ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花
本专栏聚焦 Redis Cluster 官方分布式方案,拆解去中心化架构、16384 哈希槽分片、Gossip 协议通信、主从复制与自动故障转移核心原理。从集群搭建、扩缩容实战,到生产环境性能调优、故障排查、高可用设计,覆盖原理剖析、实操步骤、面试高频考点与最佳实践,助力开发者突破单机瓶颈,构建支撑海量数据与高并发的分布式缓存体系,适配电商、社交等业务场景。

华为HUAWEI工作强度 1383人发布