缓存雪崩:缓存在同一时间大面积的失效,后面的请求都直接落到了数据库上,造成数据库短时间内承受大量请求。
这就好比雪崩一样,数据库的压力可想而知,可能直接就被这么多请求弄宕机了。
举个例子:系统的缓存模块出了问题比如宕机导致不可用。造成系统的所有访问,都要走数据库。然后数据库压力剧增,请求处理不及,造成宕机。
解决办法
1、针对 Redis 服务不可用的情况:
- 采用 Redis 集群和哨兵模式,避免单机出现问题整个缓存服务都没办法使用。
- 限流,避免同时处理大量的请求。
2、针对热点缓存失效的情况:
- 设置不同的失效时间比如随机设置缓存的失效时间。这样不同的key不会再同一时间失效,也就不会造成大量数据在一时间访问不到。
- 缓存永不失效。
缓存雪崩是指大量缓存在同一时刻失效,导致请求直接击穿数据库,造成数据库压力过大甚至宕机。这种情况可能由于缓存服务故障或热点数据集中失效引起。为防止缓存雪崩,可以采取如Redis集群和哨兵模式增强服务稳定性,通过限流减少同时处理的请求。此外,设置随机缓存失效时间和实现缓存永不失效也是有效策略。
1254

被折叠的 条评论
为什么被折叠?



