<aside>
💡 缓存穿透一般使用缓存空对象和布隆过滤器两种方法
</aside>
<aside>
💡 防止缓存雪崩的主要由集群防止服务不可用,针对过期时间尽量离散
</aside>
<aside> 💡 常问如何保证数据库和缓存的双写一致性?
</aside>
缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。举个例子:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库。
最基本的就是首先做好参数校验,一些不合法的参数请求直接抛出异常信息返回给客户端。比如查询的数据库 id 不能小于 0、传入的邮箱格式不对的时候直接返回错误消息给客户端等等。