MST
星途 面试题库

面试题:缓存设计之中等难度:缓存过期策略的选择与应用

在后端开发中,假设你正在设计一个缓存系统用于存储用户信息。已知用户信息的更新频率较低,但对数据一致性要求不是极高。请阐述你会选择哪种缓存过期策略(如定时过期、惰性过期等),并说明理由以及该策略在这种场景下可能面临的问题及解决方案。
41.1万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

选择的缓存过期策略

惰性过期策略。

理由

  1. 减少系统开销:由于用户信息更新频率低,定时过期策略需要定时扫描缓存以清除过期数据,这会增加系统的CPU开销。而惰性过期只有在获取数据时才检查数据是否过期,平时无需额外的扫描操作,能有效降低系统资源的消耗。
  2. 满足一致性要求:因为对数据一致性要求不是极高,惰性过期在读取时才判断过期,即使在过期后到下次读取前的短暂时间内数据存在不一致,也在可接受范围内。

可能面临的问题

  1. 过期数据长期占用内存:如果数据长时间未被访问,即使已经过期,也会一直占用缓存内存空间,可能导致缓存内存不足,影响缓存系统的性能。
  2. 数据不一致时间延长:在数据过期后到下次读取前,这段时间内数据处于不一致状态,如果这段时间较长,可能对业务产生一定影响。

解决方案

  1. 内存监控与主动清理:定期监控缓存的内存使用情况,当内存使用率达到一定阈值时,主动触发一次过期数据清理操作,手动扫描并清除部分过期数据,以释放内存空间。
  2. 设置兜底机制:对于一些对业务影响较大的数据,可以结合定时过期策略设置一个兜底的过期时间,确保即使长时间未被访问,数据也能在一定时间后强制过期,减少不一致时间。