【问题标题】:Using Node.js to listen to key events on Redis使用 Node.js 监听 Redis 上的关键事件
【发布时间】:2012-01-21 15:48:52
【问题描述】:

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

【问题讨论】:

    标签: events node.js redis publish-subscribe


    【解决方案1】:

    有没有办法使用 Node.js 来监听 Redis 的关键事件,或者我可以 必须使用 pub/sub 实用程序?

    据我所知,redis 本身并不支持 key change notifications yet,尽管还有其他 alternatives 包括基于 pub/sub 的解决方案。

    【讨论】:

      【解决方案2】:

      如果您不想使用 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)
      

      【讨论】:

        猜你喜欢
        • 2015-10-15
        • 1970-01-01
        • 2020-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-19
        • 1970-01-01
        相关资源
        最近更新 更多