1、缓存穿透 风险 利用不存在的数据进行攻击,数据库瞬时压力增大,最终导致崩溃。 解决 null 结果缓存,并加入短暂过期时间。 2、缓存雪崩 风险 所有的 key 采用相同的过期时间,导致某一时刻同时失效,压力转移到 DB,DB 瞬时压力过重雪崩。 解决 原有失效时间基础上增加一个随机值 3、缓存击穿 风险 某个热点 key 在大量请求进来前正好失效,所有请求都落到 DB 解决 加锁