| 缓存雪崩 | 缓存击穿 | 缓存穿透 | |
|---|---|---|---|
| 问题 |
1.大量缓存同一时期失效或Redis 宕机 2.大量用户请求这些缓存 |
1.某个缓存失效 2.大量用户请求这个缓存 |
1.Redis 和数据库都没有要访问的数据 2.大量用户请求这个缓存 |
| 影响 | 1.大量请求直接访问数据库 | 1.大量请求直接访问数据库 | 1.大量请求直接访问数据库 |
| 解决 |
1.设置不同过期时间 2.互斥锁 |
1.不设置过期时间或后台提前更新 2.互斥锁 |
1.设置默认值 2.参数校验 |
互斥锁:
保证同一时间内只有一个请求来构建缓存( 从数据库读取数据,再将数据更新到 Redis 里),当缓存构建完成后,再释放锁。未能获取互斥锁的请求,要么等待锁释放后重新读取缓存,要么就返回空值或者默认值。
Redis缓存雪崩、击穿、穿透解决方案
1699

被折叠的 条评论
为什么被折叠?



