缓存如何预热?
# 回答话术
缓存预热是在系统启动或者运行过程中,提前将部分数据加载到缓存中,以确保在实际请求到来时,缓存已经包含了部分常用数据,从而提升系统的响应速度。
一般来说都是在活动或者需要调用对应缓存前,通过定时任务从数据源中加载到缓存。这些数据一般都会有一个周期,如果缓存过期时间设置不好,还会存在缓存雪崩问题,参考:🛎️ 如何解决缓存雪崩? (opens new window)
其次,可以在预热过程中记录日志或者使用监控工具来监视预热的效果,确保热点数据已经被成功加载到缓存中。
# 问题详解
# 1. 为什么不在项目启动时通过初始化任务加载?
如果一个项目启动多个节点,那么就会涉及到加载多次缓存,进而造成资源浪费。或者可以使用分布式锁等工具,来保证缓存预热仅加载一次,但这会加重代码复杂度。
如果项目中使用了 XXL-Job 等分布式定时任务框架,可以直接使用定时任务解决缓存预热。反之,可以使用分布式锁以及其它方式进行项目启动时预热。
# 2. 如何确认缓存预热数据
需要预热的数据一般都有一个特点,那就是已知这些数据会被大量访问。
大部分情况下,苹果15不显眼,但是如果参加了活动,比如某直播间1块钱抢购苹果15、某商品大降价或者抢购茅台酒等,像这种已知会很火的数据,不用想直接加缓存。
还有一种就是类似于直播带货里的商品橱窗,就算商品价格没有什么优势,但是人数上来后,大家可能感兴趣在那点点点。
上次更新: 2023/11/06, 23:14:13