缓存穿透,击穿,雪崩之间的区别与联系

本文详细介绍了缓存数据的基本流程,接着深入探讨了缓存穿透的概念,即当数据库中不存在的数据被大量访问时,对数据库造成压力。提出了将空值存入缓存和使用布隆过滤器作为解决方案。接着讨论了缓存击穿,即原本存在于缓存的数据突然失效,导致请求直接击中数据库,提出了使用分布式锁进行回填缓存的方法。最后,解释了缓存雪崩,即大量缓存同时失效,引发数据库崩溃,建议通过分散设置缓存失效时间和使用分布式锁来预防。总结了缓存管理中的经典问题及其应对策略。
摘要由CSDN通过智能技术生成

1、缓存数据基本流程

通常来说,我们是从数据库将数据查询出来之后,如果数据不为空,则将数据存储在缓存中,下次查询时就直接从缓存查询了,只有查询不到才会从数据库查询。

2、缓存穿透

核心在穿透两个字,穿透了,就说明在查询数据时没有遇到阻碍,直接就查询到了数据库。

也就是说我们某个数据在数据库不存在,那么就不会存储到缓存,那么这个空数据如果被大量访问,那就会有大量的请求穿透了缓存,直接命中在数据库。

3、缓存穿透解决方案

  • 1、既然数据库没有,但是这个key又可能被大量访问,那么就将空值存储在缓存,过期时间设置短一点。就可以解决瞬时高并发问题。
  • 2、使用布隆过滤器,查询时先去布隆过滤器查询key是否存在,不存在就直接返回,存在再查询数据库和缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小何

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值