分片规则节点取余
三种常见的哈希分片
- 节点取余
- 一致性哈希
- 虚拟槽哈希
节点取余
主要采取的手段就是:hash(key) % N
|--------------|
| 1~100 |
|--------------|
hash(key)%3
|--------------| |--------------| |--------------|
| 3,6,9...99 | | 1,4,7...100 | | 2,5,8...98 |
|--------------| |--------------| |--------------|
|--------------|
| 1~100 |
|--------------|
hash(key)%4
|--------------| |--------------| |--------------| |--------------|
| 4,8,...100 | | 1,5...97 | | 2,6...98 | | 3,7...99 |
|--------------| |--------------| |--------------| |--------------|
节点取余存在的问题
数据迁移量较大,例如: 1~10
, 3
个节点:
- 第0个节点: 3, 6, 9
- 第1个节点: 1, 4, 7, 10
- 第2个节点: 2, 5, 8
如果这时候我们把节点进行扩展,扩展到 4 个节点数据存储如下:
- 第0个节点: 4, 8
- 第1个节点: 1, 5, 9
- 第2个节点: 2, 6, 10
- 第3个节点: 3, 7
节点取余推荐扩容方式
翻倍扩容, 例如: 1~10
, 3
个节点:
- 第0个节点: 3, 6, 9
- 第1个节点: 1, 4, 7, 10
- 第2个节点: 2, 5, 8
然后我们基于上一次的节点数量进行翻一倍,目前就是 6 个节点了:
- 第0个节点: 6
- 第1个节点: 1 7
- 第2个节点: 2 8
- 第3个节点: 3 9
- 第4个节点: 4 10
- 第5个节点: 5
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具