Redis缓存雪崩 缓存穿透 缓存击穿

缓存雪崩

当我们用户查询数据去redis查询没有时,就会去数据库中查找,但是数据库中也没有,缓存就没有命中。这时候当用户很多的时候,都发生了这种情况,就会导致数据库压力很大,就导致了缓存穿透。

 

解决办法:1.布隆过滤器,对用户所传过来的参数在控制层先进行校验,不符合则丢弃。

       2.缓存空对象,对于空的对象会给它在redis也建立个空值的缓存(不推荐)。


缓存穿透

就好比微博热搜,大规模大并发的集中对一个点进行查询,就有可能导致缓存击穿,直接访问数据库。

 

解决办法:1.设置热点数据永不过期。

      2.加互斥锁,也叫分布式锁。


缓存击穿 

其实就是好比双十二节日,某波商品被集中放入了缓存,假设这批缓存过期时间为一小时,当一小时过后,这批缓存就会集体失效,而当缓存失效后,就会有大批查询数据直击数据库,就可能会导致缓存雪崩,数据库直接崩溃。

 

解决办法:1.redis挂掉不可怕,可怕的是数据库,所以多建立几个redis节点。

      2.限流降级。

      3.数据预热。

posted @ 2022-02-25 08:37  RFAA  阅读(25)  评论(0编辑  收藏  举报