【Redis系列】- 什么是缓存击穿、缓存穿透、缓存雪崩?

背景

  我们在项目中大量使用Redis承接海量数据的冲击,但是使用过程中也会遇到一些特殊的情况,这个就是缓存击穿、缓存穿透、缓存雪崩。

 

缓存穿透问题 

  先来看一个常见的缓存使用方式:读请求来了,先查下缓存,缓存有值命中,就直接返回;缓存没命中,就去查数据库,然后把数据库的值更新到缓存,再返回。

  


  缓存穿透(Cache penetration) :

  指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来压力。
  缓存穿透一般都是这几种情况产生的:
  通俗点说,读请求访问时,缓存和数据库都没有某个值,这样就会导致每次对 这个值的查询请求都会穿透到数据库,这就是缓存穿透。

 

 缓存击穿(Cache breakdown)
       当缓存的数据过期,同时对过期的数据进行大量请求,这突然导致搜索直接命中数据库,并极大地增加了数据库层的负载。

 

posted @ 2022-12-20 16:26  songguojun  阅读(221)  评论(0编辑  收藏  举报