说说 Redis 的缓存雪崩?
PassJava (佳必过) 项目全套学习教程连载中,关注公众号悟空聊架构第一时间获取。
文档在线地址: www.passjava.cn
Redis的淘汰策略有哪几种?
说说 Redis 的缓存雪崩?

缓存雪崩是指我们缓存多条数据时,采用了相同的过期时间,比如 00:00:00 过期,如果这个时刻缓存同时失效,而有大量请求进来了,因未缓存数据,所以都去查询数据库了,数据库压力增大,最终就会导致雪崩。
带来的风险
尝试找到大量 key 同时过期的时间,在某时刻进行大量攻击,数据库压力增大,最终导致系统崩溃。
解决方案
1.在原有的实效时间基础上增加一个随机值,比如 1-5 分钟随机,降低缓存的过期时间的重复率,避免发生缓存集体实效。
2.Redis 高可用,主从+哨兵,Redis cluster,避免全盘崩溃。
3.限流,如果 redis 宕机,可以限流,避免同时刻大量请求打崩 DB。
4.Redis 持久化,一旦重启,自动从磁盘上加载数据,快速恢复缓存数据。
5.热点key识别+本地缓存。
6.singleflight降低缓存并发重复读。
作者简介:悟空,8年一线互联网开发和架构经验,用故事讲解分布式、架构设计、Java 核心技术。《JVM性能优化实战》专栏作者,开源了《Spring Cloud 实战 PassJava》项目,公众号:
悟空聊架构。
悟空的开源项目
https:///Jackson0714/PassJava-Platform
















