python - Redis PUB/SUB 可以支持多少个 channel ?

标签 python django redis real-time

我刚开始使用 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 /延迟分析的小讨论。

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

  • Redis 集群
  • 应用 Redis 逻辑数据库
  • 关于python - Redis PUB/SUB 可以支持多少个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61065351/

    相关文章:

    python - 将不同长度的列表列表转换为 numpy 数组

    python - 在异步 View 中连接到自身的 Django 3.1 asgi 服务器超时

    python - 从 Pandas 数据框中过滤掉一天

    python - 如何在 PostgreSql 上获取查询的最后 n 个项目

    社交社区中的 Django 文件上传/下载

    zend-framework - Zend Framework 无法读取没有 "zfcahce:"前缀的 key ?

    spring-boot - 无法将SpringBoot连接到docker上的redis-cluster

    Python 按字符串中的第一个数字对列表进行排序

    python - Django:如何访问测试数据库?

    database - Yii2 + Redis 作为数据库