Redis缓存的穿透击穿和雪崩

缓存穿透

缓存穿透是指缓存和数据库中都没有的数据,并且被大量访问,导致请求无法建立缓存的key,使得请求直接访问到DB,对DB造成很大压力。

想要解决这种场次可以针对当前key做一个null相关缓存,或者可以使用布隆过滤器(Bloom Filter)建立大量对缓存数据到过滤器中,使用过滤器拦截穿透对key。

缓存击穿

缓存击穿是指在某个时间段,某个热点key缓存失效,导致大量访问请求到DB。

这种场景下我们可以对热点key进行预热,即在高峰期未来临时,延长key对有效期。还可以使用定时任务自动延长key对有效期,让key在一定时间范围内不会过期。

缓存雪崩

缓存雪崩就是大量对热点key同时产生了过期,实际就是产生了多个缓存击穿对场景。

面对多个key都会过期对场景,可以采取随机过期时间的设置,即在某个时间点上不会产生多个key过期,然后使用其他方式延长key的有效期。还可以对热点key进行预热,降低缓存雪崩发生的概率。

你可能感兴趣的:(Redis缓存的穿透击穿和雪崩)