MST
星途 面试题库

面试题:缓存设计之中等难度:电商系统缓存过期策略设计

在电商系统中,商品数据会不断变化。请阐述你会如何设计缓存过期策略,以确保缓存中的商品信息既能及时更新,又能在高并发情况下保证系统性能?需要说明具体的过期时间设定方法以及应对缓存击穿的措施。
25.2万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

缓存过期策略设计

  1. 过期时间设定方法
    • 基于商品更新频率:对于更新频繁的商品,如限时促销商品、热门商品,设置相对较短的过期时间,例如1 - 5分钟。因为这些商品信息变动可能性大,较短过期时间能及时获取最新数据。对于更新不频繁的商品,如一些常规日用品,可设置较长过期时间,如1 - 2小时。
    • 动态调整过期时间:建立一个监控系统,统计商品在一段时间内的更新次数。如果更新次数增多,自动缩短其缓存过期时间;若更新次数稳定且较少,适当延长过期时间。
  2. 应对缓存击穿措施
    • 互斥锁:在缓存失效时,不是立即查询数据库,而是先获取一把互斥锁。只有获取到锁的请求才能去查询数据库并更新缓存,其他请求等待。当获取锁的请求更新完缓存后,释放锁,等待的请求再尝试从缓存中获取数据。
    • 热点数据永不过期:对于一些绝对的热点商品,设置缓存永不过期。同时在更新数据库时,同步更新缓存数据,确保数据一致性。这样可以避免高并发下热点数据缓存过期导致的缓存击穿问题。