PUB/SUB Redis 可以支持多少通道?

How many channels can Redis support for PUB/SUB?

我刚开始使用 Redis,我想了解它是如何工作的,所以如果我要说的不正确,我深表歉意。

我想构建一个实时系统,其中 Python 应用程序(我们称之为数据收集器)从大约 600 个市场检索股票市场交易。这些交易应该发送到 Django 应用程序并实时显示在前端,所以我会 Python 检索交易 > Django 接收它们并将它们发送到页面。

基本上我会使用 Redis 作为消息代理,它是一个 PUB/SUB 系统。所以数据收集器总是 运行,它检索交易并将它们发送到通道;每个市场(600+)都有一个渠道。在 Django 端,一旦用户打开市场 XYZ 的页面,Django 将连接到市场 XYZ 的 Redis 通道并获取该通道的交易。请记住,none 个数据需要存储,它只需要显示在我的前端。

从理论上讲,该系统应该可以工作,唯一让我怀疑的是在这种情况下有大量频道。 Redis 会支持大量通道吗?或者它不取决于我创建了多少频道?我应该寻找另一种方法吗?

这完全取决于您的服务器配置。

通道数的一部分还有其他需要考虑的事情,例如通过客户端浏览器的并发套接字连接数。

您可以参考下面的link来详细了解pub/sub的工作原理

here

如前所述:Redis pub sub max subscribers and publishers

Redis 对最大通道数没有硬性限制;它是用户可配置的。

为了找到满足您的实时要求的最大通道数,您需要执行延迟分析并就[通道数与通道数达成一致你想要的延迟 ] 。凭直觉选择最大数量的通道是不明智的,因为它可能无法为您的要求提供丰硕的成果。

Here 是对 redis channels/latency 分析的一个小讨论。

此外,除上述之外,如果需要,您还有以下两种选择来提高性能,它们是

  • Redis 集群
  • 应用Redis逻辑数据库