缓存穿透 某个key在redis和db中都没有,如果大量去查,则会不停地查db,增加db的压力 解决方案 1.即使db中没有也可以缓存到redis,设置一个1-5分钟的过期时间即可 2.针对黑客攻击的情况,更换加密key,这样攻击的url请求就通过不了校验流程 缓存击穿 某个经常查询的key突然过期了,导致大量请求落到db 解决方案 1.设置超热key(已确定每天都有超大访问量的key)永不过期 2.若已知热点key(未达到超热key级别)只在某段时间内活跃,则设置这段时间内都不过期 3.后台定时任务,结合热点key活跃时间或具体业务,访问key相关接口,以刷新key过期时间,或直接代码刷新 4.key中存储了过期时间,当请求获取key之后,判断即将到达过期时间则刷新过期时间 5.对热点key再加一层二级缓存保障 缓存雪崩 redis服务器挂了或大批量key同时过期,导致大量请求落到db 解决方案 1.redis集群 2.设置key过期时间时添加一个随机时间,如随机加1-5分钟过期。 或者对key进行分类过期,如A类30分钟过期,B类40分钟过期,C类50分钟过期
redis缓存穿透,击穿和雪崩
最新推荐文章于 2024-05-27 17:15:36 发布