缓存穿透:
缓存穿透是指查询一个一定不存在的数据,会访问数据库,流量大的时候,数据库会挂掉。解决方案:1.布隆过滤器。2.结果不存在是,返回一个空值,设置缓存时间为几分钟。
缓存雪崩:
缓存在某一时刻,全部大量失效,导致查询全部来到了数据库,从而导致数据库在大量查询的情况下崩溃。
解决方案:可以在失效时间上采用一个随机值来设置失效时间。
缓存击穿:
缓存在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这样大量的请求就落到了数据库上。从而导致数据库崩溃。解决方案:采用互斥锁的形式,让其他线程等待一定时间再去查询数据库,从而避免大量查询数据库。
文章内容来自网络。