面试题答案
一键面试哈希分片
- 选择原因:简单直接,计算速度快,在数据分布较为均匀的情况下能有效将数据分散存储到不同缓存节点。
- 优点:
- 实现简单,通过对用户会话标识(如用户ID)进行哈希计算,能快速定位到对应的缓存节点,性能高。
- 数据分布相对均匀,能较好地利用缓存资源,减少单个节点的负载压力。
- 缺点:
- 当缓存节点数量发生变化(如添加或移除节点)时,会导致大量数据重新计算哈希值,从而需要重新分配到新的节点,缓存命中率急剧下降,数据迁移成本高。
- 对于节点故障处理不够灵活,某个节点故障可能导致大量数据无法访问。
一致性哈希分片
- 选择原因:能在缓存节点数量变化时,尽量减少数据的重新分布,提高缓存命中率,更适合高并发且节点可能变动的场景。
- 优点:
- 当添加或移除缓存节点时,只有少量数据会受到影响,大部分数据仍能命中原缓存节点,大大减少了数据迁移量,保证了缓存命中率的稳定性。
- 对节点故障有较好的容错性,某个节点故障时,受影响的数据可以被分配到其他节点,而不会导致大量数据无法访问。
- 缺点:
- 实现相对复杂,需要额外维护一个哈希环结构,计算资源开销相对较大。
- 数据分布可能不够均匀,尤其是节点数量较少时,可能出现部分节点负载过高,部分节点负载过低的情况。若要解决此问题,通常需要引入虚拟节点,但这又增加了系统的复杂度。