使用缓存带来的问题 – 缓存穿透、缓存击穿、缓存雪崩

缓存穿透

产生原因

访问数据库中不存在的值时,可绕过Redis直接访问MySQL

解决方法

使用布隆过滤器检测值的存在性进行拦截

缓存击穿

产生原因

热点数据过期,导致热点数据的请求瞬间涌向MySQL

解决方法

热点数据长期驻留内存

缓存雪崩

产生原因

大量Key同时过期,导致对这些Key的请求涌入MySQL
解决方法:设置Key有效期时引入随机时间,避免密集过期
Redis宕机
解决方法:搭建Redis高可用集群

缓存雪崩发生后的解决方法

限制流量:减少数据库压力
服务降级:仅开放核心数据请求接口
服务熔断:暂停业务访问

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

©2018-2024 Howell版权所有 备案号:冀ICP备19000576号