341 字
2 分钟
Redis缓存击穿缓存穿透缓存雪崩

缓存击穿#

缓存击穿说的是,某个热点数据在缓存中失效,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。

解决方案#

  • 分布式锁: 在获取缓存的时候,使用分布式锁,保证只有一个请求获取到缓存。这样的话,就不会因为热点数据过期失效,而让请求都打到数据库里了。
  • 热点数据永不过期

缓存穿透#

缓存穿透说的是,某个热点数据在缓存中不存在,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。

解决方案#

  • 使用布隆过滤器,布隆过滤器对于不存在的数据是能100%判断的,所以用布隆过滤器能过滤掉不存在的请求。
  • 对查询的空结果进行缓存,第二次访问直接返回空值。

缓存雪崩#

多个缓存数据在同一时刻过期,导致大量请求同时访问数据库,导致数据库崩溃。

解决方案#

  • 采用随机时间过期策略,避免多个数据同时过期。
  • 使用双缓存策略,把数据存储在两层缓存里面,减少数据库的直接请求。