2011-12-26 61 views
3

我使用node-redis。在這樣的代碼:我是否需要等待在Redis中調用WATCH的回調(在node.js中)?

var store = require('redis').createClient(); 
store.watch('some:key'); 
store.get('some:key', function (err, results) { 
    var multi = store.multi(); 
    // COMPUTE SOMETHING WITH results 
    multi.set('something:or:other', 25); 
    multi.exec(checkAllIsWell); 
}); 

應行1-2讀取

store.watch('some:key', function (err, alwaysok) { 
    store.get('some:key', function (err, result) { 

或將watch總是有立竿見影的效果?

編輯:重新構建一個問題,序列保證在相同的Redis客戶端seqential調用?或者,手錶是否可以在GET之後發生?

回答

2

已經重新定義我的問題,我知道這肯定是序列保留,而我居然重複這個問題:Are Redis updates synchronous?

所以答案當然,我不需要等待WATCH回電,我的原始代碼就可以了。

對不起,噪音的網絡,人們!

1

手錶總是返回OK。 http://redis.io/commands/watch

僅當您以後使用MULTI/EXEC來檢查EXEC返回值時纔有用。

有關的Redis事務的更多信息,請訪問:http://redis.io/topics/transactions

+0

那麼,在'node-redis'中,WATCH總是會以OK(但是_returns_爲true)調用back_。但問題是它是否始終生效並立即以OK返回。 – Grumdrig 2011-12-26 18:37:43

+2

無論您是否等待回調,這些命令的順序都應該相同,這就是最重要的。 – Theo 2011-12-26 18:45:07

+0

謝謝@Theo幫助澄清。 – Grumdrig 2011-12-27 04:01:31

相關問題