Redis(redis-py)可以处理多少个通道?

时间:2017-05-04 20:10:16

标签: redis redis-py

我有一个使用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进行编码以过滤收听?

1 个答案:

答案 0 :(得分:1)

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