缓存穿透,缓存击穿,缓存雪崩是我们在应用缓存时最常碰到的问题,也是面试的热点考点。究竟什么是缓存穿透,缓存击穿,缓存雪崩,如何解决,本文会进行详细的剖析。
缓存穿透
什么是缓存穿透,我们通过一个例子来说明:
现在有这样一个需求需要根据文章id来查询文章信息,正常流程是先在Redis缓存中查找,如果找到了直接返回,找不到则到mysql数据库中查找,此时有两种情况:
1.数据库中查找到了将数据库中查找到的文章信息放入Redis缓存之后返回。
2.数据库中也没有查找到,这种情况下,每次查询该id的文章都会绕过Redis缓存直接到mysql数据库中查询,如果在短时间内发起大量查询可能导致数据库崩溃,这就是缓存穿透。