{ "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" } ] } ] } }