redis雪崩、击穿、穿透

1.redis雪崩

redis雪崩是指由于大量的redis缓存在同一时间失效,导致所有的请求都被发送到数据库中,从而造成数据库崩溃。

解决redis雪崩我认为可以有以下几个办法:

1.不设置redis缓存的生效时间,那么redis就不会失效(不好)

2.使redis缓存的生效时间都不同,就不会发生大量请求同时被发送到数据库的情况

3.利用定时器不断刷新,每当缓存失效事件到后就重新设置生效时间

2.redis击穿

redis击穿与雪崩比较类似,但不同的是redis击穿是大量的请求去访问一个热点的key,当该key突然失效时这些请求就会击穿该key,直接传入数据库,导致数据库对某些请求的响应不及时导致崩溃

解决方案是:

1.在redis失效,请求传入数据库的过程中加上锁,限制只能有一个请求访问数据库获取数据,这样第一个进入数据库的请求就会把从数据库获取到的数据存入redis中,使其他的请求可以从redis中获取数据

2.让redis永久生效(不好)

3.redis穿透

是指有恶意数据访问redis,既不满足reids的访问要求又不满足数据库的访问要求

解决方案:

1.第一次有恶意数据访问时,无论在数据库中是否查询到数据,都会返回一个值存在redis中,从而下次再有恶意数据访问时就会直接访问redis而不是数据库

2.在访问redis前就增加一个判断,如果不满足访问条件就直接返回一个提示信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值