拾题
首页 / 软考真题 / 缓存分片 / 第 1 题

请简要说明哈希算法和一致性哈希算法的基本原理,并说明采用一致性哈希算法的原因。

简答题

请简要说明哈希算法和一致性哈希算法的基本原理,并说明采用一致性哈希算法的原因。
答案:哈希算法:对key进行哈希,然后取模映射到节点,如key%N。一致性哈希:将节点和数据都映射到哈希环上,数据沿环顺时针找到第一个节点。一致性哈希在节点增减时只需迁移少量数据,而哈希算法需要重新映射几乎所有数据。

解析

参考答案

  • 哈希算法:对 key 做哈希运算,再对节点数 N 取模(key % N),把数据映射到固定节点上。
  • 一致性哈希:把节点和数据都映射到同一个哈希环(0 ~ 2^32-1)上,数据沿环顺时针找到第一个节点作为归属节点。
  • 采用原因:节点增减时,普通哈希的 N 变化会导致几乎所有 key 重新映射;一致性哈希只影响环上相邻区间的少量数据,迁移成本小。

得分点解析

1. 哈希算法原理:必须点出"哈希 + 取模"两步,取模是理解后续缺陷的前提。

2. 一致性哈希原理:核心是"哈希环 + 顺时针查找第一个节点",缺一不可。

3. 优点(节点变化影响小):这是采用它的根本动机,也是本题的价值落点。

考点延伸

  • 普通哈希在扩容、缩容、宕机时会引起缓存大面积失效,容易压垮后端数据库。
  • 一致性哈希存在数据倾斜问题,通常引入虚拟节点(每个物理节点映射多个虚拟节点)来均衡负载。
  • 该算法广泛用于分布式缓存(如 Redis 集群)、负载均衡和服务发现等场景。

本单元其他题目

在拾题里做这套题