gpt4 book ai didi

javascript - Redis 自动发布新条目

转载 作者:IT王子 更新时间:2023-10-29 06:01:07 24 4
gpt4 key购买 nike

我有一个网络服务,它非常频繁地向 Redis 服务器写入新条目,并且我有一个将与 Redis 服务器交互的 NodeJS 应用程序。我意识到我可能会问一个过去以多种形式被问到的问题,但我不得不问,以免我花更多时间在圈子里寻找答案,但是'我的 NodeJS 应用程序服务器有没有办法自动收到新条目?';类似于 RSS 提要如何自动接收新文章。

我知道 Redis 有一个发布/订阅范例,但我难以理解的是“Redis 能否在收到新条目时自动发布它们?”此外,Redis 是否可以在收到特定键时自动发布新条目?

最佳答案

有 node.js 的 redis 客户端。找到一个实现完整协议(protocol)的协议(protocol),包括 subscribe

订阅(或模式的 psubscribe)使用 key 来指定连接 channel 。因此,例如(使用 https://github.com/mranney/node_redis )

connection.on("message", function (channel, message) {
if (channel == "myInterestingChannel") {
console.log(message);
} else if (channel == "anotherChannel") {
console.warn(message);
}
}

connection.subscribe("myInterestingChannel");
connection.subscribe("anotherChannel");

然后,当您希望您的 node.js 代码了解其中一个 channel 中的某些内容时,只需发布​​一条消息即可。例如在 python 的 redis 客户端中:

connection.publish("myInterestingChannel", "poop goes in the potty");

在您的问题中,您问“此外,Redis 是否可以在收到特定 key 时自动发布新条目?”

如果您将它们发布到正在订阅的 channel 上,则可以。但是,它不能在您执行类似操作时自动发布

connection.set("myInterestingChannel", "some other message")

相反,如果您想存储它,并让您的 Node 应用程序知道,您可以最轻松地执行以下操作:

msg = "some other message"
connection.set("some key", msg)
connection.publish("myInterestingChannel", msg)

关于javascript - Redis 自动发布新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14153179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com