缓存穿透了怎么办?

缓存穿透了怎么办?

对应缓存来说,命中率是它的生命线。

在缓存命中率低的情况下,大量查询请求会穿透缓存到数据库,因为数据库对于并发的承受能力有限,一旦数据库承受不了大量查询任务,就会导致查询变慢,导致大量的请求阻塞在数据库查询上,造成应用服务器的连接和线程资源被占满,最终导致系统崩溃。

什么是缓存穿透

缓存穿透,其实是指从缓存中没有找到数据,不得已查询数据库的情况。

少量的缓存穿透没问题,主要由如下几点原因:

  • 一方面,缓存系统在容量上有限,不可能所有的数据都存储在缓存中
  • 另外一方面,互联网系统遵守 8/2 法则,也叫 帕雷托法则,最重要的事情只占 20%, 数据库访问,经常访问 20% 的热点数据,还有 80% 不会被经常访问。

什么样的缓存穿透对象系统有害

少量的缓存穿透是不可避免的,但是大量的请求穿透请求到后端系统,会造成系统后端崩溃。

如何解决缓存穿透

假设有这样一种场景:通过userid 查询用户信息,缓存读写策略是先查缓存,后查数据库。如果数据并不存在,在缓存和数据库中都没查询到数据,因此不会回种数据,这样下次请求到来,还是会先查缓存后查数据库,这种场景下,请求就穿透到了数据库。

回种空值

最大的问题在于数据库中不存在用户的数据,这样无理查询多少次,数据库中用于都不会存在这个用户的数据,

wangxiaoming CSDN认证博客专家 架构 Spring Boot Redis
博客是很好的总结和记录工具,如果有问题,来不及回复,关注微信公众号:程序员开发者社区,获取我的联系方式,向我提问,也可以给我发送邮件,联系 1275801617@qq.com
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页
实付 19.89元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值