From bf7b2c26b8b8e30bd4529e8d3ef7c2a4d0936c00 Mon Sep 17 00:00:00 2001 From: "David W. Dougherty" Date: Fri, 23 Jan 2026 07:13:56 -0800 Subject: [PATCH 1/3] DEV: update final bits and pieces for 8.6-RC1 release --- content/commands/info.md | 1 + .../operate/oss_and_stack/install/install-stack/_index.md | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/content/commands/info.md b/content/commands/info.md index 7e3d58ef9a..13183994fe 100644 --- a/content/commands/info.md +++ b/content/commands/info.md @@ -390,6 +390,7 @@ Here is the meaning of all fields in the **stats** section: * `acl_access_denied_cmd`: Number of commands rejected because of access denied to the command * `acl_access_denied_key`: Number of commands rejected because of access denied to a key * `acl_access_denied_channel`: Number of commands rejected because of access denied to a channel +* `acl_access_denied_tls_cert`: Number of failed TLS certificate–based authentication attempts * `cluster_incompatible_ops`: Number of cluster-incompatible commands. This metric appears only if the `cluster-compatibility-sample-ratio` configuration parameter is not 0. Added in Redis 8.0. diff --git a/content/operate/oss_and_stack/install/install-stack/_index.md b/content/operate/oss_and_stack/install/install-stack/_index.md index 72580a6ccc..b6f0d77452 100644 --- a/content/operate/oss_and_stack/install/install-stack/_index.md +++ b/content/operate/oss_and_stack/install/install-stack/_index.md @@ -11,13 +11,13 @@ title: Install Redis Open Source weight: 2 --- -Redis Open Source has been tested on the following platforms: +The latest version of Redis Open Source has been tested on the following platforms: - Ubuntu 22.04 (Jammy Jellyfish) and 24.04 (Noble Numbat). -- Rocky Linux 8.10 and 9.5. -- AlmaLinux 8.10 and 9.5. +- Rocky Linux 8.10, 9.5, and 10.1. +- AlmaLinux 8.10, 9.5, and 10.1. - Debian 12 (Bookworm) and 13 (Trixie). -- macOS 13 (Ventura), 14 (Sonoma), and 15 (Sequoia). +- macOS 14 (Sonoma), and 15 (Sequoia). Follow the links below for installation instructions for your OS and distribution. From 58998fe5a00fe54415ceab7085c2ec607b3ffcd2 Mon Sep 17 00:00:00 2001 From: "David W. Dougherty" Date: Fri, 23 Jan 2026 12:55:43 -0800 Subject: [PATCH 2/3] Update commands.json files --- data/commands_redisbloom.json | 20 +- data/commands_redisearch.json | 1885 ++++++++++++++++++++++++---- data/commands_redistimeseries.json | 103 +- 3 files changed, 1733 insertions(+), 275 deletions(-) diff --git a/data/commands_redisbloom.json b/data/commands_redisbloom.json index c93975e334..68dd2db678 100644 --- a/data/commands_redisbloom.json +++ b/data/commands_redisbloom.json @@ -623,7 +623,7 @@ "group": "cms" }, "TOPK.RESERVE": { - "summary": "Initializes a TopK with specified parameters", + "summary": "Initializes a Top-K sketch with specified parameters", "complexity": "O(1)", "arguments": [ { @@ -658,7 +658,7 @@ "group": "topk" }, "TOPK.ADD": { - "summary": "Increases the count of one or more items by increment", + "summary": "Adds an item to a Top-k sketch. Multiple items can be added at the same time.", "complexity": "O(n * k) where n is the number of items and k is the depth", "arguments": [ { @@ -737,8 +737,8 @@ "group": "topk" }, "TOPK.LIST": { - "summary": "Return full list of items in Top K list", - "complexity": "O(k) where k is the value of top-k", + "summary": "Return the full list of items in Top-K sketch.", + "complexity": "O(k*log(k)) where k is the value of top-k", "arguments": [ { "name": "key", @@ -798,7 +798,7 @@ }, "TDIGEST.ADD": { "summary": "Adds one or more observations to a t-digest sketch", - "complexity": "O(N) , where N is the number of samples to add", + "complexity": "O(N), where N is the number of samples to add", "arguments": [ { "name": "key", @@ -889,7 +889,7 @@ }, "TDIGEST.QUANTILE": { "summary": "Returns, for each input fraction, an estimation of the value (floating point) that is smaller than the given fraction of observations", - "complexity": "O(1)", + "complexity": "O(N) where N is the number of quantiles specified.", "arguments": [ { "name": "key", @@ -943,7 +943,7 @@ }, "TDIGEST.RANK": { "summary": "Returns, for each input value (floating-point), the estimated rank of the value (the number of observations in the sketch that are smaller than the value + half the number of observations that are equal to the value)", - "complexity": "O(1)", + "complexity": "O(N) where N is the number of values specified.", "arguments": [ { "name": "key", @@ -960,7 +960,7 @@ }, "TDIGEST.REVRANK": { "summary": "Returns, for each input value (floating-point), the estimated reverse rank of the value (the number of observations in the sketch that are larger than the value + half the number of observations that are equal to the value)", - "complexity": "O(1)", + "complexity": "O(N) where N is the number of values specified.", "arguments": [ { "name": "key", @@ -977,7 +977,7 @@ }, "TDIGEST.BYRANK": { "summary": "Returns, for each input rank, an estimation of the value (floating-point) with that rank", - "complexity": "O(1)", + "complexity": "O(N) where N is the number of ranks specified", "arguments": [ { "name": "key", @@ -994,7 +994,7 @@ }, "TDIGEST.BYREVRANK": { "summary": "Returns, for each input reverse rank, an estimation of the value (floating-point) with that reverse rank", - "complexity": "O(1)", + "complexity": "O(N) where N is the number of reverse ranks specified.", "arguments": [ { "name": "key", diff --git a/data/commands_redisearch.json b/data/commands_redisearch.json index d81d5bec28..116a196795 100644 --- a/data/commands_redisearch.json +++ b/data/commands_redisearch.json @@ -1,22 +1,22 @@ { "FT.CREATE": { "summary": "Creates an index with the given spec", - "complexity": - "O(K) at creation where K is the number of fields, O(N) if scanning the keyspace is triggered, where N is the number of keys in the keyspace", - "history": [ - [ - "2.0.0", - "Added `PAYLOAD_FIELD` argument for backward support of `FT.SEARCH` deprecated `WITHPAYLOADS` argument" - ], - [ - "2.0.0", - "Deprecated `PAYLOAD_FIELD` argument" - ] + "complexity": "O(K) at creation where K is the number of fields, O(N) if scanning the keyspace is triggered, where N is the number of keys in the keyspace", + "history": [ + [ + "2.0.0", + "Added `PAYLOAD_FIELD` argument for backward support of `FT.SEARCH` deprecated `WITHPAYLOADS` argument" ], + [ + "2.0.0", + "Deprecated `PAYLOAD_FIELD` argument" + ] + ], "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index." }, { "name": "data_type", @@ -24,17 +24,18 @@ "type": "oneof", "arguments": [ { - "name": "hash", - "type": "pure-token", - "token": "HASH" + "name": "hash", + "type": "pure-token", + "token": "HASH" }, { - "name": "json", - "type": "pure-token", - "token": "JSON" + "name": "json", + "type": "pure-token", + "token": "JSON" } ], - "optional": true + "optional": true, + "summary": "Specifies the type of data to index, such as HASH or JSON." }, { "name": "prefix", @@ -44,92 +45,106 @@ { "name": "count", "type": "integer", - "token":"PREFIX" + "token": "PREFIX" }, { "name": "prefix", "type": "string", - "multiple": true + "multiple": true, + "summary": "Filters indexed documents to include only keys that start with the specified prefix." } - ] + ], + "summary": "Filters indexed documents to include only keys that start with the specified prefix." }, { "name": "filter", "type": "string", "optional": true, - "token": "FILTER" + "token": "FILTER", + "summary": "Applies a numeric range filter to restrict results to documents with field values within the specified range." }, { "name": "default_lang", "type": "string", - "token":"LANGUAGE", - "optional": true + "token": "LANGUAGE", + "optional": true, + "summary": "Defines the default language for the index." }, { "name": "lang_attribute", "type": "string", - "token":"LANGUAGE_FIELD", - "optional": true + "token": "LANGUAGE_FIELD", + "optional": true, + "summary": "Specifies the attribute from which the language is determined." }, { "name": "default_score", "type": "double", - "token":"SCORE", - "optional": true + "token": "SCORE", + "optional": true, + "summary": "Sets the default score for documents in the index." }, { "name": "score_attribute", "type": "string", - "token":"SCORE_FIELD", - "optional": true + "token": "SCORE_FIELD", + "optional": true, + "summary": "Specifies the attribute from which the score is derived." }, { "name": "payload_attribute", "type": "string", - "token":"PAYLOAD_FIELD", - "optional": true + "token": "PAYLOAD_FIELD", + "optional": true, + "summary": "Defines the attribute used for payloads in the index." }, { - "name": "maxtextfields", - "type": "pure-token", - "token": "MAXTEXTFIELDS", - "optional": true + "name": "maxtextfields", + "type": "pure-token", + "token": "MAXTEXTFIELDS", + "optional": true, + "summary": "Increases the maximum number of text fields allowed in the schema." }, { "name": "seconds", "type": "double", - "token":"TEMPORARY", - "optional": true + "token": "TEMPORARY", + "optional": true, + "summary": "Specifies the duration (in seconds) for which the index remains active (temporary index)." }, { "name": "nooffsets", "type": "pure-token", "token": "NOOFFSETS", - "optional": true + "optional": true, + "summary": "Disables storage of term offsets for index entries." }, { "name": "nohl", "type": "pure-token", "token": "NOHL", - "optional": true + "optional": true, + "summary": "Disables support for highlighting in search results." }, { "name": "nofields", "type": "pure-token", "token": "NOFIELDS", - "optional": true + "optional": true, + "summary": "Omits returning fields from search results." }, { "name": "nofreqs", "type": "pure-token", "token": "NOFREQS", - "optional": true + "optional": true, + "summary": "Disables storage of term frequencies in the index." }, { "name": "stopwords", "type": "block", "optional": true, - "token":"STOPWORDS", + "token": "STOPWORDS", "arguments": [ { "name": "count", @@ -141,18 +156,21 @@ "multiple": true, "optional": true } - ] + ], + "summary": "Defines custom stop words for the index, which will be ignored during full-text search." }, { "name": "skipinitialscan", "type": "pure-token", "token": "SKIPINITIALSCAN", - "optional": true + "optional": true, + "summary": "Skips the initial scan of the database when creating the index." }, { "name": "schema", "type": "pure-token", - "token": "SCHEMA" + "token": "SCHEMA", + "summary": "Defines the fields in the index and their properties, such as type (`TEXT`, `TAG`, `NUMERIC`, etc.)." }, { "name": "field", @@ -242,7 +260,8 @@ "token": "NOINDEX", "optional": true } - ] + ], + "summary": "Specifies a field in the index schema with its properties." } ], "since": "1.0.0", @@ -254,7 +273,8 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." } ], "since": "1.0.0", @@ -266,18 +286,21 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "query", - "type": "string" + "type": "string", + "summary": "Specifies the query to profile and analyze performance." }, { "name": "dialect", "type": "integer", "optional": true, "token": "DIALECT", - "since": "2.4.3" + "since": "2.4.3", + "summary": "Sets the query dialect version to be used." } ], "since": "1.0.0", @@ -289,18 +312,21 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "query", - "type": "string" + "type": "string", + "summary": "Specifies the query to profile and analyze performance." }, { "name": "dialect", "type": "integer", "optional": true, "token": "DIALECT", - "since": "2.4.3" + "since": "2.4.3", + "summary": "Sets the query dialect version to be used." } ], "since": "1.0.0", @@ -312,18 +338,21 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "skipinitialscan", "type": "pure-token", "token": "SKIPINITIALSCAN", - "optional": true + "optional": true, + "summary": "Skips the initial scan of the database when creating the index." }, { "name": "schema", "type": "pure-token", - "token": "SCHEMA" + "token": "SCHEMA", + "summary": "Defines the fields in the index and their properties, such as type (`TEXT`, `TAG`, `NUMERIC`, etc.)." }, { "name": "add", @@ -332,7 +361,8 @@ }, { "name": "field", - "type": "string" + "type": "string", + "summary": "Specifies a field in the index schema with its properties." }, { "name": "options", @@ -348,7 +378,8 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "delete docs", @@ -357,7 +388,7 @@ { "name": "delete docs", "type": "pure-token", - "token":"DD" + "token": "DD" } ], "optional": true @@ -376,7 +407,8 @@ }, { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." } ], "since": "1.0.0", @@ -392,7 +424,8 @@ }, { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." } ], "since": "1.0.0", @@ -416,7 +449,8 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "field_name", @@ -431,8 +465,8 @@ "complexity": "O(1)", "history": [ [ - "2.0.0", - "Deprecated `PAYLOAD` argument" + "2.0.0", + "Deprecated `PAYLOAD` argument" ] ], "arguments": [ @@ -455,16 +489,16 @@ { "name": "incr", "type": "pure-token", - "token":"INCR" + "token": "INCR" } ], "optional": true }, { - "name": "payload", - "token": "PAYLOAD", - "type": "string", - "optional": true + "name": "payload", + "token": "PAYLOAD", + "type": "string", + "optional": true } ], "since": "1.0.0", @@ -475,8 +509,8 @@ "complexity": "O(1)", "history": [ [ - "2.0.0", - "Deprecated `WITHPAYLOADS` argument" + "2.0.0", + "Deprecated `WITHPAYLOADS` argument" ] ], "arguments": [ @@ -486,7 +520,8 @@ }, { "name": "prefix", - "type": "string" + "type": "string", + "summary": "Filters indexed documents to include only keys that start with the specified prefix." }, { "name": "fuzzy", @@ -498,7 +533,8 @@ "name": "withscores", "type": "pure-token", "token": "WITHSCORES", - "optional": true + "optional": true, + "summary": "Includes the relative scores of each document in the search results." }, { "name": "withpayloads", @@ -507,10 +543,10 @@ "optional": true }, { - "name": "max", - "token": "MAX", - "type": "integer", - "optional": true + "name": "max", + "token": "MAX", + "type": "integer", + "optional": true } ], "since": "1.0.0", @@ -550,7 +586,8 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "synonym_group_id", @@ -560,7 +597,8 @@ "name": "skipinitialscan", "type": "pure-token", "token": "SKIPINITIALSCAN", - "optional": true + "optional": true, + "summary": "Skips the initial scan of the database when creating the index." }, { "name": "term", @@ -577,7 +615,8 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." } ], "since": "1.2.0", @@ -589,17 +628,19 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "query", - "type": "string" + "type": "string", + "summary": "Specifies the query to profile and analyze performance." }, { - "name": "distance", - "token": "DISTANCE", - "type": "integer", - "optional": true + "name": "distance", + "token": "DISTANCE", + "type": "integer", + "optional": true }, { "name": "terms", @@ -640,7 +681,8 @@ "type": "integer", "optional": true, "token": "DIALECT", - "since": "2.4.3" + "since": "2.4.3", + "summary": "Sets the query dialect version to be used." } ], "since": "1.4.0", @@ -701,6 +743,8 @@ "FT.CONFIG SET": { "summary": "Sets runtime configuration options", "complexity": "O(1)", + "deprecated_since": "8.0.0", + "replaced_by": "CONFIG SET", "arguments": [ { "name": "option", @@ -717,6 +761,8 @@ "FT.CONFIG GET": { "summary": "Retrieves runtime configuration options", "complexity": "O(1)", + "deprecated_since": "8.0.0", + "replaced_by": "CONFIG GET", "arguments": [ { "name": "option", @@ -729,6 +775,8 @@ "FT.CONFIG HELP": { "summary": "Help description of runtime configuration options", "complexity": "O(1)", + "deprecated_since": "8.0.0", + "replaced_by": "CONFIG HELP", "arguments": [ { "name": "option", @@ -743,30 +791,34 @@ "complexity": "O(N)", "history": [ [ - "2.0.0", - "Deprecated `WITHPAYLOADS` and `PAYLOAD` arguments" + "2.0.0", + "Deprecated `WITHPAYLOADS` and `PAYLOAD` arguments" ] ], "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "query", - "type": "string" + "type": "string", + "summary": "Specifies the query to profile and analyze performance." }, { "name": "nocontent", "type": "pure-token", "token": "NOCONTENT", - "optional": true + "optional": true, + "summary": "Returns only the document IDs in the search results, excluding the content." }, { "name": "verbatim", "type": "pure-token", - "token":"VERBATIM", - "optional": true + "token": "VERBATIM", + "optional": true, + "summary": "Searches using the exact query terms without stemming or query expansion." }, { "name": "nostopwords", @@ -778,7 +830,8 @@ "name": "withscores", "type": "pure-token", "token": "WITHSCORES", - "optional": true + "optional": true, + "summary": "Includes the relative scores of each document in the search results." }, { "name": "withpayloads", @@ -790,7 +843,8 @@ "name": "withsortkeys", "type": "pure-token", "token": "WITHSORTKEYS", - "optional": true + "optional": true, + "summary": "Returns the sorting key value alongside the document ID." }, { "name": "filter", @@ -801,7 +855,7 @@ { "name": "numeric_field", "type": "string", - "token":"FILTER" + "token": "FILTER" }, { "name": "min", @@ -811,7 +865,8 @@ "name": "max", "type": "double" } - ] + ], + "summary": "Applies a numeric range filter to restrict results to documents with field values within the specified range." }, { "name": "geo_filter", @@ -822,7 +877,7 @@ { "name": "geo_field", "type": "string", - "token":"GEOFILTER" + "token": "GEOFILTER" }, { "name": "lon", @@ -872,7 +927,7 @@ { "name": "count", "type": "string", - "token":"INKEYS" + "token": "INKEYS" }, { "name": "key", @@ -889,12 +944,13 @@ { "name": "count", "type": "string", - "token":"INFIELDS" + "token": "INFIELDS" }, { "name": "field", "type": "string", - "multiple": true + "multiple": true, + "summary": "Specifies a field in the index schema with its properties." } ] }, @@ -906,7 +962,7 @@ { "name": "count", "type": "string", - "token":"RETURN" + "token": "RETURN" }, { "name": "identifiers", @@ -945,34 +1001,36 @@ { "name": "count", "type": "string", - "token":"FIELDS" + "token": "FIELDS" }, { "name": "field", "type": "string", - "multiple": true + "multiple": true, + "summary": "Specifies a field in the index schema with its properties." } ] }, { "name": "num", "type": "integer", - "token":"FRAGS", + "token": "FRAGS", "optional": true }, { "name": "fragsize", "type": "integer", - "token":"LEN", + "token": "LEN", "optional": true }, { "name": "separator", "type": "string", - "token":"SEPARATOR", + "token": "SEPARATOR", "optional": true } - ] + ], + "summary": "Splits a field into contextual fragments surrounding the found terms, Note that summarize for JSON documents is not currently supported." }, { "name": "highlight", @@ -982,7 +1040,8 @@ { "name": "highlight", "type": "pure-token", - "token": "HIGHLIGHT" + "token": "HIGHLIGHT", + "summary": "Highlights terms in the search results, with customizable tags for emphasis." }, { "name": "fields", @@ -992,12 +1051,13 @@ { "name": "count", "type": "string", - "token":"FIELDS" + "token": "FIELDS" }, { "name": "field", "type": "string", - "multiple": true + "multiple": true, + "summary": "Specifies a field in the index schema with its properties." } ] }, @@ -1021,19 +1081,21 @@ } ] } - ] + ], + "summary": "Highlights terms in the search results, with customizable tags for emphasis. Note that highlight for JSON documents is not currently supported." }, { "name": "slop", "type": "integer", "optional": true, - "token":"SLOP" + "token": "SLOP" }, { "name": "timeout", "type": "integer", "optional": true, - "token":"TIMEOUT" + "token": "TIMEOUT", + "summary": "Sets a time limit for query execution, specified in milliseconds." }, { "name": "inorder", @@ -1045,19 +1107,20 @@ "name": "language", "type": "string", "optional": true, - "token":"LANGUAGE" + "token": "LANGUAGE", + "summary": "Specifies the default language for full-text search, influencing stemming and stop-word behavior." }, { "name": "expander", "type": "string", "optional": true, - "token":"EXPANDER" + "token": "EXPANDER" }, { "name": "scorer", "type": "string", "optional": true, - "token":"SCORER" + "token": "SCORER" }, { "name": "explainscore", @@ -1069,7 +1132,7 @@ "name": "payload", "type": "string", "optional": true, - "token":"PAYLOAD" + "token": "PAYLOAD" }, { "name": "sortby", @@ -1079,7 +1142,7 @@ { "name": "sortby", "type": "string", - "token":"SORTBY" + "token": "SORTBY" }, { "name": "order", @@ -1124,7 +1187,7 @@ "name": "params", "type": "block", "optional": true, - "arguments": [ + "arguments": [ { "name": "params", "type": "pure-token", @@ -1156,30 +1219,33 @@ "type": "integer", "optional": true, "token": "DIALECT", - "since": "2.4.3" + "since": "2.4.3", + "summary": "Sets the query dialect version to be used." } ], "since": "1.0.0", "group": "search" }, - "FT.AGGREGATE": { "summary": "Run a search query on an index and perform aggregate transformations on the results", "complexity": "O(1)", "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "query", - "type": "string" + "type": "string", + "summary": "Specifies the query to profile and analyze performance." }, { "name": "verbatim", "type": "pure-token", "token": "VERBATIM", - "optional": true + "optional": true, + "summary": "Searches using the exact query terms without stemming or synonym expansion." }, { "name": "load", @@ -1194,7 +1260,8 @@ { "name": "field", "type": "string", - "multiple": true + "multiple": true, + "summary": "Specifies a field in the index schema with its properties." } ] }, @@ -1202,7 +1269,8 @@ "name": "timeout", "type": "integer", "optional": true, - "token": "TIMEOUT" + "token": "TIMEOUT", + "summary": "Sets a time limit for query execution, specified in milliseconds." }, { "name": "loadall", @@ -1232,10 +1300,76 @@ "optional": true, "multiple": true, "arguments": [ + { + "name": "reduce", + "token": "REDUCE", + "type": "pure-token" + }, { "name": "function", - "type": "string", - "token": "REDUCE" + "type": "oneof", + "arguments": [ + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "count_distinct", + "type": "pure-token", + "token": "COUNT_DISTINCT" + }, + { + "name": "count_distinctish", + "type": "pure-token", + "token": "COUNT_DISTINCTISH" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "stddev", + "type": "pure-token", + "token": "STDDEV" + }, + { + "name": "quantile", + "type": "pure-token", + "token": "QUANTILE" + }, + { + "name": "tolist", + "type": "pure-token", + "token": "TOLIST" + }, + { + "name": "first_value", + "type": "pure-token", + "token": "FIRST_VALUE" + }, + { + "name": "random_sample", + "type": "pure-token", + "token": "RANDOM_SAMPLE" + } + ] }, { "name": "nargs", @@ -1252,9 +1386,11 @@ "token": "AS", "optional": true } - ] + ], + "summary": "Applies a reducer function, like `SUM` or `COUNT`, on grouped results." } - ] + ], + "summary": "Groups results by specified fields, often used for aggregations." }, { "name": "sortby", @@ -1310,160 +1446,508 @@ "arguments": [ { "name": "expression", - "type": "string", - "token": "APPLY" - }, - { - "name": "name", - "type": "string", - "token": "AS" - } - ] - }, - { - "name": "limit", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "limit", - "type": "pure-token", - "token": "LIMIT" - }, - { - "name": "offset", - "type": "integer" - }, - { - "name": "num", - "type": "integer" - } - ] - }, - { - "name": "filter", - "type": "string", - "optional": true, - "token": "FILTER" - }, - { - "name": "cursor", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "withcursor", - "type": "pure-token", - "token": "WITHCURSOR" - }, - { - "name": "read_size", - "type": "integer", - "optional": true, - "token": "COUNT" - }, - { - "name": "idle_time", - "type": "integer", - "optional": true, - "token": "MAXIDLE" - } - ] - }, - { - "name": "params", - "type": "block", - "optional": true, - "arguments": [ - { - "name": "params", - "type": "pure-token", - "token": "PARAMS" - }, - { - "name": "nargs", - "type": "integer" - }, - { - "name": "values", "type": "block", - "multiple": true, + "expression": true, + "token": "APPLY", "arguments": [ { - "name": "name", - "type": "string" + "name": "exists", + "token": "exists", + "type": "function", + "summary": "Checks whether a field exists in a document.", + "arguments": [ + { + "token": "s" + } + ] }, { - "name": "value", - "type": "string" - } - ] - } + "name": "log", + "token": "log", + "type": "function", + "summary": "Return the logarithm of a number, property or subexpression", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "abs", + "token": "abs", + "type": "function", + "summary": "Return the absolute value of a numeric expression", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "ceil", + "token": "ceil", + "type": "function", + "summary": "Round to the smallest integer not less than x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "floor", + "token": "floor", + "type": "function", + "summary": "Round to largest integer not greater than x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "log2", + "token": "log2", + "type": "function", + "summary": "Return the logarithm of x to base 2", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "exp", + "token": "exp", + "type": "function", + "summary": "Return the exponent of x, e.g., e^x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "sqrt", + "token": "sqrt", + "type": "function", + "summary": "Return the square root of x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "upper", + "token": "upper", + "type": "function", + "summary": "Return the uppercase conversion of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "lower", + "token": "lower", + "type": "function", + "summary": "Return the lowercase conversion of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "startswith", + "token": "startswith", + "type": "function", + "summary": "Return 1 if s2 is the prefix of s1, 0 otherwise.", + "arguments": [ + { + "token": "s1" + }, + { + "token": "s2" + } + ] + }, + { + "name": "contains", + "token": "contains", + "type": "function", + "summary": "Return the number of occurrences of s2 in s1, 0 otherwise. If s2 is an empty string, return length(s1) + 1.", + "arguments": [ + { + "token": "s1" + }, + { + "token": "s2" + } + ] + }, + { + "name": "strlen", + "token": "strlen", + "type": "function", + "summary": "Return the length of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "substr", + "token": "substr", + "type": "function", + "summary": "Return the substring of s, starting at offset and having count characters. If offset is negative, it represents the distance from the end of the string. If count is -1, it means \"the rest of the string starting at offset\".", + "arguments": [ + { + "token": "s" + }, + { + "token": "offset" + }, + { + "token": "count" + } + ] + }, + { + "name": "format", + "token": "format", + "type": "function", + "summary": "Use the arguments following fmt to format a string. Currently the only format argument supported is %s and it applies to all types of arguments.", + "arguments": [ + { + "token": "fmt" + } + ] + }, + { + "name": "matched_terms", + "token": "matched_terms", + "type": "function", + "summary": "Return the query terms that matched for each record (up to 100), as a list. If a limit is specified, Redis will return the first N matches found, based on query order.", + "arguments": [ + { + "token": "max_terms=100", + "optional": true + } + ] + }, + { + "name": "split", + "token": "split", + "type": "function", + "summary": "Split a string by any character in the string sep, and strip any characters in strip. If only s is specified, it is split by commas and spaces are stripped. The output is an array.", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "timefmt", + "token": "timefmt", + "type": "function", + "summary": "Return a formatted time string based on a numeric timestamp value x.", + "arguments": [ + { + "token": "x" + }, + { + "token": "fmt", + "optional": true + } + ] + }, + { + "name": "parsetime", + "token": "parsetime", + "type": "function", + "summary": "The opposite of timefmt() - parse a time format using a given format string", + "arguments": [ + { + "token": "timesharing" + }, + { + "token": "fmt", + "optional": true + } + ] + }, + { + "name": "day", + "token": "day", + "type": "function", + "summary": "Round a Unix timestamp to midnight (00:00) start of the current day.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "hour", + "token": "hour", + "type": "function", + "summary": "Round a Unix timestamp to the beginning of the current hour.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "minute", + "token": "minute", + "type": "function", + "summary": "Round a Unix timestamp to the beginning of the current minute.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "month", + "token": "month", + "type": "function", + "summary": "Round a unix timestamp to the beginning of the current month.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofweek", + "token": "dayofweek", + "type": "function", + "summary": "Convert a Unix timestamp to the day number (Sunday = 0).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofmonth", + "token": "dayofmonth", + "type": "function", + "summary": "Convert a Unix timestamp to the day of month number (1 .. 31).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofyear", + "token": "dayofyear", + "type": "function", + "summary": "Convert a Unix timestamp to the day of year number (0 .. 365).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "year", + "token": "year", + "type": "function", + "summary": "Convert a Unix timestamp to the current year (e.g. 2018).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "monthofyear", + "token": "monthofyear", + "type": "function", + "summary": "Convert a Unix timestamp to the current month (0 .. 11).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "geodistance", + "token": "geodistance", + "type": "function", + "summary": "Return distance in meters.", + "arguments": [ + { + "token": "" + } + ] + } + ] + }, + { + "name": "name", + "type": "string", + "token": "AS" + } ] }, { - "name": "dialect", - "type": "integer", + "name": "limit", + "type": "block", "optional": true, - "token": "DIALECT", - "since": "2.4.3" - } - ], - "since": "1.1.0", - "group": "search" - }, - - "FT.PROFILE": { - "summary": "Performs a `FT.SEARCH` or `FT.AGGREGATE` command and collects performance information", - "complexity": "O(N)", - "arguments": [ - { - "name": "index", - "type": "string" - }, - { - "name": "querytype", - "type": "oneof", "arguments": [ { - "name": "search", + "name": "limit", "type": "pure-token", - "token": "SEARCH" + "token": "LIMIT" }, { - "name": "aggregate", - "type": "pure-token", - "token": "AGGREGATE" + "name": "offset", + "type": "integer" + }, + { + "name": "num", + "type": "integer" } ] }, { - "name": "limited", - "type": "pure-token", - "token": "LIMITED", - "optional": true + "name": "filter", + "type": "string", + "optional": true, + "expression": true, + "token": "FILTER", + "summary": "Applies a numeric range filter to restrict results to documents with field values within the specified range." }, { - "name": "queryword", - "type": "pure-token", - "token": "QUERY" + "name": "cursor", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "withcursor", + "type": "pure-token", + "token": "WITHCURSOR" + }, + { + "name": "read_size", + "type": "integer", + "optional": true, + "token": "COUNT" + }, + { + "name": "idle_time", + "type": "integer", + "optional": true, + "token": "MAXIDLE" + } + ] }, { - "name": "query", - "type": "string" - } - ], + "name": "params", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "params", + "type": "pure-token", + "token": "PARAMS" + }, + { + "name": "nargs", + "type": "integer" + }, + { + "name": "values", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + } + ] + }, + { + "name": "dialect", + "type": "integer", + "optional": true, + "token": "DIALECT", + "since": "2.4.3", + "summary": "Sets the query dialect version to be used." + } + ], + "since": "1.1.0", + "group": "search" + }, + "FT.PROFILE": { + "summary": "Performs a `FT.SEARCH` or `FT.AGGREGATE` command and collects performance information", + "complexity": "O(N)", + "arguments": [ + { + "name": "index", + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." + }, + { + "name": "querytype", + "type": "oneof", + "arguments": [ + { + "name": "search", + "type": "pure-token", + "token": "SEARCH" + }, + { + "name": "aggregate", + "type": "pure-token", + "token": "AGGREGATE" + } + ] + }, + { + "name": "limited", + "type": "pure-token", + "token": "LIMITED", + "optional": true, + "summary": "Restricts profiling to the initial phase of the query execution." + }, + { + "name": "queryword", + "type": "pure-token", + "token": "QUERY" + }, + { + "name": "query", + "type": "string", + "summary": "Specifies the query to profile and analyze performance." + } + ], "since": "2.2.0", "group": "search" }, - "FT.CURSOR READ": { "summary": "Reads from a cursor", "complexity": "O(1)", "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "cursor_id", @@ -1473,9 +1957,12 @@ "name": "read size", "type": "integer", "optional": true, - "token":"COUNT" + "token": "COUNT" } ], + "command_tips": [ + "REQUEST_POLICY:SPECIAL" + ], "since": "1.1.0", "group": "search" }, @@ -1485,14 +1972,892 @@ "arguments": [ { "name": "index", - "type": "string" + "type": "string", + "summary": "Specifies the name of the index. The index must be created using `FT.CREATE`." }, { "name": "cursor_id", "type": "integer" } ], + "command_tips": [ + "REQUEST_POLICY:SPECIAL" + ], "since": "1.1.0", "group": "search" + }, + "FT.HYBRID": { + "summary": "Performs hybrid search combining text search and vector similarity search", + "complexity": "O(N+M) where N is the complexity of the text search and M is the complexity of the vector search", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "search_clause", + "type": "block", + "arguments": [ + { + "name": "search", + "type": "pure-token", + "token": "SEARCH" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "scorer", + "type": "string", + "token": "SCORER", + "optional": true + }, + { + "name": "yield_score_as", + "type": "string", + "token": "YIELD_SCORE_AS", + "optional": true + } + ] + }, + { + "name": "vsim_clause", + "type": "block", + "arguments": [ + { + "name": "vsim", + "type": "pure-token", + "token": "VSIM" + }, + { + "name": "field", + "type": "string" + }, + { + "name": "vector", + "type": "string" + }, + { + "name": "vector_query_type", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "knn_clause", + "type": "block", + "arguments": [ + { + "name": "knn", + "type": "pure-token", + "token": "KNN" + }, + { + "name": "count", + "type": "integer" + }, + { + "name": "k", + "type": "integer", + "token": "K" + }, + { + "name": "ef_runtime", + "type": "integer", + "token": "EF_RUNTIME", + "optional": true + }, + { + "name": "yield_score_as", + "type": "string", + "token": "YIELD_SCORE_AS", + "optional": true + } + ] + }, + { + "name": "range_clause", + "type": "block", + "arguments": [ + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "integer" + }, + { + "name": "radius", + "type": "double", + "token": "RADIUS" + }, + { + "name": "epsilon", + "type": "double", + "token": "EPSILON", + "optional": true + }, + { + "name": "yield_score_as", + "type": "string", + "token": "YIELD_SCORE_AS", + "optional": true + } + ] + } + ] + }, + { + "name": "filter", + "type": "string", + "token": "FILTER", + "expression": true, + "optional": true + } + ] + }, + { + "name": "combine", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "combine", + "type": "pure-token", + "token": "COMBINE" + }, + { + "name": "method", + "type": "oneof", + "arguments": [ + { + "name": "rrf_method", + "type": "block", + "arguments": [ + { + "name": "rrf", + "type": "pure-token", + "token": "RRF" + }, + { + "name": "count", + "type": "integer" + }, + { + "name": "constant", + "type": "double", + "token": "CONSTANT", + "optional": true + }, + { + "name": "window", + "type": "integer", + "token": "WINDOW", + "optional": true + }, + { + "name": "yield_score_as", + "type": "string", + "token": "YIELD_SCORE_AS", + "optional": true + } + ] + }, + { + "name": "linear_method", + "type": "block", + "arguments": [ + { + "name": "linear", + "type": "pure-token", + "token": "LINEAR" + }, + { + "name": "count", + "type": "integer" + }, + { + "name": "weights", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "alpha", + "type": "double", + "token": "ALPHA" + }, + { + "name": "beta", + "type": "double", + "token": "BETA" + } + ] + }, + { + "name": "window", + "type": "integer", + "token": "WINDOW", + "optional": true + }, + { + "name": "yield_score_as", + "type": "string", + "token": "YIELD_SCORE_AS", + "optional": true + } + ] + } + ] + } + ] + }, + { + "name": "limit", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "limit", + "type": "pure-token", + "token": "LIMIT" + }, + { + "name": "offset", + "type": "integer" + }, + { + "name": "num", + "type": "integer" + } + ] + }, + { + "name": "sorting", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "sortby", + "type": "block", + "arguments": [ + { + "name": "sortby", + "type": "string", + "token": "SORTBY" + }, + { + "name": "order", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "asc", + "type": "pure-token", + "token": "ASC" + }, + { + "name": "desc", + "type": "pure-token", + "token": "DESC" + } + ] + } + ] + }, + { + "name": "nosort", + "type": "pure-token", + "token": "NOSORT" + } + ] + }, + { + "name": "params", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "params", + "type": "pure-token", + "token": "PARAMS" + }, + { + "name": "nargs", + "type": "integer" + }, + { + "name": "values", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + } + ] + }, + { + "name": "timeout", + "type": "integer", + "optional": true, + "token": "TIMEOUT" + }, + { + "name": "format", + "type": "string", + "optional": true, + "token": "FORMAT" + }, + { + "name": "load", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token": "LOAD" + }, + { + "name": "field", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "loadall", + "type": "pure-token", + "token": "LOAD *", + "optional": true + }, + { + "name": "groupby", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "groupby", + "type": "pure-token", + "token": "GROUPBY" + }, + { + "name": "nproperties", + "type": "integer" + }, + { + "name": "property", + "type": "string", + "multiple": true + }, + { + "name": "reduce", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "reduce", + "type": "pure-token", + "token": "REDUCE" + }, + { + "name": "function", + "type": "oneof", + "arguments": [ + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "count_distinct", + "type": "pure-token", + "token": "COUNT_DISTINCT" + }, + { + "name": "count_distinctish", + "type": "pure-token", + "token": "COUNT_DISTINCTISH" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "stddev", + "type": "pure-token", + "token": "STDDEV" + }, + { + "name": "quantile", + "type": "pure-token", + "token": "QUANTILE" + }, + { + "name": "tolist", + "type": "pure-token", + "token": "TOLIST" + }, + { + "name": "first_value", + "type": "pure-token", + "token": "FIRST_VALUE" + }, + { + "name": "random_sample", + "type": "pure-token", + "token": "RANDOM_SAMPLE" + } + ] + }, + { + "name": "nargs", + "type": "integer" + }, + { + "name": "arg", + "type": "string", + "multiple": true + }, + { + "name": "name", + "type": "string", + "token": "AS", + "optional": true + } + ] + } + ] + }, + { + "name": "apply", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "expression", + "type": "block", + "expression": true, + "token": "APPLY", + "arguments": [ + { + "name": "exists", + "token": "exists", + "type": "function", + "summary": "Checks whether a field exists in a document.", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "log", + "token": "log", + "type": "function", + "summary": "Return the logarithm of a number, property or subexpression", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "abs", + "token": "abs", + "type": "function", + "summary": "Return the absolute value of a numeric expression", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "ceil", + "token": "ceil", + "type": "function", + "summary": "Round to the smallest integer not less than x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "floor", + "token": "floor", + "type": "function", + "summary": "Round to largest integer not greater than x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "log2", + "token": "log2", + "type": "function", + "summary": "Return the logarithm of x to base 2", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "exp", + "token": "exp", + "type": "function", + "summary": "Return the exponent of x, e.g., e^x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "sqrt", + "token": "sqrt", + "type": "function", + "summary": "Return the square root of x", + "arguments": [ + { + "token": "x" + } + ] + }, + { + "name": "upper", + "token": "upper", + "type": "function", + "summary": "Return the uppercase conversion of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "lower", + "token": "lower", + "type": "function", + "summary": "Return the lowercase conversion of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "startswith", + "token": "startswith", + "type": "function", + "summary": "Return 1 if s2 is the prefix of s1, 0 otherwise.", + "arguments": [ + { + "token": "s1" + }, + { + "token": "s2" + } + ] + }, + { + "name": "contains", + "token": "contains", + "type": "function", + "summary": "Return the number of occurrences of s2 in s1, 0 otherwise. If s2 is an empty string, return length(s1) + 1.", + "arguments": [ + { + "token": "s1" + }, + { + "token": "s2" + } + ] + }, + { + "name": "strlen", + "token": "strlen", + "type": "function", + "summary": "Return the length of s", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "substr", + "token": "substr", + "type": "function", + "summary": "Return the substring of s, starting at offset and having count characters. If offset is negative, it represents the distance from the end of the string. If count is -1, it means \"the rest of the string starting at offset\".", + "arguments": [ + { + "token": "s" + }, + { + "token": "offset" + }, + { + "token": "count" + } + ] + }, + { + "name": "format", + "token": "format", + "type": "function", + "summary": "Use the arguments following fmt to format a string. Currently the only format argument supported is %s and it applies to all types of arguments.", + "arguments": [ + { + "token": "fmt" + } + ] + }, + { + "name": "matched_terms", + "token": "matched_terms", + "type": "function", + "summary": "Return the query terms that matched for each record (up to 100), as a list. If a limit is specified, Redis will return the first N matches found, based on query order.", + "arguments": [ + { + "token": "max_terms=100", + "optional": true + } + ] + }, + { + "name": "split", + "token": "split", + "type": "function", + "summary": "Split a string by any character in the string sep, and strip any characters in strip. If only s is specified, it is split by commas and spaces are stripped. The output is an array.", + "arguments": [ + { + "token": "s" + } + ] + }, + { + "name": "timefmt", + "token": "timefmt", + "type": "function", + "summary": "Return a formatted time string based on a numeric timestamp value x.", + "arguments": [ + { + "token": "x" + }, + { + "token": "fmt", + "optional": true + } + ] + }, + { + "name": "parsetime", + "token": "parsetime", + "type": "function", + "summary": "The opposite of timefmt() - parse a time format using a given format string", + "arguments": [ + { + "token": "timesharing" + }, + { + "token": "fmt", + "optional": true + } + ] + }, + { + "name": "day", + "token": "day", + "type": "function", + "summary": "Round a Unix timestamp to midnight (00:00) start of the current day.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "hour", + "token": "hour", + "type": "function", + "summary": "Round a Unix timestamp to the beginning of the current hour.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "minute", + "token": "minute", + "type": "function", + "summary": "Round a Unix timestamp to the beginning of the current minute.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "month", + "token": "month", + "type": "function", + "summary": "Round a unix timestamp to the beginning of the current month.", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofweek", + "token": "dayofweek", + "type": "function", + "summary": "Convert a Unix timestamp to the day number (Sunday = 0).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofmonth", + "token": "dayofmonth", + "type": "function", + "summary": "Convert a Unix timestamp to the day of month number (1 .. 31).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "dayofyear", + "token": "dayofyear", + "type": "function", + "summary": "Convert a Unix timestamp to the day of year number (0 .. 365).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "year", + "token": "year", + "type": "function", + "summary": "Convert a Unix timestamp to the current year (e.g. 2018).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "monthofyear", + "token": "monthofyear", + "type": "function", + "summary": "Convert a Unix timestamp to the current month (0 .. 11).", + "arguments": [ + { + "token": "timestamp" + } + ] + }, + { + "name": "geodistance", + "token": "geodistance", + "type": "function", + "summary": "Return distance in meters.", + "arguments": [ + { + "token": "" + } + ] + } + ] + }, + { + "name": "name", + "type": "string", + "token": "AS" + } + ] + }, + { + "name": "filter", + "type": "block", + "optional": true, + "token": "FILTER", + "arguments": [ + { + "name": "count", + "type": "integer" + }, + { + "name": "filter_expression", + "type": "string", + "expression": true + }, + { + "name": "policy", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "adhoc", + "type": "pure-token", + "token": "ADHOC" + }, + { + "name": "batches", + "type": "pure-token", + "token": "BATCHES" + } + ], + "token": "POLICY" + }, + { + "name": "batch_size_value", + "type": "integer", + "token": "BATCH_SIZE", + "optional": true + } + ] + } + ], + "since": "8.4.4", + "group": "search" } -} +} \ No newline at end of file diff --git a/data/commands_redistimeseries.json b/data/commands_redistimeseries.json index 7afe5a3eca..edd317e6dc 100644 --- a/data/commands_redistimeseries.json +++ b/data/commands_redistimeseries.json @@ -523,6 +523,18 @@ "type": "pure-token", "token": "TWA", "since": "1.8.0" + }, + { + "name": "countnan", + "type": "pure-token", + "token": "COUNTNAN", + "since": "8.6.0" + }, + { + "name": "countall", + "type": "pure-token", + "token": "COUNTALL", + "since": "8.6.0" } ] }, @@ -692,6 +704,18 @@ "type": "pure-token", "token": "TWA", "since": "1.8.0" + }, + { + "name": "countnan", + "type": "pure-token", + "token": "COUNTNAN", + "since": "8.6.0" + }, + { + "name": "countall", + "type": "pure-token", + "token": "COUNTALL", + "since": "8.6.0" } ] }, @@ -855,6 +879,18 @@ "type": "pure-token", "token": "TWA", "since": "1.8.0" + }, + { + "name": "countnan", + "type": "pure-token", + "token": "COUNTNAN", + "since": "8.6.0" + }, + { + "name": "countall", + "type": "pure-token", + "token": "COUNTALL", + "since": "8.6.0" } ] }, @@ -864,9 +900,41 @@ }, { "name": "buckettimestamp", - "type": "pure-token", + "type": "oneof", "token": "BUCKETTIMESTAMP", "optional": true, + "arguments": [ + { + "name": "-", + "type": "pure-token", + "token": "-" + }, + { + "name": "start", + "type": "pure-token", + "token": "start" + }, + { + "name": "+", + "type": "pure-token", + "token": "+" + }, + { + "name": "end", + "type": "pure-token", + "token": "end" + }, + { + "name": "~", + "type": "pure-token", + "token": "~" + }, + { + "name": "mid", + "type": "pure-token", + "token": "mid" + } + ], "since": "1.8.0" }, { @@ -1042,6 +1110,18 @@ "type": "pure-token", "token": "TWA", "since": "1.8.0" + }, + { + "name": "countnan", + "type": "pure-token", + "token": "COUNTNAN", + "since": "8.6.0" + }, + { + "name": "countall", + "type": "pure-token", + "token": "COUNTALL", + "since": "8.6.0" } ] }, @@ -1139,9 +1219,10 @@ "type": "string" }, { - "name": "LATEST", - "type": "string", + "name": "latest", + "type": "pure-token", "optional": true, + "token": "LATEST", "since": "1.8.0" }, { @@ -1286,6 +1367,18 @@ "type": "pure-token", "token": "TWA", "since": "1.8.0" + }, + { + "name": "countnan", + "type": "pure-token", + "token": "COUNTNAN", + "since": "8.6.0" + }, + { + "name": "countall", + "type": "pure-token", + "token": "COUNTALL", + "since": "8.6.0" } ] }, @@ -1366,7 +1459,7 @@ ] } ], - "group": "timeseries" + "group": "timeseries" }, "TS.GET": { "summary": "Get the sample with the highest timestamp from a given time series", @@ -1516,4 +1609,4 @@ "since": "1.0.0", "group": "timeseries" } -} +} \ No newline at end of file From da9b3dd46cf17a9ca2eba2035cda2d8a5f415b48 Mon Sep 17 00:00:00 2001 From: "David W. Dougherty" Date: Fri, 23 Jan 2026 14:14:51 -0800 Subject: [PATCH 3/3] Add links to 8.6 conf. files --- content/operate/oss_and_stack/management/config.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/operate/oss_and_stack/management/config.md b/content/operate/oss_and_stack/management/config.md index bc75e9f802..1a390cc164 100644 --- a/content/operate/oss_and_stack/management/config.md +++ b/content/operate/oss_and_stack/management/config.md @@ -42,6 +42,7 @@ backslashed hexadecimal notation "\\xff". The list of configuration directives, along with comments describing their meaning and intended usage, is available in the self-documented sample files `redis.conf` and `redis-full.conf` files shipped with the Redis distributions. +* Configuration files for Redis 8.6: [redis-full.conf](https://raw.githubusercontent.com/redis/redis/8.6/redis-full.conf) and [redis.conf](https://raw.githubusercontent.com/redis/redis/8.6/redis.conf). * Configuration files for Redis 8.4: [redis-full.conf](https://raw.githubusercontent.com/redis/redis/8.4/redis-full.conf) and [redis.conf](https://raw.githubusercontent.com/redis/redis/8.4/redis.conf). * Configuration files for Redis 8.2: [redis-full.conf](https://raw.githubusercontent.com/redis/redis/8.2/redis-full.conf) and [redis.conf](https://raw.githubusercontent.com/redis/redis/8.2/redis.conf). * Configuration files for Redis 8.0: [redis-full.conf](https://raw.githubusercontent.com/redis/redis/8.0/redis-full.conf) and [redis.conf](https://raw.githubusercontent.com/redis/redis/8.0/redis.conf).