一篇文章彻底理解:缓存击穿、缓存穿透、缓存雪崩、缓存预热

前言:缓存的英文单词:Cache

  这4个词中,都出现了缓存,那么在实际的项目开发中肯定是使用了缓存技术的。

  缓存(Cache): 存储在计算机中的一段数据

  使用缓存的好处:提高程序的运行效率,减轻直接对数据库的访问压力

正常访问情况:

   

 

 

缓存击穿:是指用户发起请求,缓存中没有数据,数据库中有数据,从而引起数据库压力过大

   原因:一般是缓存时间到期时间导致的

   解决:热点记录的缓存数据用不过期

      图解:

    

 

 

缓存穿透:是指缓存与数据库都没有数据,而用户不断的发起请求

      原因:可能是用户发起的id请求不存在或"-1"或特别大

      解决:1、把当前的请求,加入缓存,并设置时间(短时间)

      2、检验用户请求的合法性

      3、布隆过滤算法

      图解:

    

 

 

缓存雪崩:是指缓存中(不同的)数据大批量过期,而查询数据量特别大,引起数据库压力过大甚至宕(dang)机的情况

     原因:不同数据大批量过期

     解决:1、缓存过期时间设置不同

      2、热点数据永不过期

      3、如果缓存数据库时分布式部署,将热点数据均匀分布在不同的缓存数据库中

   

缓存预热:是指系统部署上线成功后,人为的将现有数据(通过访问对应的功能)加入缓存,防止第一时间涌来大量请求,导致数据库压力过大或崩溃的现象

 
 
posted @ 2022-10-25 23:16  向大海  阅读(93)  评论(0编辑  收藏  举报