redis 缓存穿透:
定义:查询的key在redis中不存在时且id在数据库中也不存在时,此时被非法请求进行攻击,导致大量请求数据库可能会造成宕机,这种现象称之为缓存穿透。
解决办法:
- 往redis中存入对应key的空值并设置过期时间往redis缓存中存入一个空值并设置过期时间,这样就能避免缓存穿透。
- 使用布隆过滤器。
缓存雪崩:
定义:redis中大量的key在同一时间内过期,导致大量请求数据库可能发生宕机事件,这种现象称为缓存雪崩。
解决办法:
- 设置永不过期。
- 过期时间错开。
- 多种缓存结合使用。