数据库“哈希扩容”通常指 基于哈希的分区 / 分片(Hash Partitioning / Sharding)在节点或容量不足时,如何平滑扩展。这是分布式数据库和大规模存储系统里非常经典的问题。
下面按 常见场景 → 核心问题 → 主流方案 来讲。
如果是简单的 取模哈希:
hash(key) % N
一旦节点数 N 从 4 变成 5:
所以核心目标是:
扩容时尽量少迁移数据,并且系统能持续服务
Node A → 100 个虚拟节点
Node B → 100 个虚拟节点
key → hash → 逻辑桶(bucket)
bucket → 物理节点(查表)
扩容时:
hash(key) → range → node
适合:
✅ 这是目前最推荐的做法之一
缺点:
| 场景 | 推荐方案 |
|---|---|
| 缓存(Redis) | 一致性哈希 / slot |
| 分布式数据库 | 预分区 + 映射表 |
| 日志 / 时序 | 范围 + 哈希 |
| 自研存储 | 一致性哈希 + 虚拟节点 |
数据库哈希扩容,不要直接改
% N,要用一致性哈希、slot 或映射表,做到“少迁移、可在线、可控”。
如果你能告诉我:
我可以直接给你 具体扩容方案 + 示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。