我有一个Node.js的应用标定瓶坯如下:的Node.js - 与Redis的原子更新
- 从Redis的获取数据上的数据
- 预制棒计算
- 写入新的结果传回的Redis
该过程可能每秒发生几次。我现在面临的问题是我希望运行该进程的多个实例,并且显然看到由于每个节点在另一个获得最后一个值之后进行更新而更新日期被更新。
我怎么会做出上述过程原子?
我无法将操作添加到Redis中的事务中,因为我需要在处理和更新之前获取数据(这将强制进行提交)。
任何人都可以建议吗?
我有一个Node.js的应用标定瓶坯如下:的Node.js - 与Redis的原子更新
该过程可能每秒发生几次。我现在面临的问题是我希望运行该进程的多个实例,并且显然看到由于每个节点在另一个获得最后一个值之后进行更新而更新日期被更新。
我怎么会做出上述过程原子?
我无法将操作添加到Redis中的事务中,因为我需要在处理和更新之前获取数据(这将强制进行提交)。
任何人都可以建议吗?
道歉缺乏明确的与问题。
经过进一步阅读,确实我可以使用事务处理,但是我很难理解的区域是我需要从更新中分离出读取内容,并将更新与使用WATCH一起包装在事务中。这会导致更新事务失败,如果发生了另一个更新。
所以工作流程是:
WATCH key
GET key
MULTI
SET key
EXEC
希望这是任何人都希望一个原子获得和更新有用的。
Redis的支持原子事务http://redis.io/topics/transactions
这或许SO线程是有关您的情况:http://stackoverflow.com/questions/15776955/redis-watch-multi-exec-by-one-client如果没有,请重新改写以更清晰的方式的问题。 –