redis作为缓存使用 穿透 查询的数据在缓存和数据库中都不存在 解决 布隆过滤器 设置缓存key值为null并设置过期时间 对请求参数做校验 击穿 查询的数据在缓存中不存在(缓存失效),数据库中存在 解决 设置key永不过期 使用互斥锁 雪崩 同一时间大量缓存key失效,请求打到数据库,导致缓存在某一时刻同时失效,请求全部转发到DB,DB瞬时压力 解决 分散key过期时间,过期时间加上随机值,避免同一时间失效 设置key永不过期