summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/src/commands/set.json
diff options
context:
space:
mode:
authorMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
committerMitja Felicijan <mitja.felicijan@gmail.com>2026-01-21 22:40:55 +0100
commit5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda (patch)
tree1acdfa5220cd13b7be43a2a01368e80d306473ca /examples/redis-unstable/src/commands/set.json
parentc7ab12bba64d9c20ccd79b132dac475f7bc3923e (diff)
downloadcrep-5d8dfe892a2ea89f706ee140c3bdcfd89fe03fda.tar.gz
Add Redis source code for testing
Diffstat (limited to 'examples/redis-unstable/src/commands/set.json')
-rw-r--r--examples/redis-unstable/src/commands/set.json180
1 files changed, 180 insertions, 0 deletions
diff --git a/examples/redis-unstable/src/commands/set.json b/examples/redis-unstable/src/commands/set.json
new file mode 100644
index 0000000..7885e10
--- /dev/null
+++ b/examples/redis-unstable/src/commands/set.json
@@ -0,0 +1,180 @@
+{
+ "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."
+ ],
+ [
+ "8.4.0",
+ "Added 'IFEQ', 'IFNE', 'IFDEQ', 'IFDNE' options."
+ ]
+ ],
+ "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`/`IFEQ`/`IFDEQ` options or condition not met).",
+ "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": "ifeq-value",
+ "type": "string",
+ "token": "IFEQ",
+ "since": "8.4.0"
+ },
+ {
+ "name": "ifne-value",
+ "type": "string",
+ "token": "IFNE",
+ "since": "8.4.0"
+ },
+ {
+ "name": "ifdeq-digest",
+ "type": "integer",
+ "token": "IFDEQ",
+ "since": "8.4.0"
+ },
+ {
+ "name": "ifdne-digest",
+ "type": "integer",
+ "token": "IFDNE",
+ "since": "8.4.0"
+ }
+ ]
+ },
+ {
+ "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"
+ }
+ ]
+ }
+ ]
+ }
+}