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

124 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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

作用

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

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

2 缓存穿透

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

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

  • 接口校验:防止非法请求
  • 将缓存中key-value的value设置为null

3 缓存击穿

概念:指同一时间内大量缓存同时失效,导致请求全部转向数据库。
在这里插入图片描述
解决方法

  • 设置热点数据永不过期
  • 加锁,设置数据库为延时访问

4 缓存雪崩

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

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

  • 缓存数据的过期时间设置随机
  • 将热点数据均匀分布在不同缓存数据库中
  • 设置热点数据永远不过期