缓存穿透、缓存击穿、缓存雪崩

缓存雪崩1、数据保存在缓存中,并设置了过期时间时,如果某一时刻,大量数据同时过期,此时,应用程序再访问这些数据的话,就会发生缓存缺失。
2、应用就会把请求发送给数据库,从数据库中读取数据。
3、如果应用的并发请求量很大,那么数据库的压力也就很大,这回进一步影响到数据库的其他业务请求处理,进而导致数据库崩溃。

1、给缓存数据的过期时间加上小的随机数,避免同时过期

2、缓存降级熔断

3、请求限流

4、Redis缓存主从集群

建议通过切片集群的方式保证高可用,去中心化,比起主从+哨兵更好

缓存击穿针对某个访问非常频繁的热点数据请求,无法在缓存中进行处理,紧接着访问该数据的大量请求,一下子都发送到后端数据库,导致数据库压力激增影响数据库处理其他请求。1、热点数据不设过期时间
缓存穿透

1、要访问的数据既不是Redis缓存中也不再数据库中,导致请求在访问缓存时,发生缓存缺失,再去访问数据库时,发现数据库中也没有要访问的数据。

2、如果应用持续有大量请求访问数据,就会同时给缓存和数据库带来巨大压力 

1.缓存空值或者缺省值。

2.使用布隆过滤器快速判断数据是否存在,避免从数据库中查询数据是否存在,减轻数据库压力。

3.前端对非法请求校验,避免请求进入缓存或者数据库。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值