TS.DECRBY
减少最新样本的值
语法
TS.DECRBY key value [TIMESTAMP timestamp] [RETENTION retentionPeriod] [UNCOMPRESSED] [CHUNK SIZE size] [LABELS label value [label value ...]]
引入版本:1.0.0
复杂度摘要:O(M)
减少具有最大现有时间戳的样本的值,或者创建一个新样本,其值等于具有最大现有时间戳的样本的值,并具有给定的减量
必需参数
key
是时间序列的键名称。
subtrahend
是减数的数值(双精度)。如果减数为 NaN,则返回错误。
IGNORE) is defined for this time series - TS.DECRBY operations are affected as well (sample additions/modifications can be filtered).
- Explicitly adding samples to a compacted time series (using TS.ADD, TS.MADD, TS.INCRBY, or TS.DECRBY) may result in inconsistencies between the raw and the compacted data. The compaction process may override such samples.
可选参数
TIMESTAMP timestamp
是 Unix 时间(整数,以毫秒为单位),指定样本时间戳或 * 将样本时间戳设置为服务器时钟的 Unix 时间。
Unix 时间是自 1970 年 1 月 1 日(Unix 纪元)UTC 00:00:00 起经过的毫秒数,没有因闰秒而进行调整。
timestamp 必须等于或大于最大现有时间戳。当相等时,具有最大现有时间戳的样本的值会减少。如果更高,则创建一个时间戳设置为 timestamp 的新样本,并将其值设置为现有时间戳最大的样本值减去 subtrahend。
如果时间序列为空,则该值设置为 subtrahend。
未指定时,时间戳设置为服务器时钟的 Unix 时间。
RETENTION retentionPeriod
是与最大现有时间戳相比的最大保留期(以毫秒为单位)。
仅当您要创建新时间序列时才使用它。如果您将样本添加到现有时间序列中,它将被忽略。请参阅 TS.CREATE 中的 RETENTION。
CHUNK_SIZE size
是为每个数据块分配的内存大小(以字节为单位)。
仅当您要创建新时间序列时才使用它。如果您将样本添加到现有时间序列中,它将被忽略。请参阅 TS.CREATE 中的 CHUNK_SIZE。
DUPLICATE_POLICY policy
是处理具有相同时间戳的多个样本的插入(TS.ADD 和 TS.MADD)的策略。
仅当您要创建新时间序列时才使用它。如果您将样本添加到现有时间序列中,它将被忽略。请参阅 TS.CREATE 中的 DUPLICATE_POLICY。
IGNORE ignoreMaxTimediff ignoreMaxValDiff
是重复样品的处理政策。如果满足以下条件,新样本将被视为重复样本并被忽略:
- 时间序列不是压缩;
- 时间序列的
DUPLICATE_POLICY是LAST; - 按顺序添加样本(
timestamp ≥ max_timestamp); - 当前时间戳与前一个时间戳(
timestamp - max_timestamp)的差值小于或等于IGNORE_MAX_TIME_DIFF; - 当前值与前一个最大时间戳(
abs(value - value_at_max_timestamp)处的值的绝对值差值小于或等于IGNORE_MAX_VAL_DIFF。
其中max_timestamp是时间序列中时间戳最大的样本的时间戳,value_at_max_timestamp是max_timestamp处的值。
不指定时:设置为全局IGNORE_MAX_TIME_DIFF和IGNORE_MAX_VAL_DIFF,默认均设置为0。
这些参数在创建新时间序列时用于设置每个键参数,并且在使用现有时间序列调用时将被忽略(使用现有的每个键配置参数)。
LABELS [{label value}...]
是一组标签值对,代表键的元数据标签并用作二级索引。
仅当您要创建新时间序列时才使用它。如果您将样本添加到现有时间序列中,它将被忽略。请参阅 TS.CREATE 中的 LABELS。
RETENTION, ENCODING, CHUNK_SIZE, DUPLICATE_POLICY, IGNORE, and LABELS are used only when creating a new time series, and ignored when adding or modifying samples in an existing time series.
- Setting RETENTION and LABELS introduces additional time complexity.
Redis Software 与 Redis Cloud 兼容性
| Redis 软件 |
Redis Cloud |
说明 |
|---|---|---|
| ✅ 支持 |
✅ 灵活且每年一次 ✅ 免费和固定 |
返回值
RESP2
以下之一: * 整数回复:更新插入的样本的时间戳。如果样本被忽略(参见TS.CREATE中的IGNORE),则回复将是时间序列中最大的时间戳。 * 简单错误回复 在这些情况下:无效的参数、错误的键类型,或者 timestamp 不等于或大于最大现有时间戳。
RESP3
以下之一: * 整数回复:更新插入的样本的时间戳。如果样本被忽略(参见TS.CREATE中的IGNORE),则回复将是时间序列中最大的时间戳。 * 简单错误回复 在这些情况下:无效的参数、错误的键类型,或者 timestamp 不等于或大于最大现有时间戳。
参见
相关主题
资料来源:Redis 官方 TS.DECRBY 文档;中文内容参考 Redis 文档许可。