diff --git a/data/commands_redisbloom.json b/data/commands_redisbloom.json new file mode 100644 index 0000000000..c93975e334 --- /dev/null +++ b/data/commands_redisbloom.json @@ -0,0 +1,1024 @@ +{ + "BF.RESERVE": { + "summary": "Creates a new Bloom Filter", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "error_rate", + "type": "double" + }, + { + "name": "capacity", + "type": "integer" + }, + { + "name": "expansion", + "type": "integer", + "token": "EXPANSION", + "optional": true + }, + { + "name": "nonscaling", + "type": "pure-token", + "token": "NONSCALING", + "optional": true + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.ADD": { + "summary": "Adds an item to a Bloom Filter", + "complexity": "O(k), where k is the number of hash functions used by the last sub-filter", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.MADD": { + "summary": "Adds one or more items to a Bloom Filter. A filter will be created if it does not exist", + "complexity": "O(k * n), where k is the number of hash functions and n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.INSERT": { + "summary": "Adds one or more items to a Bloom Filter. A filter will be created if it does not exist", + "complexity": "O(k * n), where k is the number of hash functions and n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "capacity", + "type": "integer", + "token": "CAPACITY", + "optional": true + }, + { + "name": "error", + "type": "double", + "token": "ERROR", + "optional": true + }, + { + "name": "expansion", + "type": "integer", + "token": "EXPANSION", + "optional": true + }, + { + "name": "nocreate", + "token": "NOCREATE", + "type": "pure-token", + "optional": true + }, + { + "name": "nonscaling", + "token": "NONSCALING", + "type": "pure-token", + "optional": true + }, + { + "name": "items", + "token": "ITEMS", + "type": "pure-token" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.EXISTS": { + "summary": "Checks whether an item exists in a Bloom Filter", + "complexity": "O(k), where k is the number of hash functions used by the last sub-filter", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.MEXISTS": { + "summary": "Checks whether one or more items exist in a Bloom Filter", + "complexity": "O(k * n), where k is the number of hash functions and n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.SCANDUMP": { + "summary": "Begins an incremental save of the bloom filter", + "complexity": "O(n), where n is the capacity", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "iterator", + "type": "integer" + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.LOADCHUNK": { + "summary": "Restores a filter previously saved using SCANDUMP", + "complexity": "O(n), where n is the capacity", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "iterator", + "type": "integer" + }, + { + "name": "data", + "type": "string" + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.INFO": { + "summary": "Returns information about a Bloom Filter", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "single_value", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "capacity", + "type": "pure-token", + "token": "CAPACITY" + }, + { + "name": "size", + "type": "pure-token", + "token": "SIZE" + }, + { + "name": "filters", + "type": "pure-token", + "token": "FILTERS" + }, + { + "name": "items", + "type": "pure-token", + "token": "ITEMS" + }, + { + "name": "expansion", + "type": "pure-token", + "token": "EXPANSION" + } + ] + } + ], + "since": "1.0.0", + "group": "bf" + }, + "BF.CARD": { + "summary": "Returns the cardinality of a Bloom filter", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.4.4", + "group": "bf" + }, + "CF.RESERVE": { + "summary": "Creates a new Cuckoo Filter", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "capacity", + "type": "integer" + }, + { + "name": "bucketsize", + "type": "integer", + "token": "BUCKETSIZE", + "optional": true + }, + { + "name": "maxiterations", + "type": "integer", + "token": "MAXITERATIONS", + "optional": true + }, + { + "name": "expansion", + "type": "integer", + "token": "EXPANSION", + "optional": true + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.ADD": { + "summary": "Adds an item to a Cuckoo Filter", + "complexity": "O(k + i), where k is the number of sub-filters and i is maxIterations", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.ADDNX": { + "summary": "Adds an item to a Cuckoo Filter if the item did not exist previously.", + "complexity": "O(k + i), where k is the number of sub-filters and i is maxIterations", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.INSERT": { + "summary": "Adds one or more items to a Cuckoo Filter. A filter will be created if it does not exist", + "complexity": "O(n * (k + i)), where n is the number of items, k is the number of sub-filters and i is maxIterations", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "capacity", + "type": "integer", + "token": "CAPACITY", + "optional": true + }, + { + "name": "nocreate", + "token": "NOCREATE", + "type": "pure-token", + "optional": true + }, + { + "name": "items", + "token": "ITEMS", + "type": "pure-token" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.INSERTNX": { + "summary": "Adds one or more items to a Cuckoo Filter if the items did not exist previously. A filter will be created if it does not exist", + "complexity": "O(n * (k + i)), where n is the number of items, k is the number of sub-filters and i is maxIterations", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "capacity", + "type": "integer", + "token": "CAPACITY", + "optional": true + }, + { + "name": "nocreate", + "token": "NOCREATE", + "type": "pure-token", + "optional": true + }, + { + "name": "items", + "token": "ITEMS", + "type": "pure-token" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.EXISTS": { + "summary": "Checks whether one or more items exist in a Cuckoo Filter", + "complexity": "O(k), where k is the number of sub-filters", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.MEXISTS": { + "summary": "Checks whether one or more items exist in a Cuckoo Filter", + "complexity": "O(k * n), where k is the number of sub-filters and n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.DEL": { + "summary": "Deletes an item from a Cuckoo Filter", + "complexity": "O(k), where k is the number of sub-filters", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.COUNT": { + "summary": "Return the number of times an item might be in a Cuckoo Filter", + "complexity": "O(k), where k is the number of sub-filters", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.SCANDUMP": { + "summary": "Begins an incremental save of the bloom filter", + "complexity": "O(n), where n is the capacity", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "iterator", + "type": "integer" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.LOADCHUNK": { + "summary": "Restores a filter previously saved using SCANDUMP", + "complexity": "O(n), where n is the capacity", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "iterator", + "type": "integer" + }, + { + "name": "data", + "type": "string" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CF.INFO": { + "summary": "Returns information about a Cuckoo Filter", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "1.0.0", + "group": "cf" + }, + "CMS.INITBYDIM": { + "summary": "Initializes a Count-Min Sketch to dimensions specified by user", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "width", + "type": "integer" + }, + { + "name": "depth", + "type": "integer" + } + ], + "since": "2.0.0", + "group": "cms" + }, + "CMS.INITBYPROB": { + "summary": "Initializes a Count-Min Sketch to accommodate requested tolerances.", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "error", + "type": "double" + }, + { + "name": "probability", + "type": "double" + } + ], + "since": "2.0.0", + "group": "cms" + }, + "CMS.INCRBY": { + "summary": "Increases the count of one or more items by increment", + "complexity": "O(n) where n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "items", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "item", + "type": "string" + }, + { + "name": "increment", + "type": "integer" + } + ] + } + ], + "since": "2.0.0", + "group": "cms" + }, + "CMS.QUERY": { + "summary": "Returns the count for one or more items in a sketch", + "complexity": "O(n) where n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "2.0.0", + "group": "cms" + }, + "CMS.MERGE": { + "summary": "Merges several sketches into one sketch", + "complexity": "O(n) where n is the number of sketches", + "arguments": [ + { + "name": "destination", + "type": "key" + }, + { + "name": "numKeys", + "type": "integer" + }, + { + "name": "source", + "type": "key", + "multiple": true + }, + { + "name": "weight", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "weights", + "token": "WEIGHTS", + "type": "pure-token" + }, + { + "name": "weight", + "type": "double", + "multiple": true + } + ] + } + ], + "since": "2.0.0", + "group": "cms" + }, + "CMS.INFO": { + "summary": "Returns information about a sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.0.0", + "group": "cms" + }, + "TOPK.RESERVE": { + "summary": "Initializes a TopK with specified parameters", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "topk", + "type": "integer" + }, + { + "name": "params", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "width", + "type": "integer" + }, + { + "name": "depth", + "type": "integer" + }, + { + "name": "decay", + "type": "double" + } + ] + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TOPK.ADD": { + "summary": "Increases the count of one or more items by increment", + "complexity": "O(n * k) where n is the number of items and k is the depth", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "items", + "type": "string", + "multiple": true + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TOPK.INCRBY": { + "summary": "Increases the count of one or more items by increment", + "complexity": "O(n * k * incr) where n is the number of items, k is the depth and incr is the increment", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "items", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "item", + "type": "string" + }, + { + "name": "increment", + "type": "integer" + } + ] + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TOPK.QUERY": { + "summary": "Checks whether one or more items are in a sketch", + "complexity": "O(n) where n is the number of items", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TOPK.COUNT": { + "summary": "Return the count for one or more items are in a sketch", + "complexity": "O(n) where n is the number of items", + "deprecated_since": "2.4", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "item", + "type": "string", + "multiple": true + } + ], + "since": "2.0.0", + "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", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "withcount", + "token": "WITHCOUNT", + "type": "pure-token", + "optional": true + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TOPK.INFO": { + "summary": "Returns information about a sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.0.0", + "group": "topk" + }, + "TDIGEST.CREATE": { + "summary": "Allocates memory and initializes a new t-digest sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "compression", + "type": "integer", + "token": "COMPRESSION", + "optional": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.RESET": { + "summary": "Resets a t-digest sketch: empty the sketch and re-initializes it.", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "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", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "values", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "value", + "type": "double" + } + ] + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.MERGE": { + "summary": "Merges multiple t-digest sketches into a single sketch", + "complexity": "O(N*K), where N is the number of centroids and K being the number of input sketches", + "arguments": [ + { + "name": "destination-key", + "type": "key" + } + , + { + "name": "numkeys", + "type": "integer" + }, + { + "name": "source-key", + "type": "key", + "multiple": true + }, + { + "name": "config", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "compression", + "token": "COMPRESSION", + "type": "pure-token" + }, + { + "name": "compression", + "type": "integer" + } + ] + }, + { + "name": "override", + "type": "pure-token", + "token": "OVERRIDE", + "optional": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.MIN": { + "summary": "Returns the minimum observation value from a t-digest sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.MAX": { + "summary": "Returns the maximum observation value from a t-digest sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "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)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "quantile", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.CDF": { + "summary": "Returns, for each input value, an estimation of the fraction (floating-point) of (observations smaller than the given value + half the observations equal to the given value)", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "value", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.TRIMMED_MEAN": { + "summary": "Returns an estimation of the mean value from the sketch, excluding observation values outside the low and high cutoff quantiles", + "complexity": "O(N) where N is the number of centroids", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "low_cut_quantile", + "type": "double" + }, + { + "name": "high_cut_quantile", + "type": "double" + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "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)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "value", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "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)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "value", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.BYRANK": { + "summary": "Returns, for each input rank, an estimation of the value (floating-point) with that rank", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "rank", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.BYREVRANK": { + "summary": "Returns, for each input reverse rank, an estimation of the value (floating-point) with that reverse rank", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "reverse_rank", + "type": "double", + "multiple": true + } + ], + "since": "2.4.0", + "group": "tdigest" + }, + "TDIGEST.INFO": { + "summary": "Returns information and statistics about a t-digest sketch", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + } + ], + "since": "2.4.0", + "group": "tdigest" + } +} diff --git a/data/commands_redisearch.json b/data/commands_redisearch.json new file mode 100644 index 0000000000..d81d5bec28 --- /dev/null +++ b/data/commands_redisearch.json @@ -0,0 +1,1498 @@ +{ + "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" + ] + ], + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "data_type", + "token": "ON", + "type": "oneof", + "arguments": [ + { + "name": "hash", + "type": "pure-token", + "token": "HASH" + }, + { + "name": "json", + "type": "pure-token", + "token": "JSON" + } + ], + "optional": true + }, + { + "name": "prefix", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "integer", + "token":"PREFIX" + }, + { + "name": "prefix", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "filter", + "type": "string", + "optional": true, + "token": "FILTER" + }, + { + "name": "default_lang", + "type": "string", + "token":"LANGUAGE", + "optional": true + }, + { + "name": "lang_attribute", + "type": "string", + "token":"LANGUAGE_FIELD", + "optional": true + }, + { + "name": "default_score", + "type": "double", + "token":"SCORE", + "optional": true + }, + { + "name": "score_attribute", + "type": "string", + "token":"SCORE_FIELD", + "optional": true + }, + { + "name": "payload_attribute", + "type": "string", + "token":"PAYLOAD_FIELD", + "optional": true + }, + { + "name": "maxtextfields", + "type": "pure-token", + "token": "MAXTEXTFIELDS", + "optional": true + }, + { + "name": "seconds", + "type": "double", + "token":"TEMPORARY", + "optional": true + }, + { + "name": "nooffsets", + "type": "pure-token", + "token": "NOOFFSETS", + "optional": true + }, + { + "name": "nohl", + "type": "pure-token", + "token": "NOHL", + "optional": true + }, + { + "name": "nofields", + "type": "pure-token", + "token": "NOFIELDS", + "optional": true + }, + { + "name": "nofreqs", + "type": "pure-token", + "token": "NOFREQS", + "optional": true + }, + { + "name": "stopwords", + "type": "block", + "optional": true, + "token":"STOPWORDS", + "arguments": [ + { + "name": "count", + "type": "integer" + }, + { + "name": "stopword", + "type": "string", + "multiple": true, + "optional": true + } + ] + }, + { + "name": "skipinitialscan", + "type": "pure-token", + "token": "SKIPINITIALSCAN", + "optional": true + }, + { + "name": "schema", + "type": "pure-token", + "token": "SCHEMA" + }, + { + "name": "field", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "field_name", + "type": "string" + }, + { + "name": "alias", + "type": "string", + "token": "AS", + "optional": true + }, + { + "name": "field_type", + "type": "oneof", + "arguments": [ + { + "name": "text", + "type": "pure-token", + "token": "TEXT" + }, + { + "name": "tag", + "type": "pure-token", + "token": "TAG" + }, + { + "name": "numeric", + "type": "pure-token", + "token": "NUMERIC" + }, + { + "name": "geo", + "type": "pure-token", + "token": "GEO" + }, + { + "name": "vector", + "type": "pure-token", + "token": "VECTOR" + } + ] + }, + { + "name": "withsuffixtrie", + "type": "pure-token", + "token": "WITHSUFFIXTRIE", + "optional": true + }, + { + "name": "INDEXEMPTY", + "type": "pure-token", + "token": "INDEXEMPTY", + "optional": true + }, + { + "name": "indexmissing", + "type": "pure-token", + "token": "INDEXMISSING", + "optional": true + }, + { + "name": "sortable", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "sortable", + "type": "pure-token", + "token": "SORTABLE" + }, + { + "name": "UNF", + "type": "pure-token", + "token": "UNF", + "optional": true + } + ] + }, + { + "name": "noindex", + "type": "pure-token", + "token": "NOINDEX", + "optional": true + } + ] + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.INFO": { + "summary": "Returns information and statistics on the index", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.EXPLAIN": { + "summary": "Returns the execution plan for a complex query", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "dialect", + "type": "integer", + "optional": true, + "token": "DIALECT", + "since": "2.4.3" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.EXPLAINCLI": { + "summary": "Returns the execution plan for a complex query", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "dialect", + "type": "integer", + "optional": true, + "token": "DIALECT", + "since": "2.4.3" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.ALTER": { + "summary": "Adds a new field to the index", + "complexity": "O(N) where N is the number of keys in the keyspace", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "skipinitialscan", + "type": "pure-token", + "token": "SKIPINITIALSCAN", + "optional": true + }, + { + "name": "schema", + "type": "pure-token", + "token": "SCHEMA" + }, + { + "name": "add", + "type": "pure-token", + "token": "ADD" + }, + { + "name": "field", + "type": "string" + }, + { + "name": "options", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.DROPINDEX": { + "summary": "Deletes the index", + "complexity": "O(1) or O(N) if documents are deleted, where N is the number of keys in the keyspace", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "delete docs", + "type": "oneof", + "arguments": [ + { + "name": "delete docs", + "type": "pure-token", + "token":"DD" + } + ], + "optional": true + } + ], + "since": "2.0.0", + "group": "search" + }, + "FT.ALIASADD": { + "summary": "Adds an alias to the index", + "complexity": "O(1)", + "arguments": [ + { + "name": "alias", + "type": "string" + }, + { + "name": "index", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.ALIASUPDATE": { + "summary": "Adds or updates an alias to the index", + "complexity": "O(1)", + "arguments": [ + { + "name": "alias", + "type": "string" + }, + { + "name": "index", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.ALIASDEL": { + "summary": "Deletes an alias from the index", + "complexity": "O(1)", + "arguments": [ + { + "name": "alias", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.TAGVALS": { + "summary": "Returns the distinct tags indexed in a Tag field", + "complexity": "O(N)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "field_name", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.SUGADD": { + "summary": "Adds a suggestion string to an auto-complete suggestion dictionary", + "complexity": "O(1)", + "history": [ + [ + "2.0.0", + "Deprecated `PAYLOAD` argument" + ] + ], + "arguments": [ + { + "name": "key", + "type": "string" + }, + { + "name": "string", + "type": "string" + }, + { + "name": "score", + "type": "double" + }, + { + "name": "increment score", + "type": "oneof", + "arguments": [ + { + "name": "incr", + "type": "pure-token", + "token":"INCR" + } + ], + "optional": true + }, + { + "name": "payload", + "token": "PAYLOAD", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "suggestion" + }, + "FT.SUGGET": { + "summary": "Gets completion suggestions for a prefix", + "complexity": "O(1)", + "history": [ + [ + "2.0.0", + "Deprecated `WITHPAYLOADS` argument" + ] + ], + "arguments": [ + { + "name": "key", + "type": "string" + }, + { + "name": "prefix", + "type": "string" + }, + { + "name": "fuzzy", + "type": "pure-token", + "token": "FUZZY", + "optional": true + }, + { + "name": "withscores", + "type": "pure-token", + "token": "WITHSCORES", + "optional": true + }, + { + "name": "withpayloads", + "type": "pure-token", + "token": "WITHPAYLOADS", + "optional": true + }, + { + "name": "max", + "token": "MAX", + "type": "integer", + "optional": true + } + ], + "since": "1.0.0", + "group": "suggestion" + }, + "FT.SUGDEL": { + "summary": "Deletes a string from a suggestion index", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "string" + }, + { + "name": "string", + "type": "string" + } + ], + "since": "1.0.0", + "group": "suggestion" + }, + "FT.SUGLEN": { + "summary": "Gets the size of an auto-complete suggestion dictionary", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "string" + } + ], + "since": "1.0.0", + "group": "suggestion" + }, + "FT.SYNUPDATE": { + "summary": "Creates or updates a synonym group with additional terms", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "synonym_group_id", + "type": "string" + }, + { + "name": "skipinitialscan", + "type": "pure-token", + "token": "SKIPINITIALSCAN", + "optional": true + }, + { + "name": "term", + "type": "string", + "multiple": true + } + ], + "since": "1.2.0", + "group": "search" + }, + "FT.SYNDUMP": { + "summary": "Dumps the contents of a synonym group", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + } + ], + "since": "1.2.0", + "group": "search" + }, + "FT.SPELLCHECK": { + "summary": "Performs spelling correction on a query, returning suggestions for misspelled terms", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "distance", + "token": "DISTANCE", + "type": "integer", + "optional": true + }, + { + "name": "terms", + "token": "TERMS", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "inclusion", + "type": "oneof", + "arguments": [ + { + "name": "include", + "type": "pure-token", + "token": "INCLUDE" + }, + { + "name": "exclude", + "type": "pure-token", + "token": "EXCLUDE" + } + ] + }, + { + "name": "dictionary", + "type": "string" + }, + { + "name": "terms", + "type": "string", + "multiple": true, + "optional": true + } + ] + }, + { + "name": "dialect", + "type": "integer", + "optional": true, + "token": "DIALECT", + "since": "2.4.3" + } + ], + "since": "1.4.0", + "group": "search" + }, + "FT.DICTADD": { + "summary": "Adds terms to a dictionary", + "complexity": "O(1)", + "arguments": [ + { + "name": "dict", + "type": "string" + }, + { + "name": "term", + "type": "string", + "multiple": true + } + ], + "since": "1.4.0", + "group": "search" + }, + "FT.DICTDEL": { + "summary": "Deletes terms from a dictionary", + "complexity": "O(1)", + "arguments": [ + { + "name": "dict", + "type": "string" + }, + { + "name": "term", + "type": "string", + "multiple": true + } + ], + "since": "1.4.0", + "group": "search" + }, + "FT.DICTDUMP": { + "summary": "Dumps all terms in the given dictionary", + "complexity": "O(N), where N is the size of the dictionary", + "arguments": [ + { + "name": "dict", + "type": "string" + } + ], + "since": "1.4.0", + "group": "search" + }, + "FT._LIST": { + "summary": "Returns a list of all existing indexes", + "complexity": "O(1)", + "since": "2.0.0", + "group": "search" + }, + "FT.CONFIG SET": { + "summary": "Sets runtime configuration options", + "complexity": "O(1)", + "arguments": [ + { + "name": "option", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.CONFIG GET": { + "summary": "Retrieves runtime configuration options", + "complexity": "O(1)", + "arguments": [ + { + "name": "option", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.CONFIG HELP": { + "summary": "Help description of runtime configuration options", + "complexity": "O(1)", + "arguments": [ + { + "name": "option", + "type": "string" + } + ], + "since": "1.0.0", + "group": "search" + }, + "FT.SEARCH": { + "summary": "Searches the index with a textual query, returning either documents or just ids", + "complexity": "O(N)", + "history": [ + [ + "2.0.0", + "Deprecated `WITHPAYLOADS` and `PAYLOAD` arguments" + ] + ], + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "nocontent", + "type": "pure-token", + "token": "NOCONTENT", + "optional": true + }, + { + "name": "verbatim", + "type": "pure-token", + "token":"VERBATIM", + "optional": true + }, + { + "name": "nostopwords", + "type": "pure-token", + "token": "NOSTOPWORDS", + "optional": true + }, + { + "name": "withscores", + "type": "pure-token", + "token": "WITHSCORES", + "optional": true + }, + { + "name": "withpayloads", + "type": "pure-token", + "token": "WITHPAYLOADS", + "optional": true + }, + { + "name": "withsortkeys", + "type": "pure-token", + "token": "WITHSORTKEYS", + "optional": true + }, + { + "name": "filter", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "numeric_field", + "type": "string", + "token":"FILTER" + }, + { + "name": "min", + "type": "double" + }, + { + "name": "max", + "type": "double" + } + ] + }, + { + "name": "geo_filter", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "geo_field", + "type": "string", + "token":"GEOFILTER" + }, + { + "name": "lon", + "type": "double" + }, + { + "name": "lat", + "type": "double" + }, + { + "name": "radius", + "type": "double" + }, + { + "name": "radius_type", + "type": "oneof", + "arguments": [ + { + "name": "m", + "type": "pure-token", + "token": "m" + }, + { + "name": "km", + "type": "pure-token", + "token": "km" + }, + { + "name": "mi", + "type": "pure-token", + "token": "mi" + }, + { + "name": "ft", + "type": "pure-token", + "token": "ft" + } + ] + } + ] + }, + { + "name": "in_keys", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token":"INKEYS" + }, + { + "name": "key", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "in_fields", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token":"INFIELDS" + }, + { + "name": "field", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "return", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token":"RETURN" + }, + { + "name": "identifiers", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "identifier", + "type": "string" + }, + { + "name": "property", + "type": "string", + "token": "AS", + "optional": true + } + ] + } + ] + }, + { + "name": "summarize", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "summarize", + "type": "pure-token", + "token": "SUMMARIZE" + }, + { + "name": "fields", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token":"FIELDS" + }, + { + "name": "field", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "num", + "type": "integer", + "token":"FRAGS", + "optional": true + }, + { + "name": "fragsize", + "type": "integer", + "token":"LEN", + "optional": true + }, + { + "name": "separator", + "type": "string", + "token":"SEPARATOR", + "optional": true + } + ] + }, + { + "name": "highlight", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "highlight", + "type": "pure-token", + "token": "HIGHLIGHT" + }, + { + "name": "fields", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token":"FIELDS" + }, + { + "name": "field", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "tags", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "tags", + "type": "pure-token", + "token": "TAGS" + }, + { + "name": "open", + "type": "string" + }, + { + "name": "close", + "type": "string" + } + ] + } + ] + }, + { + "name": "slop", + "type": "integer", + "optional": true, + "token":"SLOP" + }, + { + "name": "timeout", + "type": "integer", + "optional": true, + "token":"TIMEOUT" + }, + { + "name": "inorder", + "type": "pure-token", + "token": "INORDER", + "optional": true + }, + { + "name": "language", + "type": "string", + "optional": true, + "token":"LANGUAGE" + }, + { + "name": "expander", + "type": "string", + "optional": true, + "token":"EXPANDER" + }, + { + "name": "scorer", + "type": "string", + "optional": true, + "token":"SCORER" + }, + { + "name": "explainscore", + "type": "pure-token", + "token": "EXPLAINSCORE", + "optional": true + }, + { + "name": "payload", + "type": "string", + "optional": true, + "token":"PAYLOAD" + }, + { + "name": "sortby", + "type": "block", + "optional": true, + "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": "limit", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "limit", + "type": "pure-token", + "token": "LIMIT" + }, + { + "name": "offset", + "type": "integer" + }, + { + "name": "num", + "type": "integer" + } + ] + }, + { + "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" + } + ], + "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" + }, + { + "name": "query", + "type": "string" + }, + { + "name": "verbatim", + "type": "pure-token", + "token": "VERBATIM", + "optional": true + }, + { + "name": "load", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "count", + "type": "string", + "token": "LOAD" + }, + { + "name": "field", + "type": "string", + "multiple": true + } + ] + }, + { + "name": "timeout", + "type": "integer", + "optional": true, + "token": "TIMEOUT" + }, + { + "name": "loadall", + "type": "pure-token", + "token": "LOAD *", + "optional": true + }, + { + "name": "groupby", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "nargs", + "type": "integer", + "token": "GROUPBY" + }, + { + "name": "property", + "type": "string", + "multiple": true + }, + { + "name": "reduce", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "function", + "type": "string", + "token": "REDUCE" + }, + { + "name": "nargs", + "type": "integer" + }, + { + "name": "arg", + "type": "string", + "multiple": true + }, + { + "name": "name", + "type": "string", + "token": "AS", + "optional": true + } + ] + } + ] + }, + { + "name": "sortby", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "nargs", + "type": "integer", + "token": "SORTBY" + }, + { + "name": "fields", + "type": "block", + "optional": true, + "multiple": true, + "arguments": [ + { + "name": "property", + "type": "string" + }, + { + "name": "order", + "type": "oneof", + "arguments": [ + { + "name": "asc", + "type": "pure-token", + "token": "ASC" + }, + { + "name": "desc", + "type": "pure-token", + "token": "DESC" + } + ] + } + ] + }, + { + "name": "num", + "type": "integer", + "token": "MAX", + "optional": true + } + ] + }, + { + "name": "apply", + "type": "block", + "optional": true, + "multiple": true, + "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, + "arguments": [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + } + ] + }, + { + "name": "dialect", + "type": "integer", + "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", + "type": "pure-token", + "token": "SEARCH" + }, + { + "name": "aggregate", + "type": "pure-token", + "token": "AGGREGATE" + } + ] + }, + { + "name": "limited", + "type": "pure-token", + "token": "LIMITED", + "optional": true + }, + { + "name": "queryword", + "type": "pure-token", + "token": "QUERY" + }, + { + "name": "query", + "type": "string" + } + ], + "since": "2.2.0", + "group": "search" + }, + + "FT.CURSOR READ": { + "summary": "Reads from a cursor", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "cursor_id", + "type": "integer" + }, + { + "name": "read size", + "type": "integer", + "optional": true, + "token":"COUNT" + } + ], + "since": "1.1.0", + "group": "search" + }, + "FT.CURSOR DEL": { + "summary": "Deletes a cursor", + "complexity": "O(1)", + "arguments": [ + { + "name": "index", + "type": "string" + }, + { + "name": "cursor_id", + "type": "integer" + } + ], + "since": "1.1.0", + "group": "search" + } +} diff --git a/data/commands_redisjson.json b/data/commands_redisjson.json new file mode 100644 index 0000000000..c3119eeed8 --- /dev/null +++ b/data/commands_redisjson.json @@ -0,0 +1,535 @@ +{ + "JSON.DEL": { + "summary": "Deletes a value", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.FORGET": { + "summary": "Deletes a value", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the deleted value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.GET": { + "summary": "Gets the value at one or more paths in JSON serialized form", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "indent", + "token": "INDENT", + "type": "string", + "optional": true + }, + { + "name": "newline", + "token": "NEWLINE", + "type": "string", + "optional": true + }, + { + "name": "space", + "token": "SPACE", + "type": "string", + "optional": true + }, + { + "name": "path", + "type": "string", + "optional": true, + "multiple": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.TOGGLE": { + "summary": "Toggles a boolean value", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + } + ], + "since": "2.0.0", + "group": "json" + }, + "JSON.CLEAR": { + "summary": "Clears all values from an array or an object and sets numeric values to `0`", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the values, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "2.0.0", + "group": "json" + }, + "JSON.SET": { + "summary": "Sets or updates the JSON value at a path", + "complexity": "O(M+N) when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "string" + }, + { + "name": "condition", + "type": "oneof", + "arguments": [ + { + "name": "nx", + "type": "pure-token", + "token": "NX" + }, + { + "name": "xx", + "type": "pure-token", + "token": "XX" + } + ], + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.MSET": { + "summary": "Sets or updates the JSON value of one or more keys", + "complexity": "O(K*(M+N)) where k is the number of keys in the command, when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, or O(K*(M+N)) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key", + "arguments": [ + { + "name": "triplet", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + } + ], + "since": "2.6.0", + "group": "json" + }, + "JSON.MERGE": { + "summary": "Merges a given JSON value into matching paths. Consequently, JSON values at matching paths are updated, deleted, or expanded with new children", + "complexity": "O(M+N) when path is evaluated to a single value where M is the size of the original value (if it exists) and N is the size of the new value, O(M+N) when path is evaluated to multiple values where M is the size of the key and N is the size of the new value * the number of original values in the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ], + "since": "2.6.0", + "group": "json" + }, + "JSON.MGET": { + "summary": "Returns the values at a path from one or more keys", + "complexity": "O(M*N) when path is evaluated to a single value where M is the number of keys and N is the size of the value, O(N1+N2+...+Nm) when path is evaluated to multiple values where m is the number of keys and Ni is the size of the i-th key", + "arguments": [ + { + "name": "key", + "type": "key", + "multiple": true + }, + { + "name": "path", + "type": "string" + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.NUMINCRBY": { + "summary": "Increments the numeric value at path by a value", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "double" + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.NUMMULTBY": { + "summary": "Multiplies the numeric value at path by a value", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "deprecated_since": "2.0", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "double" + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.STRAPPEND": { + "summary": "Appends a string to a JSON string value at path", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + }, + { + "name": "value", + "type": "string" + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.STRLEN": { + "summary": "Returns the length of the JSON String at path in key", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRAPPEND": { + "summary": "Append one or more json values into the array at path after the last element in it.", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + }, + { + "name": "value", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRINDEX": { + "summary": "Returns the index of the first occurrence of a JSON scalar value in the array at path", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "value", + "type": "string" + }, + { + "name": "range", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "start", + "type": "integer" + }, + { + "name": "stop", + "type": "integer", + "optional": true + } + ] + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRINSERT": { + "summary": "Inserts the JSON scalar(s) value at the specified index in the array at path", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "index", + "type": "integer" + }, + { + "name": "value", + "type": "string", + "multiple": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRLEN": { + "summary": "Returns the length of the array at path", + "complexity": "O(1) where path is evaluated to a single value, O(N) where path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRPOP": { + "summary": "Removes and returns the element at the specified index in the array at path", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the array and the specified index is not the last element, O(1) when path is evaluated to a single value and the specified index is the last element, or O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "path", + "type": "string" + }, + { + "name": "index", + "type": "integer", + "optional": true + } + ] + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.ARRTRIM": { + "summary": "Trims the array at path to contain only the specified inclusive range of indices from start to stop", + "complexity": "O(N) when path is evaluated to a single value where N is the size of the array, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string" + }, + { + "name": "start", + "type": "integer" + }, + { + "name": "stop", + "type": "integer" + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.OBJKEYS": { + "summary": "Returns the JSON keys of the object at path", + "complexity": "O(N) when path is evaluated to a single value, where N is the number of keys in the object, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.OBJLEN": { + "summary": "Returns the number of keys of the object at path", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.TYPE": { + "summary": "Returns the type of the JSON value at path", + "complexity": "O(1) when path is evaluated to a single value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.RESP": { + "summary": "Returns the JSON value at path in Redis Serialization Protocol (RESP)", + "complexity": "O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "deprecated_since": "2.6", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + }, + "JSON.DEBUG": { + "summary": "Debugging container command", + "complexity": "N/A", + "since": "1.0.0", + "group": "json" + }, + "JSON.DEBUG HELP": { + "summary": "Shows helpful information", + "complexity": "N/A", + "since": "1.0.0", + "group": "json" + }, + "JSON.DEBUG MEMORY": { + "summary": "Reports the size in bytes of a key", + "complexity": "O(N) when path is evaluated to a single value, where N is the size of the value, O(N) when path is evaluated to multiple values, where N is the size of the key", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "path", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "json" + } +} diff --git a/data/commands_redistimeseries.json b/data/commands_redistimeseries.json new file mode 100644 index 0000000000..7afe5a3eca --- /dev/null +++ b/data/commands_redistimeseries.json @@ -0,0 +1,1519 @@ +{ + "TS.CREATE": { + "summary": "Create a new time series", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "type": "integer", + "token": "RETENTION", + "name": "retentionPeriod", + "optional": true + }, + { + "token": "ENCODING", + "name": "enc", + "type": "oneof", + "arguments": [ + { + "name": "uncompressed", + "type": "pure-token", + "token": "UNCOMPRESSED" + }, + { + "name": "compressed", + "type": "pure-token", + "token": "COMPRESSED" + } + ], + "optional": true + }, + { + "type": "integer", + "token": "CHUNK_SIZE", + "name": "size", + "optional": true + }, + { + "type": "oneof", + "token": "DUPLICATE_POLICY", + "name": "policy", + "arguments": [ + { + "name": "block", + "type": "pure-token", + "token": "BLOCK" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + } + ], + "optional": true + }, + { + "type": "block", + "name": "labels", + "token": "LABELS", + "optional": true, + "multiple": true, + "arguments": [ + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.DEL": { + "summary": "Delete all samples between two timestamps for a given time series", + "complexity": "O(N) where N is the number of data points that will be removed", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "from_timestamp", + "type": "integer" + }, + { + "name": "to_timestamp", + "type": "integer" + } + ], + "since": "1.6.0", + "group": "timeseries" + }, + "TS.ALTER": { + "summary": "Update the retention, chunk size, duplicate policy, and labels of an existing time series", + "complexity": "O(N) where N is the number of labels requested to update", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "type": "integer", + "token": "RETENTION", + "name": "retentionPeriod", + "optional": true + }, + { + "type": "integer", + "token": "CHUNK_SIZE", + "name": "size", + "optional": true + }, + { + "type": "oneof", + "token": "DUPLICATE_POLICY", + "name": "policy", + "arguments": [ + { + "name": "block", + "type": "pure-token", + "token": "BLOCK" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + } + ], + "optional": true + }, + { + "type": "block", + "name": "labels", + "token": "LABELS", + "optional": true, + "multiple": true, + "arguments": [ + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.ADD": { + "summary": "Append a sample to a time series", + "complexity": "O(M) when M is the amount of compaction rules or O(1) with no compaction", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "timestamp", + "type": "string" + }, + { + "name": "value", + "type": "double" + }, + { + "type": "integer", + "token": "RETENTION", + "name": "retentionPeriod", + "optional": true + }, + { + "token": "ENCODING", + "name": "enc", + "type": "oneof", + "arguments": [ + { + "name": "uncompressed", + "type": "pure-token", + "token": "UNCOMPRESSED" + }, + { + "name": "compressed", + "type": "pure-token", + "token": "COMPRESSED" + } + ], + "optional": true + }, + { + "type": "integer", + "token": "CHUNK_SIZE", + "name": "size", + "optional": true + }, + { + "type": "oneof", + "token": "ON_DUPLICATE", + "name": "policy", + "arguments": [ + { + "name": "block", + "type": "pure-token", + "token": "BLOCK" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + } + ], + "optional": true + }, + { + "type": "block", + "name": "labels", + "token": "LABELS", + "optional": true, + "multiple": true, + "arguments": [ + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.MADD": { + "summary": "Append new samples to one or more time series", + "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", + "arguments": [ + { + "type": "block", + "name": "ktv", + "multiple": true, + "arguments": [ + { + "type": "key", + "name": "key" + }, + { + "type": "string", + "name": "timestamp" + }, + { + "type": "double", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.INCRBY": { + "summary": "Increase the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given increment", + "complexity": "O(M) when M is the amount of compaction rules or O(1) with no compaction", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "value", + "type": "double" + }, + { + "name": "timestamp", + "type": "string", + "token": "TIMESTAMP", + "optional": true + }, + { + "type": "integer", + "token": "RETENTION", + "name": "retentionPeriod", + "optional": true + }, + { + "name": "uncompressed", + "type": "pure-token", + "token": "UNCOMPRESSED", + "optional": true + }, + { + "type": "integer", + "token": "CHUNK_SIZE", + "name": "size", + "optional": true + }, + { + "type": "block", + "name": "labels", + "token": "LABELS", + "optional": true, + "multiple": true, + "arguments": [ + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.DECRBY": { + "summary": "Decrease the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given decrement", + "complexity": "O(M) when M is the amount of compaction rules or O(1) with no compaction", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "value", + "type": "double" + }, + { + "name": "timestamp", + "type": "string", + "token": "TIMESTAMP", + "optional": true + }, + { + "type": "integer", + "token": "RETENTION", + "name": "retentionPeriod", + "optional": true + }, + { + "name": "uncompressed", + "type": "pure-token", + "token": "UNCOMPRESSED", + "optional": true + }, + { + "type": "integer", + "token": "CHUNK_SIZE", + "name": "size", + "optional": true + }, + { + "type": "block", + "name": "labels", + "token": "LABELS", + "optional": true, + "multiple": true, + "arguments": [ + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "value" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.CREATERULE": { + "summary": "Create a compaction rule", + "complexity": "O(1)", + "arguments": [ + { + "name": "sourceKey", + "type": "key" + }, + { + "name": "destKey", + "type": "key" + }, + { + "type": "oneof", + "token": "AGGREGATION", + "name": "aggregator", + "arguments": [ + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "std.p", + "type": "pure-token", + "token": "STD.P" + }, + { + "name": "std.s", + "type": "pure-token", + "token": "STD.S" + }, + { + "name": "var.p", + "type": "pure-token", + "token": "VAR.P" + }, + { + "name": "var.s", + "type": "pure-token", + "token": "VAR.S" + }, + { + "name": "twa", + "type": "pure-token", + "token": "TWA", + "since": "1.8.0" + } + ] + }, + { + "name": "bucketDuration", + "type": "integer" + }, + { + "name": "alignTimestamp", + "type": "integer", + "optional": true, + "since": "1.8.0" + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.DELETERULE": { + "summary": "Delete a compaction rule", + "complexity": "O(1)", + "arguments": [ + { + "name": "sourceKey", + "type": "key" + }, + { + "name": "destKey", + "type": "key" + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.RANGE": { + "summary": "Query a range in forward direction", + "complexity": "O(n/m+k) where n = Number of data points, m = Chunk size (data points per chunk), k = Number of data points that are in the requested range", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "fromTimestamp", + "type": "string" + }, + { + "name": "toTimestamp", + "type": "string" + }, + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + }, + { + "token": "FILTER_BY_TS", + "name": "Timestamp", + "type": "integer", + "multiple": true, + "optional": true + }, + { + "type": "block", + "name": "fbv", + "optional": true, + "arguments": [ + { + "name": "FILTER_BY_VALUE", + "type": "pure-token", + "token": "FILTER_BY_VALUE" + }, + { + "type": "double", + "name": "min" + }, + { + "type": "double", + "name": "max" + } + ] + }, + { + "token": "COUNT", + "name": "count", + "type": "integer", + "optional": true + }, + { + "name": "aggregation", + "type": "block", + "optional": true, + "arguments": [ + { + "token": "ALIGN", + "name": "value", + "type": "integer", + "optional": true + }, + { + "type": "oneof", + "token": "AGGREGATION", + "name": "aggregator", + "arguments": [ + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "std.p", + "type": "pure-token", + "token": "STD.P" + }, + { + "name": "std.s", + "type": "pure-token", + "token": "STD.S" + }, + { + "name": "var.p", + "type": "pure-token", + "token": "VAR.P" + }, + { + "name": "var.s", + "type": "pure-token", + "token": "VAR.S" + }, + { + "name": "twa", + "type": "pure-token", + "token": "TWA", + "since": "1.8.0" + } + ] + }, + { + "name": "bucketDuration", + "type": "integer" + }, + { + "name": "buckettimestamp", + "type": "pure-token", + "token": "BUCKETTIMESTAMP", + "optional": true, + "since": "1.8.0" + }, + { + "name": "empty", + "type": "pure-token", + "token": "EMPTY", + "optional": true, + "since": "1.8.0" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.REVRANGE": { + "summary": "Query a range in reverse direction", + "complexity": "O(n/m+k) where n = Number of data points, m = Chunk size (data points per chunk), k = Number of data points that are in the requested range", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "fromTimestamp", + "type": "string" + }, + { + "name": "toTimestamp", + "type": "string" + }, + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + }, + { + "token": "FILTER_BY_TS", + "name": "Timestamp", + "type": "integer", + "multiple": true, + "optional": true + }, + { + "type": "block", + "name": "fbv", + "optional": true, + "arguments": [ + { + "name": "FILTER_BY_VALUE", + "type": "pure-token", + "token": "FILTER_BY_VALUE" + }, + { + "type": "double", + "name": "min" + }, + { + "type": "double", + "name": "max" + } + ] + }, + { + "token": "COUNT", + "name": "count", + "type": "integer", + "optional": true + }, + { + "name": "aggregation", + "type": "block", + "optional": true, + "arguments": [ + { + "token": "ALIGN", + "name": "value", + "type": "integer", + "optional": true + }, + { + "type": "oneof", + "token": "AGGREGATION", + "name": "aggregator", + "arguments": [ + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "std.p", + "type": "pure-token", + "token": "STD.P" + }, + { + "name": "std.s", + "type": "pure-token", + "token": "STD.S" + }, + { + "name": "var.p", + "type": "pure-token", + "token": "VAR.P" + }, + { + "name": "var.s", + "type": "pure-token", + "token": "VAR.S" + }, + { + "name": "twa", + "type": "pure-token", + "token": "TWA", + "since": "1.8.0" + } + ] + }, + { + "name": "bucketDuration", + "type": "integer" + }, + { + "name": "buckettimestamp", + "type": "pure-token", + "token": "BUCKETTIMESTAMP", + "optional": true, + "since": "1.8.0" + }, + { + "name": "empty", + "type": "pure-token", + "token": "EMPTY", + "optional": true, + "since": "1.8.0" + } + ] + } + ], + "since": "1.4.0", + "group": "timeseries" + }, + "TS.MRANGE": { + "summary": "Query a range across multiple time series by filters in forward direction", + "complexity": "O(n/m+k) where n = Number of data points, m = Chunk size (data points per chunk), k = Number of data points that are in the requested ranges", + "arguments": [ + { + "name": "fromTimestamp", + "type": "string" + }, + { + "name": "toTimestamp", + "type": "string" + }, + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + }, + { + "token": "FILTER_BY_TS", + "name": "Timestamp", + "type": "integer", + "multiple": true, + "optional": true + }, + { + "type": "block", + "name": "fbv", + "optional": true, + "arguments": [ + { + "name": "FILTER_BY_VALUE", + "type": "pure-token", + "token": "FILTER_BY_VALUE" + }, + { + "type": "double", + "name": "min" + }, + { + "type": "double", + "name": "max" + } + ] + }, + { + "name": "labels", + "type": "oneof", + "arguments": [ + { + "name": "WITHLABELS", + "type": "pure-token", + "token": "WITHLABELS" + }, + { + "type": "block", + "name": "SELECTED_LABELS_BLOCK", + "arguments": [ + { + "name": "SELECTED_LABELS", + "type": "pure-token", + "token": "SELECTED_LABELS" + }, + { + "name": "label1", + "type": "string", + "multiple": true + } + ] + } + ], + "optional": true + }, + { + "token": "COUNT", + "name": "count", + "type": "integer", + "optional": true + }, + { + "name": "aggregation", + "type": "block", + "optional": true, + "arguments": [ + { + "token": "ALIGN", + "name": "value", + "type": "integer", + "optional": true + }, + { + "type": "oneof", + "token": "AGGREGATION", + "name": "aggregator", + "arguments": [ + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "std.p", + "type": "pure-token", + "token": "STD.P" + }, + { + "name": "std.s", + "type": "pure-token", + "token": "STD.S" + }, + { + "name": "var.p", + "type": "pure-token", + "token": "VAR.P" + }, + { + "name": "var.s", + "type": "pure-token", + "token": "VAR.S" + }, + { + "name": "twa", + "type": "pure-token", + "token": "TWA", + "since": "1.8.0" + } + ] + }, + { + "name": "bucketDuration", + "type": "integer" + }, + { + "name": "buckettimestamp", + "type": "pure-token", + "token": "BUCKETTIMESTAMP", + "optional": true, + "since": "1.8.0" + }, + { + "name": "empty", + "type": "pure-token", + "token": "EMPTY", + "optional": true, + "since": "1.8.0" + } + ] + }, + { + "name": "filterExpr", + "token": "FILTER", + "type": "oneof", + "arguments": [ + { + "name": "l=v", + "type": "string" + }, + { + "name": "l!=v", + "type": "string" + }, + { + "name": "l=", + "type": "string" + }, + { + "name": "l!=", + "type": "string" + }, + { + "name": "l=(v1,v2,...)", + "type": "string" + }, + { + "name": "l!=(v1,v2,...)", + "type": "string" + } + ], + "multiple": true + }, + { + "type": "block", + "name": "groupby", + "optional": true, + "arguments": [ + { + "name": "GROUPBY", + "type": "pure-token", + "token": "GROUPBY" + }, + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "REDUCE" + }, + { + "type": "string", + "name": "reducer" + } + ] + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.MREVRANGE": { + "summary": "Query a range across multiple time-series by filters in reverse direction", + "complexity": "O(n/m+k) where n = Number of data points, m = Chunk size (data points per chunk), k = Number of data points that are in the requested ranges", + "since": "1.4.0", + "arguments": [ + { + "name": "fromTimestamp", + "type": "string" + }, + { + "name": "toTimestamp", + "type": "string" + }, + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + }, + { + "token": "FILTER_BY_TS", + "name": "Timestamp", + "type": "integer", + "multiple": true, + "optional": true + }, + { + "type": "block", + "name": "fbv", + "optional": true, + "arguments": [ + { + "name": "FILTER_BY_VALUE", + "type": "pure-token", + "token": "FILTER_BY_VALUE" + }, + { + "type": "double", + "name": "min" + }, + { + "type": "double", + "name": "max" + } + ] + }, + { + "name": "labels", + "type": "oneof", + "arguments": [ + { + "name": "WITHLABELS", + "type": "pure-token", + "token": "WITHLABELS" + }, + { + "type": "block", + "name": "SELECTED_LABELS_BLOCK", + "arguments": [ + { + "name": "SELECTED_LABELS", + "type": "pure-token", + "token": "SELECTED_LABELS" + }, + { + "name": "label1", + "type": "string", + "multiple": true + } + ] + } + ], + "optional": true + }, + { + "token": "COUNT", + "name": "count", + "type": "integer", + "optional": true + }, + { + "name": "aggregation", + "type": "block", + "optional": true, + "arguments": [ + { + "token": "ALIGN", + "name": "value", + "type": "integer", + "optional": true + }, + { + "type": "oneof", + "token": "AGGREGATION", + "name": "aggregator", + "arguments": [ + { + "name": "avg", + "type": "pure-token", + "token": "AVG" + }, + { + "name": "first", + "type": "pure-token", + "token": "FIRST" + }, + { + "name": "last", + "type": "pure-token", + "token": "LAST" + }, + { + "name": "min", + "type": "pure-token", + "token": "MIN" + }, + { + "name": "max", + "type": "pure-token", + "token": "MAX" + }, + { + "name": "sum", + "type": "pure-token", + "token": "SUM" + }, + { + "name": "range", + "type": "pure-token", + "token": "RANGE" + }, + { + "name": "count", + "type": "pure-token", + "token": "COUNT" + }, + { + "name": "std.p", + "type": "pure-token", + "token": "STD.P" + }, + { + "name": "std.s", + "type": "pure-token", + "token": "STD.S" + }, + { + "name": "var.p", + "type": "pure-token", + "token": "VAR.P" + }, + { + "name": "var.s", + "type": "pure-token", + "token": "VAR.S" + }, + { + "name": "twa", + "type": "pure-token", + "token": "TWA", + "since": "1.8.0" + } + ] + }, + { + "name": "bucketDuration", + "type": "integer" + }, + { + "name": "buckettimestamp", + "type": "pure-token", + "token": "BUCKETTIMESTAMP", + "optional": true, + "since": "1.8.0" + }, + { + "name": "empty", + "type": "pure-token", + "token": "EMPTY", + "optional": true, + "since": "1.8.0" + } + ] + }, + { + "name": "filterExpr", + "token": "FILTER", + "type": "oneof", + "arguments": [ + { + "name": "l=v", + "type": "string" + }, + { + "name": "l!=v", + "type": "string" + }, + { + "name": "l=", + "type": "string" + }, + { + "name": "l!=", + "type": "string" + }, + { + "name": "l=(v1,v2,...)", + "type": "string" + }, + { + "name": "l!=(v1,v2,...)", + "type": "string" + } + ], + "multiple": true + }, + { + "type": "block", + "name": "groupby", + "optional": true, + "arguments": [ + { + "name": "GROUPBY", + "type": "pure-token", + "token": "GROUPBY" + }, + { + "type": "string", + "name": "label" + }, + { + "type": "string", + "name": "REDUCE" + }, + { + "type": "string", + "name": "reducer" + } + ] + } + ], + "group": "timeseries" + }, + "TS.GET": { + "summary": "Get the sample with the highest timestamp from a given time series", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.MGET": { + "summary": "Get the sample with the highest timestamp from each time series matching a specific filter", + "complexity": "O(n) where n is the number of time-series that match the filters", + "arguments": [ + { + "name": "LATEST", + "type": "string", + "optional": true, + "since": "1.8.0" + }, + { + "name": "labels", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "WITHLABELS", + "type": "pure-token", + "token": "WITHLABELS" + }, + { + "type": "block", + "name": "SELECTED_LABELS_BLOCK", + "arguments": [ + { + "name": "SELECTED_LABELS", + "type": "pure-token", + "token": "SELECTED_LABELS" + }, + { + "name": "label1", + "type": "string", + "multiple": true + } + ] + } + ] + }, + { + "name": "filterExpr", + "token": "FILTER", + "type": "oneof", + "arguments": [ + { + "name": "l=v", + "type": "string" + }, + { + "name": "l!=v", + "type": "string" + }, + { + "name": "l=", + "type": "string" + }, + { + "name": "l!=", + "type": "string" + }, + { + "name": "l=(v1,v2,...)", + "type": "string" + }, + { + "name": "l!=(v1,v2,...)", + "type": "string" + } + ], + "multiple": true + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.INFO": { + "summary": "Returns information and statistics for a time series", + "complexity": "O(1)", + "arguments": [ + { + "name": "key", + "type": "key" + }, + { + "name": "DEBUG", + "type": "string", + "optional": true + } + ], + "since": "1.0.0", + "group": "timeseries" + }, + "TS.QUERYINDEX": { + "summary": "Get all time series keys matching a filter list", + "complexity": "O(n) where n is the number of time-series that match the filters", + "arguments": [ + { + "name": "filterExpr", + "type": "oneof", + "arguments": [ + { + "name": "l=v", + "type": "string" + }, + { + "name": "l!=v", + "type": "string" + }, + { + "name": "l=", + "type": "string" + }, + { + "name": "l!=", + "type": "string" + }, + { + "name": "l=(v1,v2,...)", + "type": "string" + }, + { + "name": "l!=(v1,v2,...)", + "type": "string" + } + ], + "multiple": true + } + ], + "since": "1.0.0", + "group": "timeseries" + } +}