使用Node.js监听Redis上的关键事件

时间:2012-01-21 15:48:52

标签: events node.js redis publish-subscribe

我需要知道何时在Redis商店的特定键上写入数据 有没有办法使用Node.js监听Redis键事件,还是必须使用pub / sub实用程序?
在第二种情况下,最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

  

有没有办法使用Node.js监听Redis关键事件,还是我   必须使用pub / sub实用程序吗?

据我所知,虽然还有其他key change notifications yet包含基于发布/订阅的解决方案,但redis本身并不支持alternatives

答案 1 :(得分:1)

如果您不想使用pubsub,那么Redis的阻止操作(BLPOP,BRPOP,BRPOPLPUSH)有很多创造性解决方案的机会。您可以在服务器中专用Redis连接,直到将新项目添加到列表中,并在存储密钥后立即添加到所述列表(在多个exec中!)。因此,泛型可能看起来像这样(您可以使用两个不同的终端来模拟两个不同的连接):

连接1(连接将在此之后挂起):

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:

1) "myfunkeys"
2) "somekey:foo"
(67.51s)