建设通网站上的业绩能否有用,商业网站地方频道,虚拟产品网站,网站汉英结合的怎么做【Redis】什么是缓存雪崩#xff0c;如何预防缓存雪崩#xff1f;
如果缓存集中在一段时间内失效#xff0c;也就是通常所说的热点数据集中失效 #xff08;一般都会给缓存设定一个失效时间#xff0c;过了失效时间后#xff0c;该数据库会被缓存直接删除#xff0c;从…【Redis】什么是缓存雪崩如何预防缓存雪崩
如果缓存集中在一段时间内失效也就是通常所说的热点数据集中失效 一般都会给缓存设定一个失效时间过了失效时间后该数据库会被缓存直接删除从而一定程度上保证数据的实时性发生大量的缓存穿透造成大量的查询要查询数据库这就造成了缓存雪崩可能会导致数据库崩溃。
如果缓存中间件宕机当然可以对缓存中间件做高可用集群来避免。
下面推荐几个缓存雪崩的解决办法
在缓存失效后通过加锁或者队列来控制读数据库重建缓存的线程数量。例如同一时刻只允许一个线程查询数据和重建缓存其他重建缓存的线程此时在等待状态。可以通过缓存reload机制预先去更新缓存在即将发生大并发访问前手动触发加载缓存。不同的 Key设置不同的过期时间让缓存失效的时间点尽量均匀。例如可以在原有的失效时间基础上增加一个随机值如1~5min 随机这样每一个缓存的过期时间的重复率就会降低就会大大降低缓存集体失效的概率。做二级缓存或者双缓存策略。A1 为原始缓存A2 为备份缓存A1失效时可以访问 A2A1缓存失效时间设置为短期A2 设置为长期。