背景:比如我们有三个系统服务,然后由于某个数据从来没请求过,现在三个系统并发对该数据进行请求和修改的时候就会出现并发竞争问题了,当然由于redis的单线程结构其实这里不存在锁和阻塞问题,这里的问题是可能出现老数据覆盖新数据的问题。
解决方案:
![](https://img.haomeiwen.com/i17502375/73014e5f2ece3bff.png)
只有成功获取锁的系统可以进行修改并且要带上数据的版本号,我们要做cas和自旋(自行参考aotomicinteger修改数据方法的源码(compareAndSwap
))只有到了这个版本号才进行修改
背景:比如我们有三个系统服务,然后由于某个数据从来没请求过,现在三个系统并发对该数据进行请求和修改的时候就会出现并发竞争问题了,当然由于redis的单线程结构其实这里不存在锁和阻塞问题,这里的问题是可能出现老数据覆盖新数据的问题。
解决方案:
只有成功获取锁的系统可以进行修改并且要带上数据的版本号,我们要做cas和自旋(自行参考aotomicinteger修改数据方法的源码(compareAndSwap
))只有到了这个版本号才进行修改
本文标题:redis的并发竞争问题
本文链接:https://www.haomeiwen.com/subject/kuhgwltx.html
网友评论