TSADD key timestamp value [timestamp value ...] [EXPIRE_IN TTL] [EXPIRE_AT UNIX_TIMESTAMP]

This command sets the data for the given timestamp with the given value in the time series that is specified by key. This is useful in storing time series like data where the key could be a metric, the timestamp is the time when the metric was generated and value is the value of the metric at the given timestamp.

  • If the given timestamp already exists in the specified time series, this command overwrites the existing value with the given value.
  • If the given key does not exist, a new time series is created for the key, and the given values are inserted to the associated given fields.
  • If the given key exists, but is not of time series type, an error is raised.
  • If the given timestamp is not a valid signed 64 bit integer, an error is raised.
  • EXPIRE_IN TTL sets the TTL (time-to-live) in seconds for the entries being added.
  • EXPIRE_AT UNIX_TIMESTAMP ensures that the entries added would expire by the given UNIX_TIMESTAMP (seconds since January 1, 1970).

Return value

Returns the appropriate status string.


The timestamp can be arbitrary integers used just for sorting values in a certain order.

$ TSADD cpu_usage 10 "70"
$ TSADD cpu_usage 20 "80" 30 "60" 40 "90"

We could also encode the timestamp as “yyyymmddhhmm”, since this would still produce integers that are sortable by the actual timestamp.

$ TSADD cpu_usage 201710311100 "50"

A more common option would be to specify the timestamp as the unix timestamp

$ TSADD cpu_usage 1509474505 "75"
$ TSGET cpu_usage 10
$ TSGET cpu_usage 201710311100
$ TSGET cpu_usage 1509474505

Set a TTL of 3600 seconds (1 hour) for an entry that you add.

$ TSADD cpu_usage 60 "70" EXPIRE_IN 3600

Ensure that the entry we're adding would expire at the unix_timestamp 3513642307.

$ TSADD cpu_usage 70 "80" EXPIRE_AT 3513642307

See also

tsrem, tsget, tsrangebytime, tsrevrangebytime, tslastn, tscard