【发布时间】:2020-06-27 05:05:16
【问题描述】:
我正计划创建一个应用程序,它将数据的消防水带分成多个客户可以订阅的主题。
通过一些挖掘,Redis 似乎可以在单个节点上支持数千个流,但对于我的应用程序,客户端可能需要订阅许多流(例如 5000 个)。
XADD 命令可以订阅的流数量是否有限制,这对服务器/客户端性能有什么影响?
如果这很重要,我将使用 Node 作为客户端。
【问题讨论】:
-
我认为本文没有涉及。
我正计划创建一个应用程序,它将数据的消防水带分成多个客户可以订阅的主题。
通过一些挖掘,Redis 似乎可以在单个节点上支持数千个流,但对于我的应用程序,客户端可能需要订阅许多流(例如 5000 个)。
XADD 命令可以订阅的流数量是否有限制,这对服务器/客户端性能有什么影响?
如果这很重要,我将使用 Node 作为客户端。
【问题讨论】:
我认为没有特定的限制 - 您可能会在 Redis 中的任何内容之前达到客户端库中的字符串编码限制。
就实际运行具有 5,000 个键的 XREAD 而言,这可能是个坏主意。 XREAD 要求单个操作中的所有键都驻留在同一个节点/分片上,因此这样做不会获得集群的好处。
【讨论】:
XREAD...BLOCK,则会产生另一个副作用 - 这意味着您需要 5,000 个连接,这不是很好。最好的解决方案是使用关键标签并将您的XREADs 组合在一起。所以也许你有 10x 500 键 XREADs