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