写点什么

什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?

作者:Barry Yan
  • 2022-11-13
    北京
  • 本文字数:690 字

    阅读完需:约 2 分钟

什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?

什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?23/100 发布文章 Mr_YanMingXin 未选择任何文件 new

1 缓存的作用和一般使用流程

作用


减少服务器压力,增加请求承载量,快速响应请求等等。


一般流程


2 缓存穿透

概念:指缓存和数据库中都没有用户想要查询到的数据,并且不断进行请求,造成数据库承载部分压力。



解决方法


  • 接口校验:防止非法请求

  • 将缓存中 key-value 的 value 设置为 null

3 缓存击穿

概念:指同一时间内大量缓存同时失效,导致请求全部转向数据库。



解决方法


  • 设置热点数据永不过期

  • 加锁,设置数据库为延时访问

4 缓存雪崩

概念:指同一时间内大量不同请求的缓存同时失效,导致请求全部转向数据库,引起数据库宕机。



解决方法


  • 缓存数据的过期时间设置随机

  • 将热点数据均匀分布在不同缓存数据库中

  • 设置热点数据永远不过期 1 缓存的作用和一般使用流程作用:


减少服务器压力,增加请求承载量,快速响应请求等等。


一般流程:在这里插入图片描述


2 缓存穿透概念:指缓存和数据库中都没有用户想要查询到的数据,并且不断进行请求,造成数据库承载部分压力。


在这里插入图片描述解决方法:


接口校验:防止非法请求将缓存中 key-value 的 value 设置为 null3 缓存击穿概念:指同一时间内大量缓存同时失效,导致请求全部转向数据库。在这里插入图片描述解决方法:


设置热点数据永不过期加锁,设置数据库为延时访问 4 缓存雪崩概念:指同一时间内大量不同请求的缓存同时失效,导致请求全部转向数据库,引起数据库宕机。


在这里插入图片描述解决方法:


缓存数据的过期时间设置随机


将热点数据均匀分布在不同缓存数据库中


设置热点数据永远不过期


Markdown 1168 字数 39 行数 当前行 1, 当前列 0HTML 297 字数 20 段落

发布于: 刚刚阅读数: 3
用户头像

Barry Yan

关注

做兴趣使然的Hero 2021-01-14 加入

Just do it.

评论

发布
暂无评论
什么是缓存击穿、缓存穿透、缓存雪崩?如何解决?_redis_Barry Yan_InfoQ写作社区