一、概念
缓存存在大量失效的时候,引起大量查询数据库
如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都会给数据库,造成了缓存雪崩现象
二、解决方案
- 锁机制/队列串行访问
- 缓存失效时间均匀分布
- 加锁排队:在缓存失效后,通过加锁或者队列来控制数据库写缓存的线程数量。
- 数据预热:通过缓存reload机制,预先更新缓存,在即将发生大并发访问前手动触发加载缓存不同的key,设置不同的过期时间,让缓存失效的时间尽量均匀!!!
缓存存在大量失效的时候,引起大量查询数据库
如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都会给数据库,造成了缓存雪崩现象
- 加锁排队:在缓存失效后,通过加锁或者队列来控制数据库写缓存的线程数量。
- 数据预热:通过缓存reload机制,预先更新缓存,在即将发生大并发访问前手动触发加载缓存不同的key,设置不同的过期时间,让缓存失效的时间尽量均匀!!!