TS.MADD
语法
TS.MADD {key timestamp value}...
- 可用于
- Redis Stack / 时间序列 1.0.0
- 时间复杂度
- O(N*M) 当 N 是更新的系列数量,M 是压缩规则的数量,或者当没有压缩时为 O(N)
将新的样本追加到一个或多个时间序列
必需参数
键
是时间序列的键名称。
时间戳
是 Unix 时间(整数,以毫秒为单位),指定样本时间戳,或者 *
用于将样本时间戳设置为服务器时钟的 Unix 时间。
Unix 时间是自 1970 年 1 月 1 日 00:00:00 UTC(Unix 纪元)以来的毫秒数,不包括闰秒调整。
值
是样本的数值数据(双精度浮点数)。双精度浮点数应遵循 RFC 7159(JSON 标准)。解析器会拒绝不适合二进制 64 的过大值。它不接受 NaN 或无穷大值。
- 如果
时间戳
比与最大现有时间戳相比的保留期更早,则样本将被丢弃并返回错误。 - 显式地将样本添加到已压缩的时间序列(使用
TS.ADD
、TS.MADD
、TS.INCRBY
或TS.DECRBY
)可能会导致原始数据和压缩数据之间出现不一致。压缩过程可能会覆盖此类样本。 ignoreMaxTimeDiff
和ignoreMaxValDiff
不能像TS.ADD
那样指定。但是,基于每个键配置参数的值,相同的逻辑仍然适用。有关更多信息,请参阅TS.ADD
命令页面。
返回值
返回以下回复之一
- 数组回复,其中每个元素都是一个 整数回复,表示已插入样本的时间戳,或者 [](当重复策略为
BLOCK
时,或者当时间戳
比与最大现有时间戳相比的保留期更早时)。对于每个被忽略的元素(请参阅TS.CREATE
中的IGNORE
),回复元素值将是时间序列中最大的时间戳。 - [](无效参数、错误的键类型等)
复杂度
如果时间序列上存在压缩规则,则 TS.MADD 性能可能会降低。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
另请参阅
TS.MRANGE
| TS.RANGE
| TS.MREVRANGE
| TS.REVRANGE