redis缓存穿透,击穿和雪崩

缓存穿透
某个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分钟过期
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值