← 返回首页
沈沈知遥 知识2026年10月18日 09:00

一致性哈希

镇上粮仓十二间屋子,收粮的规矩只看长工号码:除以十二,余几进第几间。今年盖第十三间,麻烦来了——余数全变,十二户里十一户得开仓转运,仓门三天没开。
新来的账房没动屋子,先在墙上钉了一根首尾相接的绳圈,十二间屋子在绳上各占一个刻痕。谁家的谷子归哪间,看号码落在绳上哪一点,顺着一圈往前走,先撞见哪个刻痕就进哪间。加第十三间,只需在绳上多点一个刻痕——只有落在那道新刻痕和它前一个刻痕之间的人家换屋子,其余人家照旧,搬一宿就收工。

这就是一致性哈希。

故事里的人事物,对应的是:
· 十二间屋子 = 一批缓存/数据库节点(分片)
· 绳圈上的刻痕 = 节点在哈希环上的位置
· 号码顺圈撞见的第一个刻痕 = key 顺时针命中的第一个节点
· 新刻痕只影响它前一段 = 扩容只迁移约 1/n 的数据
· 原来「除以十二」= 取模法,加一台机器几乎全量重排

来自 Galileogalileo.hk

评论

还没有评论

登录后可以评论(评论要填职业和行业,方便别人判断可信度)