TS.DECRBY

Available in:
Redis Stack / Time series 1.0.0
Time complexity:
O(M) when M is the amount of compaction rules or O(1) with no compaction

Decrease the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given decrement

Syntax

TS.DECRBY key value 
  [TIMESTAMP timestamp] 
  [RETENTION retentionPeriod] 
  [UNCOMPRESSED] 
  [CHUNK_SIZE size] 
  [LABELS {label value}...]

Required arguments

key

is key name for the time series.

value

is numeric data value of the sample (double)

Notes

  • If the time series does not exist, it is automatically created.
  • You can use this command as a counter or gauge that automatically gets history as a time series.

Optional arguments

TIMESTAMP timestamp

is (integer) UNIX sample timestamp in milliseconds or * to set the timestamp according to the server clock.

timestamp must be equal to or higher than the maximum existing timestamp. When equal, the value of the sample with the maximum existing timestamp is decreased. If it is higher, a new sample with a timestamp set to timestamp is created, and its value is set to the value of the sample with the maximum existing timestamp minus value.

If the time series is empty, the value is set to value. When not specified, set the timestamp according to the server clock.

RETENTION retentionPeriod

is maximum retention period, compared to the maximum existing timestamp, in milliseconds. Use it only if you are creating a new time series. It is ignored if you are adding samples to an existing time series. See RETENTION in TS.CREATE.

UNCOMPRESSED

changes data storage from compressed (default) to uncompressed. Use it only if you are creating a new time series. It is ignored if you are adding samples to an existing time series. See ENCODING in TS.CREATE.

CHUNK_SIZE size

is memory size, in bytes, allocated for each data chunk. Use it only if you are creating a new time series. It is ignored if you are adding samples to an existing time series. See CHUNK_SIZE in TS.CREATE.

LABELS [{label value}...]

is set of label-value pairs that represent metadata labels of the key and serve as a secondary index. Use it only if you are creating a new time series. It is ignored if you are adding samples to an existing time series. See LABELS in TS.CREATE.

Notes

  • You can use this command to add data to a nonexisting time series in a single command. This is why RETENTION, UNCOMPRESSED, CHUNK_SIZE, and LABELS are optional arguments.
  • When specified and the key doesn't exist, a new time series is created. Setting the RETENTION and LABELS introduces additional time complexity.

See also

TS.INCRBY | TS.CREATE

RedisTimeSeries

Feedback

If you've found issues on this page, or have suggestions for improvement, please submit a request to merge or open an issue in the repository.