TS.MADD
语法
TS.MADD {key timestamp value}...
- 可用:
- Redis 堆栈 / TimeSeries 1.0.0
- 时间复杂度:
- 当 N 是更新的序列数量,M 是压缩规则的数量,或者 O(N) 没有压缩时,O(N*M)
将新样本追加到一个或多个时间序列
必需参数
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
.但是,相同的 logic 仍然根据 per-key 配置参数的值适用。请参阅TS.ADD
命令页面了解更多信息。
返回值
返回以下回复之一:
- 数组回复,其中每个元素都是一个 Integer 回复,表示更新插入样本的时间戳或 [](当复制策略为
BLOCK
或timestamp
早于保留期(与最大现有时间戳相比)。对于每个被忽略的元素(请参阅IGNORE
在TS.CREATE
),则 reply 元素值将是时间序列中的最大时间戳。 - [](参数无效、键类型错误等)
复杂性
如果压缩规则在时间序列上退出,则 TS.MADD 性能可能会降低。
The complexity of TS.MADD 始终为O(N*M)
哪里N
是更新的序列数量,M
是压缩规则的数量,或者O(N)
没有压缩。
例子
添加不同时间戳的股票价格
创建两只股票,并在三个不同的时间戳添加它们的价格。
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
See also
TS.MRANGE
| TS.RANGE
| TS.MREVRANGE
| TS.REVRANGE
Related topics