{
  "schema_version": 2,
  "id": "operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.0-release-notes",
  "title": "RedisGraph 2.0 release notes",
  "url": "https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/release-notes/redisgraph/redisgraph-2.0-release-notes/",
  "summary": "Enabled graph-aided search and graph visualisation. Cypher coverage. Performance improvements.",
  "tags": [
    "docs",
    "operate",
    "stack"
  ],
  "last_updated": "2026-09-21T16:36:33+01:00",
  "page_type": "content",
  "content_hash": "6dd257c69c28eeea42dc512e2fae3fe16202495693d6f010f9ca5ebb833e8121",
  "sections": [
    {
      "id": "requirements",
      "title": "Requirements",
      "role": "overview",
      "text": "RedisGraph v2.0.21 requires:\n\n- Minimum Redis compatibility version (database): 5.0.7\n- Minimum Redis Enterprise Software version (cluster): 5.4.11"
    },
    {
      "id": "v2021-october-2020",
      "title": "v2.0.21 (October 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Minor enhancements:\n\n    - #[1326](https://github.com/RedisGraph/RedisGraph/pull/1326), #[1330](https://github.com/RedisGraph/RedisGraph/pull/1330) Enable comments in Cypher queries.\n\n- Bug fixes:\n\n- #[1338](https://github.com/RedisGraph/RedisGraph/pull/1338) Update parser to support negative values.\n- #[1319](https://github.com/RedisGraph/RedisGraph/pull/1319) Replace assertion with runtime error - execution plan building process is unable locate an operation suitable for a filter.\n- #[1184](https://github.com/RedisGraph/RedisGraph/pull/1184) EXPLAIN and PROFILE are invalid clauses. They have counterpart commands `GRAPH.EXPLAIN` and `GRAPH.PROFILE`\n- #[1212](https://github.com/RedisGraph/RedisGraph/pull/1212) Emit error on the creation of undirected edges."
    },
    {
      "id": "v2020-september-2020",
      "title": "v2.0.20 (September 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Minor updates:\n\n    - #[1315](https://github.com/RedisGraph/RedisGraph/pull/1315) RediSearch 1.8.3\n    - #[1276](https://github.com/RedisGraph/RedisGraph/pull/1276) Graph info is added to Redis crash report.\n    - #[1265](https://github.com/RedisGraph/RedisGraph/pull/1265) Debug assertion functionality."
    },
    {
      "id": "v2019-august-2020",
      "title": "v2.0.19 (August 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Minor updates:\n    - #[1229](https://github.com/RedisGraph/RedisGraph/pull/1229) Upgrade RediSearch dependency to 1.8.2\n- Performance enhancements:\n    - #[1218](https://github.com/RedisGraph/RedisGraph/pull/1218) Enable parameters support for ID-based entity retrieval\n    - #[1242](https://github.com/RedisGraph/RedisGraph/pull/1242) Improve update logic, update RediSearch indices only once per update\n    - #[1226](https://github.com/RedisGraph/RedisGraph/pull/1226) Let RediSearch perform document deletion when replacing a document\n- Bug Fixes:\n    - #[1223](https://github.com/RedisGraph/RedisGraph/pull/1223) Resolve race condition in accessing/updating attribute maps.\n    - #[1196](https://github.com/RedisGraph/RedisGraph/pull/1196) Enable RediSearch [Garbage Collection](https://redis.io/docs/latest/develop/ai/search-and-query/administration/gc)"
    },
    {
      "id": "v2015-25-june-2020",
      "title": "v2.0.15 (25 June 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Bug Fixes:\n    - #[1159](https://github.com/RedisGraph/RedisGraph/pull/1159) `IN` operator didn't result in an index array lookup with parameterised array (`IN $param`)."
    },
    {
      "id": "v2014-22-june-2020",
      "title": "v2.0.14 (22 June 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Bug Fixes:\n    - #[1157](https://github.com/RedisGraph/RedisGraph/pull/1157) Index search not using query parameters."
    },
    {
      "id": "v2013-15-june-2020",
      "title": "v2.0.13 (15 June 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Enhancements:\n    - #[1118](https://github.com/RedisGraph/RedisGraph/pull/1118) Added module configuration parameters for the number of threads in OpenMP and concurrent queries.\n    - #[1121](https://github.com/RedisGraph/RedisGraph/pull/1121) [RediSearch](https://github.com/RediSearch/RediSearch/) v1.8.1"
    },
    {
      "id": "v2012-may-2020",
      "title": "v2.0.12 (May 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Enhancements:\n    - #[1103](https://github.com/RedisGraph/RedisGraph/pull/1103) RediSearch 1.8. This upgrade will reduce the resources required for Garbage Collection of indices inside RedisGraph."
    },
    {
      "id": "v2011-april-2020",
      "title": "v2.0.11 (April 2020)",
      "role": "content",
      "text": "This is a maintenance release for version 2.0.\n\nHeadlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Minor Enhancements:\n    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Added `DISTINCT` support for paths and arrays.\n- Minor Bugfixes:\n    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Streamlined logic for uniquing entities.\n    - #[1056](https://github.com/RedisGraph/RedisGraph/pull/1056) Enabled comparison routine for paths."
    },
    {
      "id": "v2010-29-march-2020",
      "title": "v2.0.10 (29 March 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Minor Enhancements:\n    - #[1035](https://github.com/redisgraph/redisgraph/issues/1035) - RediSearch version [1.6.11](https://github.com/RediSearch/RediSearch/releases/tag/v1.6.11).\n- Bugfixes:\n    - #[1017](https://github.com/redisgraph/redisgraph/issues/1017), #[1019](https://github.com/redisgraph/redisgraph/issues/1019) - Algebraic expressions correctness.\n    - #[1020](https://github.com/redisgraph/redisgraph/issues/1020) - Support parameterised SKIP and LIMIT."
    },
    {
      "id": "v209-19-march-2020",
      "title": "v2.0.9 (19 March 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Bugfixes:\n    - #[1028](https://github.com/redisgraph/redisgraph/issues/1028) Ensure proper placement of Index Scans when partially replacing Filter ops."
    },
    {
      "id": "v208-18-march-2020",
      "title": "v2.0.8 (18 March 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Bugfixes:\n    - #[1023](https://github.com/redisgraph/redisgraph/issues/1023) Fix regression in checking argument counts to GRAPH endpoints."
    },
    {
      "id": "v206-15-march-2020",
      "title": "v2.0.6 (15 March 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- #[897](https://github.com/redisgraph/redisgraph/issues/897) GRAPH.SLOWLOG\n- #[1004](https://github.com/redisgraph/redisgraph/issues/1004) Re-enable GRAPH.PROFILE\n- #[917](https://github.com/redisgraph/redisgraph/issues/917), #[991](https://github.com/redisgraph/redisgraph/issues/991), #[940](https://github.com/redisgraph/redisgraph/issues/940), #[984](https://github.com/redisgraph/redisgraph/issues/984) Memory leak fixes\n- #[925](https://github.com/redisgraph/redisgraph/issues/925) Bug fix within RediSearch\n- #[1001](https://github.com/redisgraph/redisgraph/issues/1001) Bug fix label scan invalid range"
    },
    {
      "id": "v205-23-february-2020",
      "title": "v2.0.5 (23 February 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Enhancement:\n    - #[955](https://github.com/redisgraph/redisgraph/issues/955)  Switch OR,AND boolean semiring to ANY,PAIR."
    },
    {
      "id": "v204-23-february-2020",
      "title": "v2.0.4 (23 February 2020)",
      "role": "content",
      "text": "Details:\n\n- Enhancement:\n    - Reduce GraphBLAS size"
    },
    {
      "id": "v202-23-february-2020",
      "title": "v2.0.2 (23 February 2020)",
      "role": "content",
      "text": "Headlines:\n\n- This release improves overall stability and provides fixes for issues found after the previous release.\n\nDetails:\n\n- Improved error reporting:\n    - #[925](https://github.com/redisgraph/redisgraph/issues/925) RediSearch query error reporting\n    - #[919](https://github.com/redisgraph/redisgraph/issues/919) Added non existing entity runtime error\n- Enhancements:\n    - #[942](https://github.com/redisgraph/redisgraph/issues/942) Update GraphBLAS version (3.2.0)\n    - #[922](https://github.com/redisgraph/redisgraph/issues/922) Filter tree compaction\n    - #[906](https://github.com/redisgraph/redisgraph/issues/906) Optimize cartesian product\n    - #[898](https://github.com/redisgraph/redisgraph/issues/898) Granular matrix locking\n- Bug fixes:\n    - #[917](https://github.com/redisgraph/redisgraph/issues/917) #[940](https://github.com/redisgraph/redisgraph/issues/940) Resolve memory leaks\n    - #[938](https://github.com/RedisGraph/RedisGraph/pull/938) Label matrix should be fetch right before eval"
    },
    {
      "id": "v20-ga-201---january-2020",
      "title": "v2.0 GA (2.0.1 - January 2020)",
      "role": "content",
      "text": "This is the General Availability (GA) release of RedisGraph 2.0 (2.0.1)!\n\nHeadlines:\n\n- Full Text Search (FTS) enabling Graph-aided Search.\n- Full graph response enabling visualisation.\n- Substantial amount of Cypher coverage.\n- Performance improvements of up to 4x compared to RedisGraph 1.2.\n\n(We will blog about this release soon including performance improvements results and the link here)\n\nFull details:\n\n- Major features\n    - #[339](https://github.com/RedisGraph/RedisGraph/issues/339) Full Graph Response.  RedisGraph now allows to return Graph entities such as Nodes and Relationships.  This feature also enables graph visualisation.\n    - #[558](https://github.com/RedisGraph/RedisGraph/issues/558) Indexing functionality replaced by [RediSearch](https://redisearch.io). This results in support for\n        - compound indices\n        - full text search\n        - graph-aided search\n    - #[691](https://github.com/RedisGraph/RedisGraph/issues/691) RediSearch index is used with `IN` operator on indexed properties.\n    - #[488](https://github.com/RedisGraph/RedisGraph/issues/488) Replace flex/lemon parser with [libcypher-parser](https://github.com/cleishm/libcypher-parser).\n    - #[574](https://github.com/RedisGraph/RedisGraph/issues/574) Introduction of the array data type. This introduces significant support of Cypher as well as properties can be arrays on both nodes and relationships.\n    - Cypher\n        - #[714](https://github.com/RedisGraph/RedisGraph/issues/714) `MERGE` can be combined with any other clause. `MERGE` will take into account bounded entities.\n        - #[786](https://github.com/RedisGraph/RedisGraph/issues/786) Support for passing all supported graph data types (Node, Relationship, Array,...) as arguments to procedure calls, rather than requiring all arguments to be Strings.\n        - #[708](https://github.com/RedisGraph/RedisGraph/issues/708) Named path support.\n        - #[717](https://github.com/RedisGraph/RedisGraph/issues/717) `count(*)`\n        - #[730](https://github.com/RedisGraph/RedisGraph/issues/730) `UNION`\n        - #[757](https://github.com/RedisGraph/RedisGraph/issues/757) `coalesce`\n        - #[658](https://github.com/RedisGraph/RedisGraph/issues/658) Support for `COUNT DISTINCT`\n        - #[574](https://github.com/RedisGraph/RedisGraph/issues/574) with the array data support comes `IN`, `collect`, `head`,`range`, `reverse`, `size`, `tail`\n        - #[624](https://github.com/RedisGraph/RedisGraph/issues/624) `randomUUID()`\n        - #[632](https://github.com/RedisGraph/RedisGraph/issues/632) `IS NULL` and `IS NOT NULL`.\n        - #[594](https://github.com/RedisGraph/RedisGraph/issues/594) Support dynamic inline properties for `CREATE` and `MERGE` patterns.\n        - #[583](https://github.com/RedisGraph/RedisGraph/issues/583) `NOT` Operator.\n        - #[569](https://github.com/RedisGraph/RedisGraph/issues/569) `timestamp()` function.\n        - #[586](https://github.com/RedisGraph/RedisGraph/issues/586) `CASE WHEN` (simple form).\n        - #[582](https://github.com/RedisGraph/RedisGraph/issues/582) `contains` function.\n        - #[596](https://github.com/RedisGraph/RedisGraph/issues/596) `indegree` and `outdegree` functions for nodes.\n        - #[587](https://github.com/RedisGraph/RedisGraph/issues/587) improved boolean logic.\n        - #[539](https://github.com/RedisGraph/RedisGraph/issues/539) Reusable entities in pattern matching.\n    - #[668](https://github.com/RedisGraph/RedisGraph/issues/668) PageRank support.\n    - #[713](https://github.com/RedisGraph/RedisGraph/issues/713) Parameterised queries support. Most client drivers are updated. This enables future performance enhancements for query caching.\n    - #[662](https://github.com/RedisGraph/RedisGraph/issues/662) Support for AOF.\n- Enhancements\n    - #[752](https://github.com/RedisGraph/RedisGraph/issues/752) Use GraphBLAS 3.1.1.\n    - #[674](https://github.com/RedisGraph/RedisGraph/issues/674) `GRAPH.QUERY` will not fail even if graph doesn't exist.\n    - #[613](https://github.com/RedisGraph/RedisGraph/issues/613) Runtime arithmetic error handling.\n- Performance Improvements\n    - #[773](https://github.com/RedisGraph/RedisGraph/issues/773) Bulk deletion of relationships. Deletion of relationships within the same query will be efficiently handled by batch operations in GraphBLAS.\n    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Better replication support. Only write queries that mutate the graph or create indices will be replicated to AOF and slaves.\n    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Better commit flow. The Redis Global Lock and RedisGraphs's R/W lock are released once writes are done. Fixed duplicate replications in queries with multiple write segments.\n    - #[640](https://github.com/RedisGraph/RedisGraph/issues/640) GraphBlas to support OpenMP.\n    - #[532](https://github.com/RedisGraph/RedisGraph/issues/532) #[535](https://github.com/RedisGraph/RedisGraph/issues/535) Counting edges of given type by reducing matrices.\n    - #[534](https://github.com/RedisGraph/RedisGraph/issues/534) #[571](https://github.com/RedisGraph/RedisGraph/issues/571) Query parsing and `GRAPH.EXPLAIN` in dedicated thread.\n    - #[550](https://github.com/RedisGraph/RedisGraph/issues/550) #[555](https://github.com/RedisGraph/RedisGraph/issues/555) Optimize cartesian product by reducing to join.\n    - #[641](https://github.com/RedisGraph/RedisGraph/issues/641) Cartesian products with multiple incoming streams >2 can now be optimized with \"HashJoin\".\n- Bugfixes\n    - #[783](https://github.com/RedisGraph/RedisGraph/issues/783) Master-replica replication - slaves were dropping index mutations caused by procedure calls.\n    - #[785](https://github.com/RedisGraph/RedisGraph/issues/785) Solved several major memory leaks.\n    - #[795](https://github.com/RedisGraph/RedisGraph/issues/795) The underlying graph object's attributes were not updated on `RENAME`.\n    - #[720](https://github.com/RedisGraph/RedisGraph/issues/720) Validation of function calls in `WITH` and `CREATE` clauses e.g. `CREATE (a {v: fake()})`.\n    - #[732](https://github.com/RedisGraph/RedisGraph/issues/732), #[736](https://github.com/RedisGraph/RedisGraph/issues/736), #[747](https://github.com/RedisGraph/RedisGraph/issues/747) Detect cycles in graph and generate algebraic expression.\n    - #[734](https://github.com/RedisGraph/RedisGraph/issues/734) Fix access of uninitialised GrB_Info.\n    - #[735](https://github.com/RedisGraph/RedisGraph/issues/735) Index scans with `IN` filters did not compare with strings properly,\n    - #[758](https://github.com/RedisGraph/RedisGraph/issues/758) Validate that during `UNION` all return clauses are annotated.\n    - #[412](https://github.com/RedisGraph/RedisGraph/issues/412) Better handling for `GRAPH.DELETE`.\n    - #[537](https://github.com/RedisGraph/RedisGraph/issues/537) Wrong row index within expand-into, enabled few TCK tests.\n    - #[591](https://github.com/RedisGraph/RedisGraph/issues/591) Emit validation error when an alias refers to both nodes and edges.\n    - #[606](https://github.com/RedisGraph/RedisGraph/issues/606) Fix Record ID of edges held in ExpandInto op.\n    - #[607](https://github.com/RedisGraph/RedisGraph/issues/607) All ops NULL-set variables in their free routines (memory).\n    - #[893](https://github.com/RedisGraph/RedisGraph/issues/893) Preserve the children array order when replacing operations.\n\n> [!NOTE]\n> The version inside Redis will be 20001 or 2.0.1 in semantic versioning."
    }
  ],
  "examples": []
}
