From 317c0644ccf108aa23ef3fd8358bd66c2840bfc0 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:40:54 +0200 Subject: Adding upstream version 5:7.2.4. Signed-off-by: Daniel Baumann --- src/commands/set.json | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 src/commands/set.json (limited to 'src/commands/set.json') diff --git a/src/commands/set.json b/src/commands/set.json new file mode 100644 index 0000000..8236bc7 --- /dev/null +++ b/src/commands/set.json @@ -0,0 +1,152 @@ +{ + "SET": { + "summary": "Sets the string value of a key, ignoring its type. The key is created if it doesn't exist.", + "complexity": "O(1)", + "group": "string", + "since": "1.0.0", + "arity": -3, + "function": "setCommand", + "get_keys_function": "setGetKeys", + "history": [ + [ + "2.6.12", + "Added the `EX`, `PX`, `NX` and `XX` options." + ], + [ + "6.0.0", + "Added the `KEEPTTL` option." + ], + [ + "6.2.0", + "Added the `GET`, `EXAT` and `PXAT` option." + ], + [ + "7.0.0", + "Allowed the `NX` and `GET` options to be used together." + ] + ], + "command_flags": [ + "WRITE", + "DENYOOM" + ], + "acl_categories": [ + "STRING" + ], + "key_specs": [ + { + "notes": "RW and ACCESS due to the optional `GET` argument", + "flags": [ + "RW", + "ACCESS", + "UPDATE", + "VARIABLE_FLAGS" + ], + "begin_search": { + "index": { + "pos": 1 + } + }, + "find_keys": { + "range": { + "lastkey": 0, + "step": 1, + "limit": 0 + } + } + } + ], + "reply_schema": { + "anyOf":[ + { + "description": "`GET` not given: Operation was aborted (conflict with one of the `XX`/`NX` options).", + "type": "null" + }, + { + "description": "`GET` not given: The key was set.", + "const": "OK" + }, + { + "description": "`GET` given: The key didn't exist before the `SET`", + "type": "null" + }, + { + "description": "`GET` given: The previous value of the key", + "type": "string" + } + ] + }, + "arguments": [ + { + "name": "key", + "type": "key", + "key_spec_index": 0 + }, + { + "name": "value", + "type": "string" + }, + { + "name": "condition", + "type": "oneof", + "optional": true, + "since": "2.6.12", + "arguments": [ + { + "name": "nx", + "type": "pure-token", + "token": "NX" + }, + { + "name": "xx", + "type": "pure-token", + "token": "XX" + } + ] + }, + { + "name": "get", + "token": "GET", + "type": "pure-token", + "optional": true, + "since": "6.2.0" + }, + { + "name": "expiration", + "type": "oneof", + "optional": true, + "arguments": [ + { + "name": "seconds", + "type": "integer", + "token": "EX", + "since": "2.6.12" + }, + { + "name": "milliseconds", + "type": "integer", + "token": "PX", + "since": "2.6.12" + }, + { + "name": "unix-time-seconds", + "type": "unix-time", + "token": "EXAT", + "since": "6.2.0" + }, + { + "name": "unix-time-milliseconds", + "type": "unix-time", + "token": "PXAT", + "since": "6.2.0" + }, + { + "name": "keepttl", + "type": "pure-token", + "token": "KEEPTTL", + "since": "6.0.0" + } + ] + } + ] + } +} -- cgit v1.2.3