{
  "schema_version": 2,
  "id": "operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.4-release-notes",
  "title": "RedisTimeSeries 1.4 release notes",
  "url": "https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.4-release-notes/",
  "summary": "Added ability to backfill time series.",
  "tags": [
    "docs",
    "operate",
    "stack"
  ],
  "last_updated": "2026-09-21T16:36:33+01:00",
  "page_type": "content",
  "content_hash": "9607c1ae6808fab244d171c1bc11c13a164fef61449a38f2602f6db1d8299da6",
  "sections": [
    {
      "id": "requirements",
      "title": "Requirements",
      "role": "overview",
      "text": "RedisTimeSeries v1.4.14 requires:\n\n- Minimum Redis compatibility version (database): 5.0.0\n- Minimum Redis Enterprise Software version (cluster): 6.0.12"
    },
    {
      "id": "v1414-february-2022",
      "title": "v1.4.14 (February 2022)",
      "role": "content",
      "text": "This is a maintenance release for RedisTimeSeries 1.4.\n\nUpdate urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.\n\nBug fixes:\n\n- [#891](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/891), [#892](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/892) Fixed memory leak in parseCreateArgs when parsing error occurs (MOD-1958)"
    },
    {
      "id": "v1413-november-2021",
      "title": "v1.4.13 (November 2021)",
      "role": "content",
      "text": "This is a maintenance release for RedisTimeSeries 1.4.\n\nUpdate urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.\n\nBug fixes:\n\n- [#881](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/881) Replicate only successful insertion of `TS.MADD`"
    },
    {
      "id": "v1411-november-2021",
      "title": "v1.4.11 (November 2021)",
      "role": "content",
      "text": "This is a maintenance release for RedisTimeSeries 1.4.\n\nUpdate urgency: `MODERATE`: Program an upgrade of the server, but it's not urgent.\n\nBug fixes:\n\n- [#862](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/862) Index dictionary should be freed on removing the last element"
    },
    {
      "id": "v1410-july-2021",
      "title": "v1.4.10 (July 2021)",
      "role": "content",
      "text": "This is a maintenance release for RedisTimeSeries 1.4.\n\nUpdate urgency: `HIGH`: There is a critical bug that may affect a subset of users. Upgrade!\n\nBug fixes:\n\n- [#760](https://github.com/RedisTimeSeries/RedisTimeSeries/issues/760) Avoid closing the same key twice, causing server crash on [`RENAME`](https://redis.io/docs/latest/commands/rename) of other keys"
    },
    {
      "id": "v149-may-2021",
      "title": "v1.4.9 (May 2021)",
      "role": "content",
      "text": "This is a maintenance release for version 1.4.\n\nUpdate urgency: Medium\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nBug fixes:\n\n- #[#712](https://github.com/RedisTimeSeries/RedisTimeSeries/issues/712) Missing keytype check on TS.INCRBY/DECRBY causes shards to crash\n- #[#719](https://github.com/RedisTimeSeries/RedisTimeSeries/issues/719) Support for renaming time series keys"
    },
    {
      "id": "v148-march-2021",
      "title": "v1.4.8 (March 2021)",
      "role": "content",
      "text": "This is a maintenance release for version 1.4.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nBug fixes:\n\n- [#612](https://github.com/RedisTimeSeries/RedisTimeSeries/issues/612) Crash on `MGET`/`MRANGE`\n- [#606](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/606) Memory leak when key loaded from RDB\n- [#624](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/624) Uninitialised memory access on log"
    },
    {
      "id": "v147-december-2020",
      "title": "v1.4.7 (December 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 1.4.\n\nHeadlines:\n\n- This release improves overall stability, and provides fixes for issues found after the previous release.\n\nBug fixes:\n\n- [#581](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/581) Misaligned allocators usage might crash Redis.\n- [#588](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/588) `ON_DUPLICATE` min/max rules not working for negative value."
    },
    {
      "id": "v146-november-2020",
      "title": "v1.4.6 (November 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 1.4.\n\nHeadlines:\n\nThis release improves overall stability and provides fixes for issues found after the previous release.\n\nMinor enhancements:\n\n- [#565](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/565)\n    duplicate policy: add `SUM` option: If a previous sample exists, add the new sample to it so that the updated value is equal to (previous + new).\n    If no previous sample exists, set the updated value equal to the new value. (PR [#565](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/565)\n- [#559](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/559)\n    Compressed chunk will be be the default global option\n- [#559](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/559)\n    Added `chunkType` to `TS.INFO`\n\nBug fixes:\n\n- [#528](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/528)\n    Out of order insert might crash Redis if there's an update to an empty downsampled key\n- [#561](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/561)\n    `TS.MRANGE` command might crash if there's an expired key that was deleted in the result set"
    },
    {
      "id": "v14-ga-september-2020",
      "title": "v1.4 GA (September 2020)",
      "role": "content",
      "text": "This is the General Availability release for RedisTimeSeries 1.4.\n\nHighlights:\n\n**Ability to backfill time series!** You can now add samples to a time series where the time of the sample is older than the newest sample in the series. This enables:\n\n- Adding out of order of samples to time series.\n- Batch loading of historical samples into an existing series.\n- Updating existing samples (for example for compliance reasons).\n\nThis has been the most requested feature for RedisTimeSeries. We look forward to your feedback so we can move to a general availability release soon.\n\nDetails:\n\n- Added functionality:\n    - [#254](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/254) TS.REVRANGE and TS.MREVRANGE commands allow for querying in descending order of Timestamps.\n    - [#503](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/503) - RDB saves the whole chunk instead of individual samples giving a speed and space improvement when saving or loading an RDB file\n    - [#502](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/502) - The ability to set, at creation time, the data section size of each chunk using flag `CHUNK_SIZE`. TS.INFO uses `chunkSize` instead of `maxSamplesPerChunk`.\n    - [#437](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/437) Allow backfilling of samples and updating of existing samples\n        - Works with [compressed](https://redislabs.com/blog/redistimeseries-version-1-2-is-here/) and uncompressed series.\n        - This comes with a performance hit when a sample is written out-of-order. We will publish numbers once we are generally available, but are still considering optimisations.\n    - [#521](https://github.com/RedisTimeSeries/RedisTimeSeries/pull/521) `DUPLICATE_POLICY` allows to configure on module, series and sample level how to handle duplicate samples. A duplicate sample is a sample for which the series holds already a sample on the same timestamp. Note that the default behaviour is equal to v1.2: `BLOCK`\n\nNotes:\nThe version inside Redis will be 10405 or 1.4.5 in semantic versioning. Since the version of a module in Redis is numeric, we could not add an GA flag."
    }
  ],
  "examples": []
}
