MST

星途 面试题库

面试题:Redis缓存应用策略之命令请求执行相关 - 中等难度

在使用Redis作为缓存处理命令请求时,如何通过合理设置缓存过期时间来平衡数据一致性和缓存命中率?请举例说明。
28.0万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试
  1. 平衡原则
    • 数据一致性角度:对于数据一致性要求高的场景,如涉及金额、重要业务状态等数据,缓存过期时间应设置较短。这样能保证数据在短时间内更新,减少缓存与数据库数据不一致的时间窗口。
    • 缓存命中率角度:对于变动不频繁的数据,可设置较长的缓存过期时间,以提高缓存命中率,减少对数据库的查询压力。
  2. 举例
    • 高一致性场景:假设一个电商系统的商品库存数据。商品库存对数据一致性要求极高,因为库存数量直接影响到商品能否正常售卖。可以设置较短的缓存过期时间,比如1 - 5分钟。例如使用Redis的SET key value EX 300命令(EX后面的数字300表示300秒即5分钟过期)。这样即使库存数据发生变化,5分钟内缓存数据也会过期,下一次请求时会从数据库重新读取最新库存,保证了数据一致性。
    • 兼顾缓存命中率场景:以电商系统的商品详情页数据为例,商品详情信息(如商品描述、品牌等)一般不会频繁变动。可以设置相对较长的缓存过期时间,如1 - 2天。例如使用SET key value EX 172800命令(EX后面的数字172800表示172800秒即2天过期)。这样大部分时间内用户请求商品详情页时,都能从缓存中获取数据,提高了缓存命中率,减轻数据库压力,同时因为商品详情数据本身变动不频繁,所以也不会过多影响数据一致性。