redis缓存的击穿、穿透、雪崩

击穿:是指一个热点key,被高并发的请求下,在这个key失效的瞬间,持续的高并发,直接请求数据库。

  解决方案:1、热点key设置永不过期,异步更新。

       2、更新热点key是加锁。

       3、接口限流,熔断,降级。

穿透:是指缓存数据库不存在,数据库也不存在的数据(id < 0)。当这种情况被大量或恶意攻击时,访问全部透过redis访问数据库,而数据库也没有这个数据。

  解决方案:1、做鉴权校验,参数检验,非法值直接返回。

       2、将数据存到缓存数据库,请求过来直接返回。

       3、使用布隆过滤器。

雪崩:是指同一时刻大量key失效,导致大量请求到数据库上。

  解决方案:1、设置数据库过期时间随机,避免大批量数据同时过期。

 

posted @ 2020-08-25 18:11  Dzsom  阅读(140)  评论(0)    收藏  举报