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.ADD
、TS.MADD
、TS.INCRBY
或TS.DECRBY
)可能会导致原始数据和压缩数据之间的不一致。压缩过程可能会覆盖这些样本。 ignoreMaxTimeDiff
和ignoreMaxValDiff
不能像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