缓存穿透
产生原因
访问数据库中不存在的值时,可绕过Redis直接访问MySQL
解决方法
使用布隆过滤器检测值的存在性进行拦截
缓存击穿
产生原因
热点数据过期,导致热点数据的请求瞬间涌向MySQL
解决方法
热点数据长期驻留内存
缓存雪崩
产生原因
大量Key同时过期,导致对这些Key的请求涌入MySQL
解决方法:设置Key有效期时引入随机时间,避免密集过期
Redis宕机
解决方法:搭建Redis高可用集群
缓存雪崩发生后的解决方法
限制流量:减少数据库压力
服务降级:仅开放核心数据请求接口
服务熔断:暂停业务访问