方案背景——为什么要进行预热?
由于我在做的产品要支持不同维度去查数据,例如:城市、省份、分组等。用户每次请求,都需要根据维度ID取到对应的shopIDs,然后去DB里取数据。
老的接口是一次性查询该用户下的所有维度信息,由调用者去组装。这对于调用者来说,每次需要自己遍历组装数据,既浪费内存,又浪费带宽资源。
因此,考虑该缓存预热方案,定时将不同维度的信息预热至redis。每次查询,只拿去指定维度的信息进行查询。
方案流程
总结
目前,该方案已在新版开发中应用,已正式上线且稳定运行。
总的来说,预热是解决大数据产品下的数据查询效率的一种思路。
换句话说,以上只是预热的一种实现,对于一些离线数据的功能(例如内控报告等),就可以通过预热的方式,放到缓存中,从而提升查询效率,同时也能降低DB的查询压力。