缓存三兄弟(缓存穿透,缓存击穿,缓存雪崩)

1.缓存穿透

   缓存穿透是指在使用缓存系统的时候,大量的查询请求访问不存在于缓存的数据,导致这些请求都直接访问后端数据库或者其他的存储系统,从而增加了系统的负载和响应的时间

原理: 
  • 查询不存在的数据:当一个查询请求到达缓存系统,并且要查询的数据不存在缓存中,缓存系统无法为请求提供所需的数据,并将请求转发到后端数据库或者其他存储系统 
  • 频繁的查询请求:如果有大量的查询请求都访问不存在于缓存中的数据,会导致每个请求都直接的访问后端的存储系统,因此会增加系统的负担和响应时间
解决方案:

布隆过滤器:用于快速的过滤掉请求的数据不在缓存中的数据,可以快速的过滤掉一部分
不存在于缓存中的查询 

2.缓存击穿 

缓存击穿是指在使用缓存系统时,某个热点数据过期或者删除后,恰好有大量的并发查询请求访问该数据,导致这些请求都直接访问了后端的存储系统,从而增加了系统的负载和响应时间

 原理:
 1.缓存失效
 2.并发请求
 3.直接访问后端
 解决方案:

加锁:在缓存失效时,通过加锁机制保证只有一个请求能够进入后端存储系统获取,其他的请求只能等待那个线程释放锁之后才能访问,当从数据库中获取到数据之后将数据缓存到key中的value,然后释放锁,其他的线程就可以访问缓存中的数据了 

3.缓存雪崩 

 缓存雪崩是指大量的key设置了同样的过期时间,他们会在同一时刻过期,导致高并发的时候数据库崩溃死掉,大量查询请求不会从缓存中查询,导致这些请求都会直接访问到后端的存储系统,增加了后台的负载和响应时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值