需要一个脚本来获取超过 20 秒的 Redis 延迟值并将结果存储在文件中

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

我需要定期更新一个文件,该文件将在每天的特定时间托管 Redis Latency 值。

我正在使用命令

redis-cli --latency -h 127.0.0.1 -p 6379
。问题是该命令仅在交互模式下有效,并且会循环显示值。我想获取特定时间段内的延迟值,然后将这些值放入我的文件中。

当我使用超时实用程序执行以下命令时,它会运行指定的 20 秒:

timeout 20 /usr/local/bin/redis-cli --latency -h 127.0.0.1 -p 6379

但是,当我尝试捕获变量中的输出(将其传递到文件中)时,如下所示:

Latency=$(timeout 20 /usr/local/bin/redis-cli --latency -h 127.0.0.1 -p 6379)
echo $Latency

命令运行后立即停止,而不是运行预期的 20 秒。

如何将 20 秒的完整持续时间的 Redis 延迟输出捕获到变量中?

bash shell redis redis-cli
1个回答
0
投票

当您尝试捕获 Redis 延迟输出到变量或文件时,默认情况下,Redis 会对延迟进行 1 秒采样。

要自定义延迟测试的持续时间,您可以使用-i选项指定样本之间的间隔,如下所示

Latency=$(/usr/local/bin/redis-cli --latency -h 127.0.0.1 -p 6379 -i 20)

您还可以使用 redis 延迟的帮助命令来获取此信息

redis-cli --latency --help
© www.soinside.com 2019 - 2024. All rights reserved.