缓存穿透 缓存穿透的概念 每一次查询的 key 都不在 redis 中,数据库中也没有。 一般都是属于非法的请求,比如 id<=0,比如可以在 API 入口做一些参数校验。 大量访问不存在的 key,严重影响系统的性能,系统直接退化成了单数据库的结构。 两种解决方案: 第一种 查询不存在的数据时,第一次查 db,没有查到结果直接返回 value 为 null,将这个 key 记录到 redis 中去。 使用空对象解决缓存击穿,但是如果数据库中新增了该空对象,也就是不是空对象了,这个时候怎么办呢? 1.value 为 null 的 key 设定一个过期时间比如 30s,如果这个请求在过期...