本文地址:http://www.xiaoqiaomen.com/article/detail/3065.html
1. 控制失效时间,避免同时失效。比如写入时,过期时间在一个范围内随机
---当然了,这样避免不了redis down机所造成的同时失效(避免down机又是怎么高可用的问题了)
或者对redis缓存做集群部署,对于热点数据,在每个服务器设置不同的过期时间
2. 常规的缓存更新,可以加锁。
简单来说,就是当读取缓存失败需要去db读取时,通过加锁保证只有一个请求去db进行读取和更新,其它的请求可以直接返回或等待。
--这种加锁,解决的是某个key失效后,大量请求都同时读取该key的情况(比如全局的计数之类)。如果是上面提到的donw机的场景,那已经是一场”雪崩“了,就要根椐实际场景来操作了。。。
所以,如果是预案,既然是缓存,就要想尽办法,避免整体失效(因为一旦整体失效,而db又无法承受大量请求的话,则只能是降级服务了)
免责声明:本文章注明的文章来源于网络、自媒体综合提供的内容均源自网络、自媒体,版权归原作者所有,转载请联系原作者并获许可,文章观点仅代表作者本人,不代表本网站立场,如对本文内容有异议,请联系网站底部客服邮箱申请撤稿,我们会核实后处理。