一致性哈希(Consistent Hashing)是一种分布式系统中常用的数据分片/负载均衡算法,用来解决“节点数量变化时,如何尽量减少数据迁移”的问题。下面从直觉到原理逐步解释。
假设我们用:
hash(key) % N
把数据分配到 N 个节点上。
在分布式缓存(如 Memcached)、分布式存储中,这是不可接受的。
0 ~ 2^32-1)看成一个环hash(node) → 放到环上hash(key) → 放到环上每个 key 在环上顺时针走,遇到的第一个节点,就是它所属的节点。
假设环上有节点:
key 的哈希值落在:
A --- key1 --- B --- key2 --- C --- key3 --- A
那么:
✅ 迁移量从 O(N) 降到 O(1)
如果只有 3 个节点,可能:
A#1, A#2, A#3
B#1, B#2, B#3
✅ 非常适合:
❌ 不太适合:
一致性哈希 = 把节点和数据放到同一个哈希环上,让节点变化只影响最小范围的数据,从而实现“少迁移、高可用、易扩展”。
如果你愿意,我也可以用图示、代码实现(Java/Go/Python)或和 Redis 集群对比来进一步说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。