Redis TimeSeries TS.MADD 延迟

问题描述 投票:0回答:1

我正在使用node.js 和Redis TimeSeries。我需要将实时加密货币交易数据(大约 300 个币)添加到 Redis TimeSeries。该任务必须在几毫秒内完成。我使用带有管道和 TCP_NODELAY 选项的 TS.MADD 命令。我注意到 99% 的数据在不到 5 毫秒的时间内添加,但一两条记录在添加之前会经历延迟,直到第二秒结束(大约 990 毫秒)。系统资源利用率低于5%,一切都在同一台服务器上进行,因此不存在网络延迟。我需要找出如何在没有这种延迟的情况下完成整个 TS.MADD 任务。

redis real-time-data redistimeseries
1个回答
0
投票

我遇到了同样的问题(看来我们正在处理同一个项目;),我按照 Lior 的建议运行 SLOWLOG,并发现我正在运行一些 ts().info 查询,这些查询会堵塞插入。

设置: 我正在使用每秒运行的管道来优化负载。 这会导致一次发送 200-500 个时间序列值到 Redis。

删除任何 ts.info 查询后,madd 插入几乎立即可用(1 秒延迟 + 一些延迟)。

如果您需要毫秒级的延迟,我的建议是直接将数据发送到您的客户端,并且仅将 Redis 用作缓冲区/存储/聚合器。

假设您希望客户端连接到此数据,客户端从 Redis 时间序列中读取最新交易,然后直接通过套接字接收新数据。

© www.soinside.com 2019 - 2024. All rights reserved.