用于单个接收者的 Redis 发布/订阅

问题描述 投票:0回答:2

我是一名

RabbitMQ
用户,正在探索
Redis
,并且有两个关于发布/订阅机制的问题

  1. 我可以向系统发布消息,让每个客户端(消费者)删除其他客户端的条目吗?我想发布 100 个任务,但每个任务只能由 1 个订阅者处理。

  2. AFAIK,默认情况下,所有消息始终广播/发布给所有客户端。如果一个客户端需要 1 秒来处理消息,而另一个客户端需要 1 分钟,该怎么办?这里的限制是什么?某些消息会在某个时候被丢弃吗?

非常感谢!

python redis rabbitmq
2个回答
5
投票

1)这不是发布/订阅的工作原理。 Publish 不关心也不知道是否被接收,它只是发布一条消息。每个订阅的订阅者都会收到它,你无法阻止它

2)由您来处理客户端逻辑。

从听起来来看,redis pub/sub 可能不是您正在寻找的系统/模式。您应该特别研究

zeromq
push
pull
套接字,它们不是发布消息,而是一次将消息推送到特定套接字。如果您阅读了入门文档,其中解释了许多模式,并且某些模式适用于您的特定情况。


0
投票

您可以使用 Redis 列表在消费者中弹出数据。

https://redis.io/docs/data-types/lists/

© www.soinside.com 2019 - 2024. All rights reserved.