我刚开始使用 Redis,我正在尝试了解它是如何工作的,所以如果我要说的不正确,我深表歉意。
我想构建一个实时系统,其中 Python 应用程序(我们将其称为 Data Collector)从大约 600 个市场中检索股票市场交易。这些交易应该发送到 Django 应用程序并实时显示在前端,所以我会让 Python 检索交易 > Django 接收它们并将它们发送到页面。
基本上我会使用 Redis 作为消息代理,它是一个 PUB/SUB 系统。所以数据收集器一直在运行,它检索交易并将它们发送到 channel ;每个市场都有一个 channel (600+)。在 Django 端,只要用户打开 XYZ 市场的页面,Django 就会连接到 XYZ 市场的 Redis channel 并获取该 channel 的交易。请记住,这些数据都不需要存储,它只需要显示在我的前端。
从理论上讲,该系统应该可以工作,唯一让我怀疑的是在这种情况下有大量 channel 。 Redis 会支持非常多的 channel 吗?或者它不取决于我创建了多少 channel ?我应该寻找另一种方法吗?
最佳答案
为了找到您的 的最大 channel 数实时要求,您需要执行延迟分析并在 [ 上找到协议(protocol) channel 数与所需延迟 ] .凭直觉选择最大数量的 channel 是不明智的,因为它可能无法满足您的要求。
Here是关于 redis channel /延迟分析的小讨论。
此外,除了上述之外,如果需要,您还有以下两种选择来提高性能,它们是
关于python - Redis PUB/SUB 可以支持多少个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61065351/