缓存穿透

查询一个不存在的值时,在缓存系统内未命中,导致请求直接落到持久层数据库上。

 

缓存击穿

查询某一项数据(如在 redis 查询某一个key),但是这个时候缓存正好过期了,缓存没有命中,导致请求直接落到持久层数据库上。如活动系统里面查询活动信息,但是在活动进行过程中活动缓存突然过期了。

 

缓存雪崩

在高并发下,大批量的缓存key在同一时间失效,导致大量的请求落到数据库上,导致数据库宕机。

因此,雪崩是产生直接的实质的损失

 

常见解决方案

  • 直接缓存NULL值
  • 限流
  • 缓存预热
  • 分级缓存
  • 缓存永远不过期