TS.MADD

Syntax
TS.MADD {key timestamp value}...
Available in:
Redis Stack / TimeSeries 1.0.0
Time complexity:
O(N*M) when N is the amount of series updated and M is the amount of compaction rules or O(N) with no compaction

将一个或多个时间序列追加新样本

示例

必需的参数

key

是时间序列的键名。

timestamp

是Unix时间(整数,以毫秒为单位),指定样本时间戳或*以将样本时间戳设置为服务器时钟的Unix时间。

Unix时间是自1970年1月1日00:00:00 UTC(Unix纪元)以来经过的毫秒数,不考虑闰秒的调整。

value

是样本的数值数据值(double)。双精度数应遵循RFC 7159(一个JSON标准)。解析器会拒绝无法适应binary64的过大值。它不接受NaN或无限值。

备注:

  • 如果timestamp与最大现有时间戳相比超过保留期限,则样本将被丢弃并返回错误。
  • 显式地向压缩的时间序列添加样本(使用TS.ADDTS.MADDTS.INCRBYTS.DECRBY)可能会导致原始数据和压缩数据之间的不一致。压缩过程可能会覆盖这些样本。
  • ignoreMaxTimeDiffignoreMaxValDiff 不能像 TS.ADD 那样指定。然而,相同的逻辑仍然适用于每个键的配置参数值。有关更多信息,请参阅 TS.ADD 命令页面。

返回值

返回以下回复之一:

  • Array reply,其中每个元素是一个Integer reply,表示插入样本的时间戳或[](当重复策略为BLOCK,或当timestamp比现有最大时间戳早于保留期时)。对于每个被忽略的元素(参见TS.CREATE中的IGNORE),回复元素的值将是时间序列中的最大时间戳。
  • [] (无效的参数,错误的键类型等)

复杂性

如果时间序列上存在压缩规则,TS.MADD 的性能可能会降低。 TS.MADD 的复杂度始终为 O(N*M),其中 N 是更新的序列数量,M 是压缩规则的数量,或者在没有压缩的情况下为 O(N)

示例

Add stock prices at different timestamps

创建两只股票并在三个不同的时间戳添加它们的价格。

127.0.0.1:6379> TS.CREATE stock:A LABELS type stock name A
OK
127.0.0.1:6379> TS.CREATE stock:B LABELS type stock name B
OK
127.0.0.1:6379> TS.MADD stock:A 1000 100 stock:A 1010 110 stock:A 1020 120 stock:B 1000 120 stock:B 1010 110 stock:B 1020 100
1) (integer) 1000
2) (integer) 1010
3) (integer) 1020
4) (integer) 1000
5) (integer) 1010
6) (integer) 1020

另请参阅

TS.MRANGE | TS.RANGE | TS.MREVRANGE | TS.REVRANGE

RedisTimeSeries


RATE THIS PAGE
Back to top ↑