341 字
2 分钟
Redis缓存击穿缓存穿透缓存雪崩
缓存击穿
缓存击穿说的是,某个热点数据在缓存中失效,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。
解决方案
- 分布式锁: 在获取缓存的时候,使用分布式锁,保证只有一个请求获取到缓存。这样的话,就不会因为热点数据过期失效,而让请求都打到数据库里了。
- 热点数据永不过期
缓存穿透
缓存穿透说的是,某个热点数据在缓存中不存在,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。
解决方案
- 使用布隆过滤器,布隆过滤器对于不存在的数据是能100%判断的,所以用布隆过滤器能过滤掉不存在的请求。
- 对查询的空结果进行缓存,第二次访问直接返回空值。
缓存雪崩
多个缓存数据在同一时刻过期,导致大量请求同时访问数据库,导致数据库崩溃。
解决方案
- 采用随机时间过期策略,避免多个数据同时过期。
- 使用双缓存策略,把数据存储在两层缓存里面,减少数据库的直接请求。