【发布时间】:2012-01-21 15:48:52
【问题描述】:
我需要知道数据何时写入 Redis 存储的特定键。
有什么方法可以使用 Node.js 监听 Redis 关键事件,还是必须使用 pub/sub 实用程序?
在第二种情况下,最好的方法是什么?
【问题讨论】:
标签: events node.js redis publish-subscribe
我需要知道数据何时写入 Redis 存储的特定键。
有什么方法可以使用 Node.js 监听 Redis 关键事件,还是必须使用 pub/sub 实用程序?
在第二种情况下,最好的方法是什么?
【问题讨论】:
标签: events node.js redis publish-subscribe
有没有办法使用 Node.js 来监听 Redis 的关键事件,或者我可以 必须使用 pub/sub 实用程序?
据我所知,redis 本身并不支持 key change notifications yet,尽管还有其他 alternatives 包括基于 pub/sub 的解决方案。
【讨论】:
如果您不想使用 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)
【讨论】: