Нужно ли ждать обратного вызова при вызове WATCH в Redis (в node.js)? - PullRequest
3 голосов
/ 26 декабря 2011

Я использую node-redis. В коде так:

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? Или ЧАСЫ могут случиться после ПОЛУЧИТЬ?

Ответы [ 2 ]

2 голосов
/ 26 декабря 2011

Перефразировав мой вопрос, я понимаю, что он обязательно должен сохранять последовательность, и я фактически дублирую этот вопрос: Синхронизированы ли обновления Redis?

Так что ответ, несомненно, заключается в том, что мне не нужно ждать, пока WATCH перезвонит, и мой оригинальный код в порядке.

Прошу прощения за шум в сети, ребята!

1 голос
/ 26 декабря 2011

Часы всегда возвращаются в порядке. http://redis.io/commands/watch

Это полезно, только если позже вы используете MULTI / EXEC, чтобы проверить возвращаемое значение EXEC.

Для получения дополнительной информации о транзакциях Redis посетите http://redis.io/topics/transactions

...