MST
星途 面试题库

面试题:缓存设计之中等难度:缓存分片策略选择

假设你正在设计一个用于存储用户会话信息的缓存系统,系统预计有大量用户并发访问。请阐述你会如何选择缓存分片策略(如哈希分片、一致性哈希分片等),并说明每种策略在这种场景下的优缺点。
14.6万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

哈希分片

  1. 选择原因:简单直接,计算速度快,在数据分布较为均匀的情况下能有效将数据分散存储到不同缓存节点。
  2. 优点
    • 实现简单,通过对用户会话标识(如用户ID)进行哈希计算,能快速定位到对应的缓存节点,性能高。
    • 数据分布相对均匀,能较好地利用缓存资源,减少单个节点的负载压力。
  3. 缺点
    • 当缓存节点数量发生变化(如添加或移除节点)时,会导致大量数据重新计算哈希值,从而需要重新分配到新的节点,缓存命中率急剧下降,数据迁移成本高。
    • 对于节点故障处理不够灵活,某个节点故障可能导致大量数据无法访问。

一致性哈希分片

  1. 选择原因:能在缓存节点数量变化时,尽量减少数据的重新分布,提高缓存命中率,更适合高并发且节点可能变动的场景。
  2. 优点
    • 当添加或移除缓存节点时,只有少量数据会受到影响,大部分数据仍能命中原缓存节点,大大减少了数据迁移量,保证了缓存命中率的稳定性。
    • 对节点故障有较好的容错性,某个节点故障时,受影响的数据可以被分配到其他节点,而不会导致大量数据无法访问。
  3. 缺点
    • 实现相对复杂,需要额外维护一个哈希环结构,计算资源开销相对较大。
    • 数据分布可能不够均匀,尤其是节点数量较少时,可能出现部分节点负载过高,部分节点负载过低的情况。若要解决此问题,通常需要引入虚拟节点,但这又增加了系统的复杂度。