tile38/core/commands_gen.go

1956 lines
40 KiB
Go
Raw Normal View History

2016-03-08 15:32:39 +03:00
// This file was autogenerated. DO NOT EDIT.
package core
import (
"encoding/json"
"strings"
)
const (
clear = "\x1b[0m"
bright = "\x1b[1m"
gray = "\x1b[90m"
yellow = "\x1b[33m"
)
2016-04-13 04:47:57 +03:00
// Command represents a Tile38 command.
2016-03-08 15:32:39 +03:00
type Command struct {
Name string `json:"-"`
Summary string `json:"summary"`
Complexity string `json:"complexity"`
Arguments []Argument `json:"arguments"`
Since string `json:"since"`
Group string `json:"group"`
DevOnly bool `json:"dev"`
}
2016-04-13 04:47:57 +03:00
// String returns a string representation of the command.
2016-03-08 15:32:39 +03:00
func (c Command) String() string {
var s = c.Name
for _, arg := range c.Arguments {
s += " " + arg.String()
}
return s
}
2016-04-13 04:47:57 +03:00
// TermOutput returns a string representation of the command suitable for displaying in a terminal.
2016-03-08 15:32:39 +03:00
func (c Command) TermOutput(indent string) string {
line := c.String()
var line1 string
if strings.HasPrefix(line, c.Name) {
line1 = bright + c.Name + clear + gray + line[len(c.Name):] + clear
} else {
line1 = bright + strings.Replace(c.String(), " ", " "+clear+gray, 1) + clear
}
line2 := yellow + "summary: " + clear + c.Summary
//line3 := yellow + "since: " + clear + c.Since
return indent + line1 + "\n" + indent + line2 + "\n" //+ indent + line3 + "\n"
}
2016-04-13 04:47:57 +03:00
// EnumArg represents a enum arguments.
2016-03-08 15:32:39 +03:00
type EnumArg struct {
Name string `json:"name"`
Arguments []Argument `json:"arguments"`
}
2016-04-13 04:47:57 +03:00
// String returns a string representation of an EnumArg.
2016-03-08 15:32:39 +03:00
func (a EnumArg) String() string {
var s = a.Name
for _, arg := range a.Arguments {
s += " " + arg.String()
}
return s
}
2016-04-13 04:47:57 +03:00
// Argument represents a command argument.
2016-03-08 15:32:39 +03:00
type Argument struct {
Command string `json:"command"`
NameAny interface{} `json:"name"`
TypeAny interface{} `json:"type"`
Optional bool `json:"optional"`
Multiple bool `json:"multiple"`
Variadic bool `json:"variadic"`
Enum []string `json:"enum"`
EnumArgs []EnumArg `json:"enumargs"`
}
2016-04-13 04:47:57 +03:00
// String returns a string representation of an Argument.
2016-03-08 15:32:39 +03:00
func (a Argument) String() string {
var s string
if a.Command != "" {
s += " " + a.Command
}
if len(a.EnumArgs) > 0 {
eargs := ""
for _, arg := range a.EnumArgs {
v := arg.String()
if strings.Contains(v, " ") {
v = "(" + v + ")"
}
eargs += v + "|"
}
if len(eargs) > 0 {
eargs = eargs[:len(eargs)-1]
}
s += " " + eargs
} else if len(a.Enum) > 0 {
s += " " + strings.Join(a.Enum, "|")
} else {
names, _ := a.NameTypes()
subs := ""
for _, name := range names {
subs += " " + name
}
subs = strings.TrimSpace(subs)
s += " " + subs
if a.Variadic {
2017-08-24 20:11:16 +03:00
if len(names) == 0 {
s += " [" + subs + " ...]"
} else {
s += " [" + names[len(names)-1] + " ...]"
}
2016-03-08 15:32:39 +03:00
}
if a.Multiple {
s += " ..."
}
}
s = strings.TrimSpace(s)
if a.Optional {
s = "[" + s + "]"
}
return s
}
func parseAnyStringArray(any interface{}) []string {
if str, ok := any.(string); ok {
return []string{str}
} else if any, ok := any.([]interface{}); ok {
arr := []string{}
for _, any := range any {
if str, ok := any.(string); ok {
arr = append(arr, str)
}
}
return arr
}
return []string{}
}
2016-04-13 04:47:57 +03:00
// NameTypes returns the types and names of an argument as separate arrays.
2016-03-08 15:32:39 +03:00
func (a Argument) NameTypes() (names, types []string) {
names = parseAnyStringArray(a.NameAny)
types = parseAnyStringArray(a.TypeAny)
if len(types) > len(names) {
types = types[:len(names)]
} else {
for len(types) < len(names) {
types = append(types, "")
}
}
return
}
2016-04-13 04:47:57 +03:00
// Commands is a map of all of the commands.
2016-03-08 15:32:39 +03:00
var Commands = func() map[string]Command {
var commands map[string]Command
if err := json.Unmarshal([]byte(commandsJSON), &commands); err != nil {
panic(err.Error())
}
for name, command := range commands {
command.Name = strings.ToUpper(name)
commands[name] = command
}
return commands
}()
var commandsJSON = `{
"SET":{
"summary": "Sets the value of an id",
"complexity": "O(1)",
"arguments": [
{
"name": "key",
"type": "string"
},
{
"name": "id",
2016-04-13 04:47:57 +03:00
"type": "string"
2016-03-08 15:32:39 +03:00
},
{
"command": "FIELD",
"name": ["name", "value"],
"type": ["string", "double"],
"optional": true,
"multiple": true
},
{
"command": "EX",
2016-10-03 23:39:47 +03:00
"name": ["seconds"],
"type": ["double"],
"optional": true,
"multiple": false
2016-10-03 18:31:13 +03:00
},
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "NX"
},
{
"name": "XX"
}
]
},
{
"name": "value",
2016-03-08 15:32:39 +03:00
"enumargs": [
{
"name": "OBJECT",
"arguments":[
{
"name": "geojson",
2017-01-10 21:03:09 +03:00
"type": "geojson"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "POINT",
"arguments":[
{
"name": "lat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "lon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "z",
"type": "double",
"optional": true
}
]
},
{
"name": "BOUNDS",
"arguments":[
{
"name": "minlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "minlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "HASH",
"arguments":[
{
"name": "geohash",
2017-01-10 21:03:09 +03:00
"type": "geohash"
2016-03-08 15:32:39 +03:00
}
]
2016-07-10 23:23:50 +03:00
},
{
"name": "STRING",
"arguments":[
{
"name": "value",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-07-10 23:23:50 +03:00
}
]
2016-03-08 15:32:39 +03:00
}
]
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
"EXPIRE": {
"summary": "Set a timeout on an id",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
{
"name": "seconds",
"type": "double"
}
],
"since": "1.0.0",
"group": "keys"
},
"TTL": {
"summary": "Get a timeout on an id",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
}
],
"since": "1.0.0",
"group": "keys"
},
"PERSIST": {
"summary": "Remove the existing timeout on an id",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
}
],
"since": "1.0.0",
"group": "keys"
},
2016-03-08 15:32:39 +03:00
"FSET": {
2017-11-17 04:19:07 +03:00
"summary": "Set the value for one or more fields of an id",
2016-03-08 15:32:39 +03:00
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
{
2017-11-17 04:19:07 +03:00
"command": "XX",
"name": [],
"type": [],
"optional": true
2016-03-08 15:32:39 +03:00
},
{
2017-11-17 04:19:07 +03:00
"name": ["field","value"],
"type": ["string","double"]
},
{
"name": ["field","value"],
"type": ["string","double"],
"multiple": true,
"optional": true
2016-03-08 15:32:39 +03:00
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
"BOUNDS": {
"summary": "Get the combined bounds of all the objects in a key",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
}
],
"since": "1.3.0",
"group": "keys"
},
2016-03-08 15:32:39 +03:00
"GET": {
"summary": "Get the object of an id",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
2016-04-01 22:46:39 +03:00
{
"command": "WITHFIELDS",
"name": [],
"type": [],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "OBJECT"
},
{
"name": "POINT"
},
{
"name": "BOUNDS"
},
{
"name": "HASH",
"arguments": [
{
2016-03-16 04:21:56 +03:00
"name": "geohash",
"type": "geohash"
2016-03-08 15:32:39 +03:00
}
]
}
]
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
"DEL": {
"summary": "Delete an id from a key",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
"DROP": {
"summary": "Remove a key from the database",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
2018-12-29 23:35:56 +03:00
"RENAME": {
"summary": "Rename a key to be stored under a different name.",
"complexity": "O(1)",
"arguments": [
{
"name": "key",
"type": "string"
},
{
"name": "newkey",
"type": "string"
}
],
"since": "1.14.5",
"group": "keys"
},
"RENAMENX": {
"summary": "Rename a key to be stored under a different name, if a new key does not exist.",
"complexity": "O(1)",
"arguments": [
{
"name": "key",
"type": "string"
},
{
"name": "newkey",
"type": "string"
}
],
"since": "1.14.5",
"group": "keys"
},
2016-03-08 15:32:39 +03:00
"KEYS": {
"summary": "Finds all keys matching the given pattern",
"complexity": "O(N) where N is the number of keys in the database",
"arguments":[
{
"name": "pattern",
"type": "pattern"
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
"STATS": {
"summary": "Show stats for one or more keys",
"complexity": "O(N) where N is the number of keys being requested",
"arguments":[
{
"name": "key",
"type": "string",
"variadic": true
}
],
"since": "1.0.0",
2016-03-16 04:21:56 +03:00
"group": "keys"
2016-03-08 15:32:39 +03:00
},
2016-07-13 06:11:02 +03:00
"SEARCH": {
"summary": "Search for string values in a key",
"complexity": "O(N) where N is the number of values in the key",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"command": "CURSOR",
"name": "start",
"type": "integer",
"optional": true
},
{
"command": "LIMIT",
"name": "count",
"type": "integer",
"optional": true
},
{
"command": "MATCH",
"name": "pattern",
"type": "pattern",
"optional": true
},
{
"name": "order",
"optional": true,
"enumargs": [
{
"name": "ASC"
},
{
"name": "DESC"
}
]
},
{
"command": "WHERE",
"name": ["field","min","max"],
"type": ["string","double","double"],
"optional": true,
"multiple": true
},
2017-08-24 21:33:44 +03:00
{
"command": "WHEREIN",
"name": ["field","count","value"],
"type": ["string","integer","double"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-04-13 03:25:38 +03:00
{
"command": "WHEREEVAL",
"name": ["script","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
{
"command": "WHEREEVALSHA",
"name": ["sha1","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
2016-07-13 06:11:02 +03:00
{
"command": "NOFIELDS",
"name": [],
"type": [],
"optional": true
},
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "COUNT"
},
{
"name": "IDS"
}
]
}
],
2016-09-09 18:43:44 +03:00
"since": "1.4.2",
2016-07-13 06:11:02 +03:00
"group": "search"
},
2016-03-08 15:32:39 +03:00
"SCAN": {
"summary": "Incrementally iterate though a key",
"complexity": "O(N) where N is the number of ids in the key",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"command": "CURSOR",
"name": "start",
"type": "integer",
"optional": true
},
{
"command": "LIMIT",
"name": "count",
"type": "integer",
"optional": true
},
{
"command": "MATCH",
"name": "pattern",
"type": "pattern",
"optional": true
},
2016-07-12 22:18:16 +03:00
{
"name": "order",
"optional": true,
"enumargs": [
{
"name": "ASC"
},
{
"name": "DESC"
}
]
},
2016-03-08 15:32:39 +03:00
{
"command": "WHERE",
"name": ["field","min","max"],
"type": ["string","double","double"],
"optional": true,
"multiple": true
},
2017-08-24 21:33:44 +03:00
{
"command": "WHEREIN",
"name": ["field","count","value"],
"type": ["string","integer","double"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-04-13 03:25:38 +03:00
{
"command": "WHEREEVAL",
"name": ["script","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
{
"command": "WHEREEVALSHA",
"name": ["sha1","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
2016-03-08 15:32:39 +03:00
{
"command": "NOFIELDS",
"name": [],
"type": [],
"optional": true
},
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "COUNT"
},
{
"name": "IDS"
},
{
"name": "OBJECTS"
},
{
"name": "POINTS"
},
{
"name": "BOUNDS"
},
{
"name": "HASHES",
"arguments": [
{
"name": "precision",
"type": "integer"
}
]
}
]
}
],
"since": "1.0.0",
"group": "search"
},
"NEARBY": {
"summary": "Searches for ids that are nearby a point",
"complexity": "O(log(N)) where N is the number of ids in the area",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"command": "CURSOR",
"name": "start",
"type": "integer",
"optional": true
},
{
"command": "LIMIT",
"name": "count",
"type": "integer",
"optional": true
},
{
"command": "SPARSE",
"name": "spread",
"type": "integer",
"optional": true
},
{
"command": "MATCH",
"name": "pattern",
"type": "pattern",
"optional": true
},
2017-11-17 04:19:07 +03:00
{
"command": "DISTANCE",
"name": [],
"type": [],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"command": "WHERE",
"name": ["field","min","max"],
"type": ["string","double","double"],
"optional": true,
"multiple": true
},
2017-08-24 21:33:44 +03:00
{
"command": "WHEREIN",
"name": ["field","count","value"],
"type": ["string","integer","double"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-04-13 03:25:38 +03:00
{
"command": "WHEREEVAL",
"name": ["script","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
{
"command": "WHEREEVALSHA",
"name": ["sha1","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
2016-03-08 15:32:39 +03:00
{
"command": "NOFIELDS",
"name": [],
"type": [],
"optional": true
},
{
"command": "FENCE",
"name": [],
"type": [],
"optional": true
},
2016-04-03 00:43:46 +03:00
{
"command": "DETECT",
"name": ["what"],
"type": ["string"],
"optional": true
},
{
"command": "COMMANDS",
"name": ["which"],
"type": ["string"],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "COUNT"
},
{
"name": "IDS"
},
{
"name": "OBJECTS"
},
{
"name": "POINTS"
},
{
"name": "BOUNDS"
},
{
"name": "HASHES",
"arguments": [
{
"name": "precision",
"type": "integer"
}
]
}
]
},
{
2016-05-25 01:58:52 +03:00
"name": "area",
"enumargs": [
{
"name": "POINT",
"arguments": [
{
"name": "lat",
"type": "double"
},
{
"name": "lon",
"type": "double"
},
{
"name": "meters",
"type": "double"
}
]
},
{
"name": "ROAM",
"arguments":[
{
"name": "key",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-05-25 01:58:52 +03:00
},
{
"name": "pattern",
2017-01-10 21:03:09 +03:00
"type": "pattern"
2016-05-25 01:58:52 +03:00
},
{
"name": "meters",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-05-25 01:58:52 +03:00
}
]
}
]
2016-03-08 15:32:39 +03:00
}
],
"since": "1.0.0",
"group": "search"
},
"WITHIN": {
"summary": "Searches for ids that completely within the area",
2016-03-08 15:32:39 +03:00
"complexity": "O(log(N)) where N is the number of ids in the area",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"command": "CURSOR",
"name": "start",
"type": "integer",
"optional": true
},
{
"command": "LIMIT",
"name": "count",
"type": "integer",
"optional": true
},
{
"command": "SPARSE",
"name": "spread",
"type": "integer",
"optional": true
},
{
"command": "MATCH",
"name": "pattern",
"type": "pattern",
"optional": true
},
{
"command": "WHERE",
"name": ["field","min","max"],
"type": ["string","double","double"],
"optional": true,
"multiple": true
},
2017-08-24 21:33:44 +03:00
{
"command": "WHEREIN",
"name": ["field","count","value"],
"type": ["string","integer","double"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-04-13 03:25:38 +03:00
{
"command": "WHEREEVAL",
"name": ["script","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
{
"command": "WHEREEVALSHA",
"name": ["sha1","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
2016-03-08 15:32:39 +03:00
{
"command": "NOFIELDS",
"name": [],
"type": [],
"optional": true
},
{
"command": "FENCE",
"name": [],
"type": [],
"optional": true
},
2016-04-03 00:43:46 +03:00
{
"command": "DETECT",
"name": ["what"],
"type": ["string"],
"optional": true
},
{
2017-01-13 19:04:09 +03:00
"command": "COMMANDS",
"name": ["which"],
"type": ["string"],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "COUNT"
},
{
"name": "IDS"
},
{
"name": "OBJECTS"
},
{
"name": "POINTS"
},
{
"name": "BOUNDS"
},
{
"name": "HASHES",
"arguments": [
{
"name": "precision",
"type": "integer"
}
]
}
]
},
{
"name": "area",
"enumargs": [
{
"name": "GET",
"arguments": [
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
}
]
},
{
"name": "BOUNDS",
"arguments":[
{
"name": "minlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "minlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "OBJECT",
"arguments":[
{
"name": "geojson",
2017-01-10 21:03:09 +03:00
"type": "geojson"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "CIRCLE",
"arguments": [
{
"name": "lat",
"type": "double"
},
{
"name": "lon",
"type": "double"
},
{
"name": "meters",
"type": "double"
}
]
},
2016-03-08 15:32:39 +03:00
{
"name": "TILE",
"arguments":[
{
"name": "x",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "y",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "z",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "QUADKEY",
"arguments":[
{
"name": "quadkey",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "HASH",
"arguments": [
{
2016-03-16 04:21:56 +03:00
"name": "geohash",
"type": "geohash"
2016-03-08 15:32:39 +03:00
}
]
}
]
}
],
"since": "1.0.0",
"group": "search"
},
"INTERSECTS": {
"summary": "Searches for ids that intersect an area",
2016-03-08 15:32:39 +03:00
"complexity": "O(log(N)) where N is the number of ids in the area",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"command": "CURSOR",
"name": "start",
"type": "integer",
"optional": true
},
{
"command": "LIMIT",
"name": "count",
"type": "integer",
"optional": true
},
{
"command": "SPARSE",
"name": "spread",
"type": "integer",
"optional": true
},
{
"command": "MATCH",
"name": "pattern",
"type": "pattern",
"optional": true
},
{
"command": "WHERE",
"name": ["field","min","max"],
"type": ["string","double","double"],
"optional": true,
"multiple": true
},
2017-08-24 21:33:44 +03:00
{
"command": "WHEREIN",
"name": ["field","count","value"],
"type": ["string","integer","double"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-04-13 03:25:38 +03:00
{
"command": "WHEREEVAL",
"name": ["script","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
{
"command": "WHEREEVALSHA",
"name": ["sha1","numargs","arg"],
"type": ["string","integer","string"],
"optional": true,
"multiple": true,
"variadic": true
},
2018-07-28 17:02:49 +03:00
{
"command": "CLIP",
"name": [],
"type": [],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"command": "NOFIELDS",
"name": [],
"type": [],
"optional": true
},
{
"command": "FENCE",
"name": [],
"type": [],
"optional": true
},
2016-04-03 00:43:46 +03:00
{
"command": "DETECT",
"name": ["what"],
"type": ["string"],
"optional": true
},
{
2017-01-13 19:04:09 +03:00
"command": "COMMANDS",
"name": ["which"],
"type": ["string"],
"optional": true
},
2016-03-08 15:32:39 +03:00
{
"name": "type",
"optional": true,
"enumargs": [
{
"name": "COUNT"
},
{
"name": "IDS"
},
{
"name": "OBJECTS"
},
{
"name": "POINTS"
},
{
"name": "BOUNDS"
},
{
"name": "HASHES",
"arguments": [
{
"name": "precision",
"type": "integer"
}
]
}
]
},
{
"name": "area",
"enumargs": [
{
"name": "GET",
"arguments": [
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
}
]
},
{
"name": "BOUNDS",
"arguments":[
{
"name": "minlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "minlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlat",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "maxlon",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "OBJECT",
"arguments":[
{
"name": "geojson",
2017-01-10 21:03:09 +03:00
"type": "geojson"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "CIRCLE",
"arguments": [
{
"name": "lat",
"type": "double"
},
{
"name": "lon",
"type": "double"
},
{
"name": "meters",
"type": "double"
}
]
},
2016-03-08 15:32:39 +03:00
{
"name": "TILE",
"arguments":[
{
"name": "x",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "y",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
},
{
"name": "z",
2017-01-10 21:03:09 +03:00
"type": "double"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "QUADKEY",
"arguments":[
{
"name": "quadkey",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-03-08 15:32:39 +03:00
}
]
},
{
"name": "HASH",
"arguments": [
{
2016-03-16 04:21:56 +03:00
"name": "geohash",
"type": "geohash"
2016-03-08 15:32:39 +03:00
}
]
}
]
}
],
"since": "1.0.0",
"group": "search"
},
"CONFIG GET": {
"summary": "Get the value of a configuration parameter",
"arguments":[
{
"name": "parameter",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-03-08 15:32:39 +03:00
}
],
"group": "server"
},
"CONFIG SET": {
"summary": "Set a configuration parameter to the given value",
"arguments":[
{
"name": "parameter",
2017-01-10 21:03:09 +03:00
"type": "string"
2016-03-08 15:32:39 +03:00
},
{
"name": "value",
"type": "string",
"optional": true
}
],
"group": "server"
},
"CONFIG REWRITE": {
"summary": "Rewrite the configuration file with the in memory configuration",
"arguments":[],
"group": "server"
},
"SERVER": {
"summary":"Show server stats and details",
"complexity": "O(1)",
"arguments": [],
"since": "1.0.0",
"group": "server"
},
"GC": {
"summary":"Forces a garbage collection",
"complexity": "O(1)",
"arguments": [],
"since": "1.0.0",
"group": "server"
},
"READONLY": {
"summary": "Turns on or off readonly mode",
"complexity": "O(1)",
"arguments": [
{
"enum": ["yes","no"]
}
],
"since": "1.0.0",
"group": "server"
},
"FLUSHDB": {
"summary":"Removes all keys",
"complexity": "O(1)",
"arguments": [],
"since": "1.0.0",
"group": "server"
},
"FOLLOW": {
"summary": "Follows a leader host",
"complexity": "O(1)",
"arguments": [
{
"name": "host",
"type": "string"
},
{
"name": "port",
"type": "integer"
}
],
"since": "1.0.0",
"group": "replication"
},
"AOF": {
2016-03-16 04:21:56 +03:00
"summary": "Downloads the AOF starting from pos and keeps the connection alive",
2016-03-08 15:32:39 +03:00
"complexity": "O(1)",
"arguments": [
{
"name": "pos",
"type": "integer"
}
],
"since": "1.0.0",
"group": "replication"
},
"AOFMD5": {
"summary": "Performs a checksum on a portion of the aof",
"complexity": "O(1)",
"arguments": [
{
"name": "pos",
"type": "integer"
},
{
2016-03-14 04:31:59 +03:00
"name": "size",
2016-03-08 15:32:39 +03:00
"type": "integer"
}
],
"since": "1.0.0",
"group": "replication"
},
"AOFSHRINK": {
"summary": "Shrinks the aof in the background",
"group": "replication"
},
"PING": {
"summary": "Ping the server",
"group": "connection"
},
"QUIT": {
"summary": "Close the connection",
"group": "connection"
},
"AUTH": {
"summary": "Authenticate to the server",
"arguments": [
{
"name": "password",
"type": "string"
}
],
"group": "connection"
2016-03-20 18:41:59 +03:00
},
2016-04-13 22:28:44 +03:00
"OUTPUT": {
"summary": "Gets or sets the output format for the current connection.",
"arguments": [
{
"name": "format",
"optional": true,
"enumargs": [
{
"name": "json"
},
{
"name": "resp"
}
]
}
],
"group": "connection"
},
2016-03-20 18:41:59 +03:00
"SETHOOK": {
"summary": "Creates a webhook which points to geofenced search",
"arguments": [
{
"name": "name",
"type": "string"
},
{
"name": "endpoint",
"type": "string"
},
{
"command": "META",
"name": ["name", "value"],
"type": ["string", "string"],
"optional": true,
2018-08-14 21:13:55 +03:00
"multiple": true
},
{
"command": "EX",
"name": ["seconds"],
"type": ["double"],
"optional": true,
"multiple": false
},
2016-03-20 18:41:59 +03:00
{
"enum": ["NEARBY", "WITHIN", "INTERSECTS"]
},
{
"name": "key",
"type": "string"
},
{
"command": "FENCE",
"name": [],
"type": []
},
2016-04-03 00:43:46 +03:00
{
"command": "DETECT",
"name": ["what"],
"type": ["string"],
"optional": true
},
{
2017-01-13 19:04:09 +03:00
"command": "COMMANDS",
"name": ["which"],
"type": ["string"],
"optional": true
},
2016-03-20 18:41:59 +03:00
{
"name": "param",
"type": "string",
"variadic": true
}
],
"group": "webhook"
},
"DELHOOK": {
"summary": "Removes a webhook",
"arguments": [
{
"name": "name",
"type": "string"
}
],
"group": "webhook"
},
"HOOKS": {
"summary": "Finds all hooks matching a pattern",
"arguments":[
{
"name": "pattern",
"type": "pattern"
}
],
"group": "webhook"
2016-09-12 05:20:53 +03:00
},
"PDELHOOK": {
"summary": "Removes all hooks matching a pattern",
"arguments":[
{
"name": "pattern",
"type": "pattern"
}
],
"group": "webhook"
},
2018-08-14 21:13:55 +03:00
"SETCHAN": {
"summary": "Creates a pubsub channel which points to geofenced search",
"arguments": [
{
"name": "name",
"type": "string"
},
{
"command": "META",
"name": ["name", "value"],
"type": ["string", "string"],
"optional": true,
"multiple": true
},
{
"command": "EX",
"name": ["seconds"],
"type": ["double"],
"optional": true,
"multiple": false
},
{
"enum": ["NEARBY", "WITHIN", "INTERSECTS"]
},
{
"name": "key",
"type": "string"
},
{
"command": "FENCE",
"name": [],
"type": []
},
{
"command": "DETECT",
"name": ["what"],
"type": ["string"],
"optional": true
},
{
"command": "COMMANDS",
"name": ["which"],
"type": ["string"],
"optional": true
},
{
"name": "param",
"type": "string",
"variadic": true
}
],
"group": "pubsub"
},
"DELCHAN": {
"summary": "Removes a channel",
"arguments": [
{
"name": "name",
"type": "string"
}
],
"group": "pubsub"
},
"CHANS": {
"summary": "Finds all channels matching a pattern",
"arguments":[
{
"name": "pattern",
"type": "pattern"
}
],
"group": "pubsub"
},
"PDELCHAN": {
"summary": "Removes all channels matching a pattern",
"arguments":[
{
"name": "pattern",
"type": "pattern"
}
],
"group": "pubsub"
},
2018-08-29 23:20:07 +03:00
"SUBSCRIBE": {
"summary": "Subscribe to a geofence channel",
"arguments":[
{
"name": "channel",
"type": "string",
"variadic": true
}
],
"group": "pubsub"
},
"PSUBSCRIBE": {
"summary": "Subscribes the client to the given patterns",
"arguments":[
{
"name": "pattern",
"type": "pattern",
"variadic": true
}
],
"group": "pubsub"
},
"PDEL": {
"summary": "Removes all objects matching a pattern",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "pattern",
"type": "pattern"
}
],
"group": "keys"
2016-12-29 21:54:35 +03:00
},
"JGET": {
"summary": "Get a value from a JSON document",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
{
"name": "path",
"type": "string"
},
{
"command": "RAW",
"name": [],
"type": [],
"optional": true
}
],
"group": "keys"
},
"JSET": {
"summary": "Set a value in a JSON document",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
{
"name": "path",
"type": "string"
},
{
"name": "value",
"type": "string"
},
{
"name": [],
2018-09-02 23:52:42 +03:00
"optional": true,
"enumargs": [
{
"name": "RAW"
},
{
"name": "STR"
}
]
2016-12-29 21:54:35 +03:00
}
],
"group": "keys"
},
"JDEL": {
"summary": "Delete a value from a JSON document",
"complexity": "O(1)",
"arguments":[
{
"name": "key",
"type": "string"
},
{
"name": "id",
"type": "string"
},
{
"name": "path",
"type": "string"
}
],
"group": "keys"
2017-10-06 01:05:12 +03:00
},
"EVAL":{
"summary": "Evaluates a Lua script",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "script",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"EVALSHA":{
"summary": "Evaluates a Lua script cached on the server by its SHA1 digest",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "sha1",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"EVALRO":{
"summary": "Evaluates a read-only Lua script",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "script",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"EVALROSHA":{
"summary": "Evaluates a read-only Lua script cached on the server by its SHA1 digest",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "script",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"EVALNA":{
"summary": "Evaluates a Lua script in a non-atomic fashion",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "script",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"EVALNASHA":{
"summary": "Evaluates, in a non-atomic fashion, a Lua script cached on the server by its SHA1 digest",
2018-12-29 23:35:56 +03:00
"complexity": "Depends on the evaluated script",
2017-10-06 01:05:12 +03:00
"arguments": [
{
"name": "sha1",
"type": "string"
},
{
"name": "numkeys",
"type": "integer"
},
{
"name": "key",
"type": "string",
"optional": true,
"multiple": true
},
{
"name": "arg",
"type": "string",
"optional": true,
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"SCRIPT EXISTS":{
"summary": "Returns information about the existence of the scripts in server cache",
"complexity": "O(N) where N is the number of provided sha1 arguments",
"arguments": [
{
"name": "sha1",
"type": "string",
"multiple": true
}
],
"since": "1.10.0",
"group": "scripting"
},
"SCRIPT LOAD":{
"summary": "Loads the compiled version of a script into the server cache, without executing",
"complexity": "O(N) where N is the number of bytes in the script",
"arguments": [
{
"name": "script",
"type": "string"
}
],
"since": "1.10.0",
"group": "scripting"
},
"SCRIPT FLUSH":{
"summary": "Flushes the server cache of Lua scripts",
"complexity": "O(1)",
"since": "1.10.0",
"group": "scripting"
2016-03-08 15:32:39 +03:00
}
}`