社区
高性能WEB开发
帖子详情
redis如何实现原子性-LPOPRPUSH
学无止境-逆流而上
2016-09-20 10:02:48
有个高并发场景:2台机,在redis处共享一个list,来做先进先出队列,实现数据平均分配。但是Java redis并没有lpop+rpush结合在一起的原子操作,我如果将lpop+rpush加锁的话,又满足不了高并发;不加的话,会导致数据脏,丢失等问题。
比如redis维护队列:1,2,3,4
我希望高并发原子实现:(不加锁)
1出来的同时,排到队尾2,3,4,1
大家有啥意见?
...全文
5934
2
打赏
收藏
redis如何实现原子性-LPOPRPUSH
有个高并发场景:2台机,在redis处共享一个list,来做先进先出队列,实现数据平均分配。但是Java redis并没有lpop+rpush结合在一起的原子操作,我如果将lpop+rpush加锁的话,又满足不了高并发;不加的话,会导致数据脏,丢失等问题。 比如redis维护队列:1,2,3,4 我希望高并发原子实现:(不加锁) 1出来的同时,排到队尾2,3,4,1 大家有啥意见?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ps45221
2016-09-21
打赏
举报
回复
你既不想加锁,又想要原子操作。。。 用java代码层面的话,效率会慢点。 你可以尝试把这两个操作用Lua脚本写,redis是可以原子性执行Lua脚本的 或者,你自己在redis维护一个事务锁
学无止境-逆流而上
2016-09-20
打赏
举报
回复
目前打算扭转一下思维,用rpoplpush(redis有这个原子操作)来做逆向,然后插入元素时lpush,弹出元素时rpop。原来redis不提供 lpoprpush是OK的。
HEX / RGB 颜色转换工具
颜色转换工具
组合式专用铣齿机床设计(论文 CAD图纸).rar
组合式专用铣齿机床设计(论文 CAD图纸).rar
AI Challenger 2018 阅读理解赛道代码分享.zip
一款 AI 辅助阅读器,三栏设计
实现
笔记、阅读、对话同屏交互,让深度阅读更高效
易语言源码多任务同时下载源码
易语言源码多任务同时下载源码
Artix-7-XC7A35T-DDR3开发板硬件参考设计资料
源码下载地址: https://pan.quark.cn/s/3a6709c3f9be This is a TPYboard You can get started right away by writing your Python code in 'main.py'. For a serial prompt: - Windows: you need to go to 'Device manager', right click on the unknown device, then update the driver software, using the 'tpybcdc.inf' file found on this drive. Then use a terminal program like Hyperterminal or putty. - Mac OS X: use the command: screen /dev/tty.usbmodem* - Linux: use the command: screen /dev/ttyACM0 Please visit http://www.tpyboard.com/help/ for further help. Designed by TurnipSmart in Shandong!
高性能WEB开发
25,980
社区成员
4,366
社区内容
发帖
与我相关
我的任务
高性能WEB开发
高性能WEB开发
复制链接
扫一扫
分享
社区描述
高性能WEB开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章