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

Append new samples to one or more time series


Required arguments


is the key name for the time series.


is Unix time (integer, in milliseconds) specifying the sample timestamp or * to set the sample timestamp to the Unix time of the server's clock.

Unix time is the number of milliseconds that have elapsed since 00:00:00 UTC on 1 January 1970, the Unix epoch, without adjustments made due to leap seconds.


is numeric data value of the sample (double). The double number should follow RFC 7159 (a JSON standard). The parser rejects overly large values that would not fit in binary64. It does not accept NaN or infinite values.


  • If timestamp is older than the retention period compared to the maximum existing timestamp, the sample is discarded and an error is returned.
  • 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.
  • ignoreMaxTimeDiff and ignoreMaxValDiff cannot be specified as is the case with TS.ADD. However, the same logic still applies based on the values of the per-key configuration parameters. See the TS.ADD command page for more information.

Return value

Returns one of these replies:

  • Array reply, where each element is an Integer reply representing the timestamp of a upserted sample or an [] (when duplication policy is BLOCK, or when timestamp is older than the retention period compared to the maximum existing timestamp). For each element that is ignored (see the IGNORE option to TS.ADD for definitions), the element will have the value max_timestamp.
  • [] (invalid arguments, wrong key type, etc.)


If a compaction rule exits on a time series, TS.MADD performance might be reduced. The complexity of TS.MADD is always O(N*M), where N is the amount of series updated and M is the number of compaction rules or O(N) with no compaction.


Add stock prices at different timestamps

Create two stocks and add their prices at three different timestamps.> TS.CREATE stock:A LABELS type stock name A
OK> TS.CREATE stock:B LABELS type stock name B
OK> 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



Back to top ↑