2012-01-21 2 views
4

Мне нужно знать, когда данные записываются на определенные ключи в хранилище Redis.
Есть ли способ прослушать события Redis, используя Node.js, или мне нужно использовать pub/sub utilities?
Во втором случае, какой был бы лучший способ сделать это?Использование Node.js для прослушивания ключевых событий в Redis

ответ

2

Есть ли способ прослушать события Redis, используя Node.js, или я должен использовать паб/вспомогательные утилиты?

Насколько я знаю Redis себя изначально не поддерживает key change notifications yet хотя есть и другие alternatives включая решение паб/к югу основе.

+0

Спасибо за информацию –

1

Если вы не хотите использовать pubsub, существует множество возможностей для творческих решений с блокировками Redis (BLPOP, BRPOP, BRPOPLPUSH). Вы можете назначить соединение Redis на своем сервере, чтобы заблокировать, пока новый элемент не будет добавлен в список, и фактически добавьте в указанный список сразу после сохранения ключа (в мульти-exec!). Так, кое-что общее может выглядеть следующим образом (вы можете использовать два различных терминалов для моделирования двух различных соединений):

Connection 1 (connetion будет просто болтаться после этого):

BRPOP myfunkeys 0 

Подключение 2:

redis 127.0.0.1:6379> multi 
OK 
redis 127.0.0.1:6379> set somekey "foo" 
QUEUED 
redis 127.0.0.1:6379> rpush myfunkeys "somekey:foo" 
QUEUED 
redis 127.0.0.1:6379> exec 
1) OK 
2) (integer) 1 
redis 127.0.0.1:6379> 

Назад к соединению 1 после вас EXEC:

1) "myfunkeys" 
2) "somekey:foo" 
(67.51s) 
Смежные вопросы