浅谈缓存雪崩、缓存穿透、缓存击穿的之间的区别及解决方案
一、缓存雪崩
概念:当缓存服务器重启或者大量缓存集中在某一时间段失效,这样在失效的时候,所有请求会得不到数据,会去数据库查询,查询数据量巨大,导致系统崩溃
解决方案:
(1)在缓存失效后,通过加锁或者队列控制读数据库写缓存的线程数量。比如对其中某个key只允许一个线程查询数据,让其他线程等待。
(2)不同的key,设置不同的过期时间,让缓存失效的时间点不要集中在一起。
二、缓存穿透
概念:缓存和数据库中都没有的数据,而用户不断地发起请求,并且请求量很大,造成数据库很大的压力。
解决方案:
(1)将查询结果为





