Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis(Redis py)可以处理多少通道?_Redis_Redis Py - Fatal编程技术网

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

Redis(Redis py)可以处理多少通道?,redis,redis-py,Redis,Redis Py,我的任务是为大量听众使用pub/sub。以下是订阅的简化示例: r=redis.StrictRedis(…) p=r.pubsub() p、 订阅(‘我的第一频道’、‘我的第二频道’、…) 对于p.listen()中的消息: ... # 对这个消息做点什么 假设我将为一个频道订阅一个客户端client-#id。每个客户端一个通道。问题是:如果我有成百上千的用户,使用这种方法可以吗?我是否应该为一个频道订阅所有内容,并在消息中编码user-#id,以便在接收时进行过滤?这取决于您如何配置

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

r=redis.StrictRedis(…)
p=r.pubsub()
p、 订阅(‘我的第一频道’、‘我的第二频道’、…)
对于p.listen()中的消息:
...     # 对这个消息做点什么

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

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