- 1
- 2
- 3
- 4
- 5
哈希槽分片详解
资料介绍
什么是哈希槽分片
哈希槽分片是分布式存储系统中常用的数据分片方案,核心思想是先将整个数据空间划分为固定数量的哈希槽,再通过映射关系将哈希槽分配给不同的物理节点,数据写入时先计算key的哈希值映射到对应哈希槽,再根据当前槽位的节点分配信息路由到目标节点存储。和传统的哈希取模分片相比,哈希槽在节点扩缩容时具备更灵活的优势,目前最典型的实现就是Redis Cluster集群方案,Redis官方将整个空间划分为16384个哈希槽,成为哈希槽分片最广为人知的应用案例。
哈希槽分片的核心原理
1. 预划分固定数量槽位
哈希槽分片的第一步就是预先划分出固定总数的哈希槽,槽位数量一般在系统设计阶段就确定,不会因为节点数量变化而改变。例如Redis Cluster固定设置16384个槽,编号从0到16383。为什么Redis选择16384这个数字?主要有两个原因:一是减少节点间心跳包的体积,每个节点在发送心跳时需要携带自己负责的槽位信息,16384个槽只需要2000字节左右(每个槽位用1bit标记,16384bit=2048字节),如果槽位数量扩大到65536,心跳包就会变成8KB,增加了集群网络开销;二是Redis集群一般规模不会太大,大多数集群节点数量在两位数,16384个槽足够完成数据均匀分配,不需要更大的空间。
2. key到槽位的映射
写入数据时,首先对key做哈希计算,得到哈希值后对总槽数取模,得到该key对应的槽位编号,常见的映射公式为:
slot_number = crc16(key) % total_slots
其中Redis使用的就是CRC16算法对key计算哈希,再对16384取模得到槽位。如果key包含哈希标签({}),那么只会对{}中的部分计算哈希,这样可以保证同一个标签的多个key落在同一个槽位,实现批量操作的原子性。
部分文件列表
| 文件名 | 大小 |
| 哈希槽分片详解.docx | 17K |
最新上传
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏310.00元 3天前
用户:mulanhk
-
21ic下载 打赏320.00元 3天前
用户:jh03551
-
21ic下载 打赏220.00元 3天前
用户:jh0355
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏210.00元 3天前
用户:小猫做电路
-
21ic下载 打赏60.00元 3天前
用户:gsy幸运
-
21ic下载 打赏60.00元 3天前
用户:zhengdai
-
21ic下载 打赏60.00元 3天前
用户:lanmukk
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏20.00元 3天前
用户:w993263495
-
21ic下载 打赏30.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:w178191520
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:w1966891335
-
21ic下载 打赏15.00元 3天前
用户:x15580286248
-
21ic下载 打赏25.00元 3天前
用户:qiufeng0299
-
21ic下载 打赏15.00元 3天前
用户:kk1957135547
-
21ic下载 打赏10.00元 3天前
用户:qingsong08
-
21ic下载 打赏10.00元 3天前
用户:电工老刘
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
ZENGYIBIN 打赏1.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:STM32的数字万用表
-
21ic小能手 打赏5.00元 3天前
-
kuangwy 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:触控无极台灯控制方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机的汽车雨刷器
-
21ic小能手 打赏5.00元 3天前




全部评论(0)