341 字
2 分钟
Redis缓存击穿缓存穿透缓存雪崩
缓存击穿说的是,某个热点数据在缓存中失效,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。
57%
全部章节
- 1 什么是Redis
- 2 Redis有哪些数据类型
- 3 Redisson延时队列架构
- 4 redis配置json序列化
- 5 为什么Redis设计为单线程而后面版本为啥又引入多线程呢
- 6 Redis为什么快
- 7 Redis中常见的数据类型有哪些
- 8 Redis的Hash是什么
- 9 Redis跳表
- 10 RedisZset实现原理
- 11 缓存与数据库一致性问题
- 12 Redis缓存击穿缓存穿透缓存雪崩 阅读中
- 13 RedisString底层
- 14 Redis单点故障问题
- 15 Redis如何实现分布式锁
- 16 Redis实现分布式锁的时候可能遇到的问题有哪些
- 17 Redis大Key问题
- 18 如何解决Redis中热点key的问题
- 19 Redis持久化机制
- 20 Redis数据过期后的删除策略
- 21 Redis主从复制的实现原理是什么
缓存击穿
缓存击穿说的是,某个热点数据在缓存中失效,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。
解决方案
- 分布式锁: 在获取缓存的时候,使用分布式锁,保证只有一个请求获取到缓存。这样的话,就不会因为热点数据过期失效,而让请求都打到数据库里了。
- 热点数据永不过期
缓存穿透
缓存穿透说的是,某个热点数据在缓存中不存在,导致大量请求打到数据库。这时候由于瞬间的高并发,可能导致数据库崩溃。
解决方案
- 使用布隆过滤器,布隆过滤器对于不存在的数据是能100%判断的,所以用布隆过滤器能过滤掉不存在的请求。
- 对查询的空结果进行缓存,第二次访问直接返回空值。
缓存雪崩
多个缓存数据在同一时刻过期,导致大量请求同时访问数据库,导致数据库崩溃。
解决方案
- 采用随机时间过期策略,避免多个数据同时过期。
- 使用双缓存策略,把数据存储在两层缓存里面,减少数据库的直接请求。
发现错误或想要改进这篇文章?
在 GitHub 上编辑此页 Redis缓存击穿缓存穿透缓存雪崩