redis缓存的击穿、穿透、雪崩
击穿:是指一个热点key,被高并发的请求下,在这个key失效的瞬间,持续的高并发,直接请求数据库。
解决方案:1、热点key设置永不过期,异步更新。
2、更新热点key是加锁。
3、接口限流,熔断,降级。
穿透:是指缓存数据库不存在,数据库也不存在的数据(id < 0)。当这种情况被大量或恶意攻击时,访问全部透过redis访问数据库,而数据库也没有这个数据。
解决方案:1、做鉴权校验,参数检验,非法值直接返回。
2、将数据存到缓存数据库,请求过来直接返回。
3、使用布隆过滤器。
雪崩:是指同一时刻大量key失效,导致大量请求到数据库上。
解决方案:1、设置数据库过期时间随机,避免大批量数据同时过期。
一个满怀梦想的无知骚年!

浙公网安备 33010602011771号