缓存问题
- 分布式缓存
- Redis缓存雪崩
- Redis缓存击穿
- Redis缓存穿透
- 缓存预热
- 缓存降级
Redis缓存雪崩
出现概率: ★★★★★
这个在Redis面试的题目中算是出镜率特别高的问题了, 建议仔细消化一下。
1)、缓存雪崩是指大量的缓存key无法在Redis缓存中进行处理,紧接着,短时间大量请求直接打到数据库层,导致数据库层的压力激增, 可能瞬间就会导致数据库宕机。
缓存雪崩一般是由两个原因导致的,应对方案也有所不同,我们一个个来看。
第一个原因是:缓存中有大量数据同时过期,比如说一些APP首页缓存数据,都设置了当天有效, 凌晨过期, 在第二天流量高峰时, 大量用户访问的请求, 没有换成从数据库中读取数据。如果应用的并发请求量很大,那么数据库的压力也突然变得很大,可能会造成缓存雪崩。
这种类似的问题解决思路也基本简单, 打散过期时间, 比如设置过期时间为 24小时之后 + 随机N分钟。
另外一个原因是Redis宕机, 这个就需要分析Redis宕机的原因了, 是因为磁盘满了还是内存满了, 根据情况进行处理,或者升配置什么的。 如果是内存满了, 也需要考虑是不是缓存过期回收策略的问题。