【问题标题】:Redis / Node wait for key to existRedis / Node等待密钥存在
【发布时间】:2017-03-18 19:13:35
【问题描述】:

是否可以等待 Redis 中存在密钥?在后台运行一个引擎来处理繁重的工作。这个想法是让其余的 api 向 Redis 发送请求,然后引擎从该列表中读取。然后其余的 api 将监视一个特定的密钥,该密钥最终将包含发送给客户端的响应。

这可能吗? - 当我做自己的研究时,我不断提出 BLPOP,但这是一个列表,而不是 Redis 中的特定键。

有没有更好的方法来做到这一点?

【问题讨论】:

  • 听上去是想用redis的pub/sub部分通知其余apikey已经添加。
  • @david 我知道 pub/sub 以前使用过它,但实际上你在阅读了你的评论后给了我一个好主意:) 非常感谢

标签: node.js redis


【解决方案1】:

您可以使用Redis Keyspace Notification 功能来实现目标。

使用此功能,当有人创建/设置给定密钥时,Redis 会向特定通道发布消息。为了等待给定的key存在,你只需要订阅这个特定的频道,然后等待通知。

// Enable keyspace notification:
config set notify-keyspace-events g$K
// subscribe the specific channel: __keyspace@<db_num>__:<key_name>
subscribe '__keyspace@0__:key'

当有人设置密钥时,您会收到以下通知:

1) "message"
2) "__keyspace@0__:key"
3) "set"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2020-07-15
    相关资源
    最近更新 更多