redis pub/sub 模型是否需要持久连接到 redis?
在 Web 应用程序中,如果我需要将事件写入队列,我将连接到 Redis 来写入事件。
现在,如果我想要另一个后端进程(例如守护进程或 cron 作业)来处理或响应 redis 中的事件发布,我是否需要持久连接?
对于这个发布/订阅流程在 Web 应用程序中的工作原理不太困惑。
In a web application, if I need to write an event to a queue, I would make a connection to redis to write the event.
Now if I want another backend process (say a daemon or cron job) to process the or react the the publishing of the event in redis, do I need a persistant connection?
Little confused on how this pub/sub process works in a web application.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
基本上,Redis 有两种不同的消息传递模型:
我希望这一点很清楚。我建议您学习以下命令以了解有关 Redis 和消息传递语义的更多信息:
有关此命令的文档可在 redis.io 上找到
Basically in Redis there are two different messaging models:
I hope this is clear. I suggest you studying the following commands to understand more about Redis and messaging semantics:
Doc for this commands is available at redis.io
我不完全确定,但我相信,是的,发布/订阅需要持久连接。
作为替代方案,我会看看 resque 以及它是如何处理的。它不使用 pub/sub,而是简单地将一个项目添加到 redis 中的列表中,然后您拥有的任何守护程序或 cron 作业都可以使用 lpop 命令来获取第一个项目。
抱歉只给出一个伪答案然后一个插头。
I'm not totally sure, but I believe that yes, pub/sub requires a persistent connection.
For an alternative I would take a peek at resque and how it handles that. Instead of using pub/sub it simply adds an item to a list in redis, and then whatever daemon or cron job you have can use the lpop command to get the first one.
Sorry for only giving a pseudo answer and then a plug.