Redis-问题-缓存雪崩
1,问题描述
1)数据库压力变大 服务器崩溃
2)
2,造成原因
在极少的时间内,查询大量key集中过期情况
3,解决方案
1)构建多级缓存框架:nginx缓存+redis缓存+其他缓存(ehcache等)。
2)使用锁或者队列:
用加锁或者队列的方式来保证不会有大量的线程对数据库一次性进行读写,从而避免失效时大量的并发请求落到底层储存系统上,不使用高并发情况。
3)设置过期标志更新缓存:
记录缓存数据是否过期(设置提前量),如果过期会触发通知另外的线程在后台去更新实际key的缓存
4)将缓存失效时间分散开:
比如我们可以在原有的失效时间的基础上加一个随机值,比如1-5分钟随机值,这个每一个缓存的过期时间的重复率就会降低,就很难引发集体失效的事件。
浙公网安备 33010602011771号