redis中的缓存穿透、雪崩、击穿

发生原因:

当用户大量请求redis时,redis中找不到对应的数据,redis就可能会发生穿透、击穿、雪崩的情况

后果:

redis做缓存时,发透、生穿击穿、雪崩后,用户请求会直接请求DB,可能会给DB带来巨大压力,造成服务器宕机等

解释:

缓存穿透:大量请求不存在的key

缓存雪崩:大量的key过期

缓存击穿:一个key过期,但是用户大量请求这个key

解决方案:

缓存穿透:

      方法1.接口拦截,对于不合理、特殊字符、频繁的无效请求做直接拦截

      方法2.对指定key进行空值缓存,例如key=1022,value=null,避免请求直接打靶到DB数据库

缓存雪崩:

     方法1.过期时间通过随机数生成,避免集体某一个时间同时过期

     方法2.添加监测功能,实时调整key的过期时间

缓存击穿:

     方法1.使用互斥锁,互斥锁也是线程同步的一种机制,当redis中的一个key过期后,同一时间只有一个请求能访问指定的DB资源并返回给redis

     方法2.添加监测功能,实时调整key的过期时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值