我有一個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如果沒有,請重新改寫以更清晰的方式的問題。 –