二级缓存如何避免缓存雪崩?数据预热如何实现?
来源:4-10 Pipeline及主从同步
慕虎7161837
2020-11-10
老师,做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期。这样能避免雪崩,我不是很明白。一级缓存集中失效,都是查二级缓存,到时候二级缓存又集中失效,不还是会集中访问数据库吗?失效时间不错开,二级三级缓存又有什么用呢?另外问一下,数据预热可以避免雪崩,这个大致是怎么实现的?
写回答
1回答
-
翔仔
2020-11-12
同学好,没太明白同学的意思,A2的缓存为什么是集中失效呀,可以设置随机过期时间呀,此外,同学说的雪崩概率也很小吧,A1如果全部失效,请求打到A2,那么反过来如果A2集中失效的时候,A1应该已经恢复并且能扛了吧,如果两者都失效肯定就挂了,所以失效时间要错开啊,同学一开始也说了一个是短期一个是长期。我理解的二级缓存应该指的是一种旁路,或者另外一种存储介质。比如说A1是你的本地缓存,A2是redis缓存,存在别的机器上。此外,同学还可以设置一个兜底数据,就是当所有缓存都失效,就直接返回写死的兜底数据,保证服务可用。此外,数据预热主要就是根据业务形态,提前给缓存注入一些业务经常要查询的数据,这样就能够提前有缓存来扛请求了,这个就和solr或者es的热身原理是一样的。
022020-11-13
相似问题