2

我的任务是为大量听众使用 pub/sub。这是从docs订阅的简化示例:

r = redis.StrictRedis(...)
p = r.pubsub()
p.subscribe('my-first-channel', 'my-second-channel', ...)

for message in p.listen():
...     # do something with the message

假设我将为一个客户订阅一个频道client-#id。每个客户一个频道。问题是:如果我有成百上千的用户,可以使用这种方法吗?我应该为一个频道订阅所有这些频道并user-#id在消息中编码以过滤接收吗?

4

1 回答 1

1

这取决于您如何配置 Redis 以及您将产生的流量。客户端订阅只是一个网络连接,因此您可以拥有其中不少。Redis 非常强大,即使在相对较弱的 CPU 内核上也很容易使服务器的 NIC 饱和,因此如果所有 100K 的客户端一直在通信,这可能是一个瓶颈。在这种情况下,您需要部署一个 Redis 集群来横向扩展并处理负载。

于 2017-05-07T12:54:35.897 回答