diff options
Diffstat (limited to 'examples/redis-unstable/src/commands/xadd.json')
| -rw-r--r-- | examples/redis-unstable/src/commands/xadd.json | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/examples/redis-unstable/src/commands/xadd.json b/examples/redis-unstable/src/commands/xadd.json new file mode 100644 index 0000000..77e6de4 --- /dev/null +++ b/examples/redis-unstable/src/commands/xadd.json @@ -0,0 +1,231 @@ +{ + "XADD": { + "summary": "Appends a new message to a stream. Creates the key if it doesn't exist.", + "complexity": "O(1) when adding a new entry, O(N) when trimming where N being the number of entries evicted.", + "group": "stream", + "since": "5.0.0", + "arity": -5, + "function": "xaddCommand", + "history": [ + [ + "6.2.0", + "Added the `NOMKSTREAM` option, `MINID` trimming strategy and the `LIMIT` option." + ], + [ + "7.0.0", + "Added support for the `<ms>-*` explicit ID form." + ], + [ + "8.2.0", + "Added the `KEEPREF`, `DELREF` and `ACKED` options." + ] + ], + "command_flags": [ + "WRITE", + "DENYOOM", + "FAST" + ], + "acl_categories": [ + "STREAM" + ], + "command_tips": [ + "NONDETERMINISTIC_OUTPUT" + ], + "key_specs": [ + { + "notes": "UPDATE instead of INSERT because of the optional trimming feature", + "flags": [ + "RW", + "UPDATE" + ], + "begin_search": { + "index": { + "pos": 1 + } + }, + "find_keys": { + "range": { + "lastkey": 0, + "step": 1, + "limit": 0 + } + } + } + ], + "arguments": [ + { + "name": "key", + "type": "key", + "key_spec_index": 0 + }, + { + "token": "NOMKSTREAM", + "name": "nomkstream", + "type": "pure-token", + "optional": true, + "since": "6.2.0" + }, + { + "name": "condition", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "keepref", + "type": "pure-token", + "token": "KEEPREF" + }, + { + "name": "delref", + "type": "pure-token", + "token": "DELREF" + }, + { + "name": "acked", + "type": "pure-token", + "token": "ACKED" + } + ] + }, + { + "name": "idmp", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "idmpauto-with-pid", + "type": "block", + "arguments": [ + { + "token": "IDMPAUTO", + "name": "idmpauto-token", + "type": "pure-token" + }, + { + "name": "pid", + "type": "string", + "display_text": "producer-id" + } + ] + }, + { + "name": "idmp-with-pid-iid", + "type": "block", + "arguments": [ + { + "token": "IDMP", + "name": "idmp-token", + "type": "pure-token" + }, + { + "name": "pid", + "type": "string", + "display_text": "producer-id" + }, + { + "name": "iid", + "type": "string", + "display_text": "idempotent-id" + } + ] + } + ] + }, + { + "name": "trim", + "type": "block", + "optional": true, + "arguments": [ + { + "name": "strategy", + "type": "oneof", + "arguments": [ + { + "name": "maxlen", + "type": "pure-token", + "token": "MAXLEN" + }, + { + "name": "minid", + "type": "pure-token", + "token": "MINID", + "since": "6.2.0" + } + ] + }, + { + "name": "operator", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "equal", + "type": "pure-token", + "token": "=" + }, + { + "name": "approximately", + "type": "pure-token", + "token": "~" + } + ] + }, + { + "name": "threshold", + "type": "string" + }, + { + "token": "LIMIT", + "name": "count", + "type": "integer", + "optional": true, + "since": "6.2.0" + } + ] + }, + { + "name": "id-selector", + "type": "oneof", + "arguments": [ + { + "name": "auto-id", + "type": "pure-token", + "token": "*" + }, + { + "name": "id", + "type": "string" + } + ] + }, + { + "name": "data", + "type": "block", + "multiple": true, + "arguments": [ + { + "name": "field", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + } + ], + "reply_schema": { + "oneOf":[ + { + "description": "The ID of the added entry. The ID is the one auto-generated if * is passed as ID argument, otherwise the command just returns the same ID specified by the user during insertion.", + "type": "string", + "pattern": "[0-9]+-[0-9]+" + }, + { + "description": "The NOMKSTREAM option is given and the key doesn't exist.", + "type": "null" + } + ] + } + } +} |
