redict/src/commands
Meir Shpilraien (Spielrein) 4db4b43417
Function Flags support (no-writes, no-cluster, allow-state, allow-oom) (#10066)
# Redis Functions Flags

Following the discussion on #10025 Added Functions Flags support.
The PR is divided to 2 sections:
* Add named argument support to `redis.register_function` API.
* Add support for function flags

## `redis.register_function` named argument support

The first part of the PR adds support for named argument on `redis.register_function`, example:
```
redis.register_function{
    function_name='f1',
    callback=function()
        return 'hello'
    end,
    description='some desc'
}
```

The positional arguments is also kept, which means that it still possible to write:
```
redis.register_function('f1', function() return 'hello' end)
```

But notice that it is no longer possible to pass the optional description argument on the positional
argument version. Positional argument was change to allow passing only the mandatory arguments
(function name and callback). To pass more arguments the user must use the named argument version.

As with positional arguments, the `function_name` and `callback` is mandatory and an error will be
raise if those are missing. Also, an error will be raise if an unknown argument name is given or the
arguments type is wrong.

Tests was added to verify the new syntax.

## Functions Flags

The second part of the PR is adding functions flags support.
Flags are given to Redis when the engine calls `functionLibCreateFunction`, supported flags are:

* `no-writes` - indicating the function perform no writes which means that it is OK to run it on:
   * read-only replica
   * Using FCALL_RO
   * If disk error detected
   
   It will not be possible to run a function in those situations unless the function turns on the `no-writes` flag

* `allow-oom` - indicate that its OK to run the function even if Redis is in OOM state, if the function will
  not turn on this flag it will not be possible to run it if OOM reached (even if the function declares `no-writes`
  and even if `fcall_ro` is used). If this flag is set, any command will be allow on OOM (even those that is
  marked with CMD_DENYOOM). The assumption is that this flag is for advance users that knows its
  meaning and understand what they are doing, and Redis trust them to not increase the memory usage.
  (e.g. it could be an INCR or a modification on an existing key, or a DEL command)

* `allow-state` - indicate that its OK to run the function on stale replica, in this case we will also make
  sure the function is only perform `stale` commands and raise an error if not.

* `no-cluster` - indicate to disallow running the function if cluster is enabled.

Default behaviure of functions (if no flags is given):
1. Allow functions to read and write
2. Do not run functions on OOM
3. Do not run functions on stale replica
4. Allow functions on cluster

### Lua API for functions flags

On Lua engine, it is possible to give functions flags as `flags` named argument:

```
redis.register_function{function_name='f1', callback=function() return 1 end, flags={'no-writes', 'allow-oom'}, description='description'}
```

The function flags argument must be a Lua table that contains all the requested flags, The following
will result in an error:
* Unknown flag
* Wrong flag type

Default behaviour is the same as if no flags are used.

Tests were added to verify all flags functionality

## Additional changes
* mark FCALL and FCALL_RO with CMD_STALE flag (unlike EVAL), so that they can run if the function was
  registered with the `allow-stale` flag.
* Verify `CMD_STALE` on `scriptCall` (`redis.call`), so it will not be possible to call commands from script while
  stale unless the command is marked with the `CMD_STALE` flags. so that even if the function is allowed while
  stale we do not allow it to bypass the `CMD_STALE` flag of commands.
* Flags section was added to `FUNCTION LIST` command to provide the set of flags for each function:
```
> FUNCTION list withcode
1)  1) "library_name"
    2) "test"
    3) "engine"
    4) "LUA"
    5) "description"
    6) (nil)
    7) "functions"
    8) 1) 1) "name"
          2) "f1"
          3) "description"
          4) (nil)
          5) "flags"
          6) (empty array)
    9) "library_code"
   10) "redis.register_function{function_name='f1', callback=function() return 1 end}"
```
* Added API to get Redis version from within a script, The redis version can be provided using:
   1. `redis.REDIS_VERSION` - string representation of the redis version in the format of MAJOR.MINOR.PATH
   2. `redis.REDIS_VERSION_NUM` - number representation of the redis version in the format of `0x00MMmmpp`
      (`MM` - major, `mm` - minor,  `pp` - patch). The number version can be used to check if version is greater or less 
      another version. The string version can be used to return to the user or print as logs.

   This new API is provided to eval scripts and functions, it also possible to use this API during functions loading phase.
2022-01-14 14:02:02 +02:00
..
acl-cat.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-deluser.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-genpass.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-getuser.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
acl-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-list.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-load.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-log.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-save.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-setuser.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
acl-users.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl-whoami.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
acl.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
append.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
asking.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
auth.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
bgrewriteaof.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
bgsave.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
bitcount.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
bitfield_ro.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
bitfield.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
bitop.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
bitpos.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
blmove.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
blmpop.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
blpop.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
brpop.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
brpoplpush.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
bzmpop.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
bzpopmax.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
bzpopmin.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
client-caching.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-getname.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-getredir.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-id.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-info.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-kill.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
client-list.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
client-no-evict.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-pause.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
client-reply.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-setname.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-tracking.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-trackinginfo.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-unblock.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client-unpause.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
client.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-addslots.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-addslotsrange.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-bumpepoch.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-count-failure-reports.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-countkeysinslot.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-delslots.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-delslotsrange.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-failover.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-flushslots.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-forget.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-getkeysinslot.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-info.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-keyslot.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-links.json Introduce memory management on cluster link buffers (#9774) 2021-12-16 21:56:59 -08:00
cluster-meet.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-myid.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-nodes.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-replicas.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
cluster-replicate.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-reset.json Change FUNCTION CREATE, DELETE and FLUSH to be WRITE commands instead of MAY_REPLICATE. (#9953) 2021-12-21 16:13:29 +02:00
cluster-saveconfig.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-set-config-epoch.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-setslot.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
cluster-slaves.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
cluster-slots.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
cluster.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
command-count.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
command-docs.json Move doc metadata from COMMAND to COMMAND DOCS (#10056) 2022-01-11 17:16:16 +02:00
command-getkeys.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
command-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
command-info.json Move doc metadata from COMMAND to COMMAND DOCS (#10056) 2022-01-11 17:16:16 +02:00
command-list.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
command.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
config-get.json Multiparam config get. (#9914) 2021-12-16 09:01:13 +02:00
config-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
config-resetstat.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
config-rewrite.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
config-set.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
config.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
copy.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
dbsize.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
debug.json Protected configs and sensitive commands (#9920) 2021-12-19 10:46:16 +02:00
decr.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
decrby.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
del.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
discard.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
dump.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
echo.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
eval_ro.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
eval.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
evalsha_ro.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
evalsha.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
exec.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
exists.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
expire.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
expireat.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
expiretime.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
failover.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
fcall_ro.json Function Flags support (no-writes, no-cluster, allow-state, allow-oom) (#10066) 2022-01-14 14:02:02 +02:00
fcall.json Function Flags support (no-writes, no-cluster, allow-state, allow-oom) (#10066) 2022-01-14 14:02:02 +02:00
flushall.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
flushdb.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
function-delete.json Change FUNCTION CREATE, DELETE and FLUSH to be WRITE commands instead of MAY_REPLICATE. (#9953) 2021-12-21 16:13:29 +02:00
function-dump.json Add FUNCTION DUMP and RESTORE. (#9938) 2021-12-26 09:03:37 +02:00
function-flush.json Change FUNCTION CREATE, DELETE and FLUSH to be WRITE commands instead of MAY_REPLICATE. (#9953) 2021-12-21 16:13:29 +02:00
function-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
function-kill.json Change FUNCTION CREATE, DELETE and FLUSH to be WRITE commands instead of MAY_REPLICATE. (#9953) 2021-12-21 16:13:29 +02:00
function-list.json Redis Function Libraries (#10004) 2022-01-06 13:39:38 +02:00
function-load.json Redis Function Libraries (#10004) 2022-01-06 13:39:38 +02:00
function-restore.json Redis Function Libraries (#10004) 2022-01-06 13:39:38 +02:00
function-stats.json Change FUNCTION CREATE, DELETE and FLUSH to be WRITE commands instead of MAY_REPLICATE. (#9953) 2021-12-21 16:13:29 +02:00
function.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
geoadd.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
geodist.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
geohash.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
geopos.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
georadius_ro.json Fixes 'since' for GEORADIUS[BYMEMBER]_RO (#10034) 2022-01-09 11:13:32 +02:00
georadius.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
georadiusbymember_ro.json Fixes 'since' for GEORADIUS[BYMEMBER]_RO (#10034) 2022-01-09 11:13:32 +02:00
georadiusbymember.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
geosearch.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
geosearchstore.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
get.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
getbit.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
getdel.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
getex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
getrange.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
getset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hdel.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
hello.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
hexists.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hget.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hgetall.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hincrby.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hincrbyfloat.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hkeys.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hlen.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hmget.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hmset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hrandfield.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hscan.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hset.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
hsetnx.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hstrlen.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
hvals.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
incr.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
incrby.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
incrbyfloat.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
info.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
keys.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lastsave.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-doctor.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-graph.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-histogram.json Added INFO LATENCYSTATS section: latency by percentile distribution/latency by cumulative distribution of latencies (#9462) 2022-01-05 14:01:05 +02:00
latency-history.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-latest.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency-reset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
latency.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lcs.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lindex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
linsert.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
llen.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lmove.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lmpop.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lolwut.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lpop.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
lpos.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lpush.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
lpushx.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
lrange.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lrem.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
lset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
ltrim.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-doctor.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-malloc-stats.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-purge.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-stats.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory-usage.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
memory.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
mget.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
migrate.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
module-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
module-list.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
module-load.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
module-unload.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
module.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
monitor.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
move.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
mset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
msetnx.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
multi.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object-encoding.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object-freq.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object-idletime.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object-refcount.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
object.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
persist.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pexpire.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
pexpireat.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
pexpiretime.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pfadd.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pfcount.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pfdebug.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pfmerge.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pfselftest.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
ping.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
psetex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
psubscribe.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
psync.json Ban snapshot-creating commands and other admin commands from transactions (#10015) 2022-01-04 13:37:47 +02:00
pttl.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
publish.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pubsub-channels.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pubsub-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pubsub-numpat.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pubsub-numsub.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
pubsub-shardchannels.json Sharded pubsub implementation (#8621) 2022-01-02 16:54:47 -08:00
pubsub-shardnumsub.json Sharded pubsub implementation (#8621) 2022-01-02 16:54:47 -08:00
pubsub.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
punsubscribe.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
quit.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
randomkey.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
readonly.json update codes according to new json file (#7425) 2022-01-10 08:00:04 +02:00
readwrite.json update codes according to new json file (#7425) 2022-01-10 08:00:04 +02:00
rename.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
renamenx.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
replconf.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
replicaof.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
reset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
restore-asking.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
restore.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
role.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
rpop.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
rpoplpush.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
rpush.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
rpushx.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
sadd.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
save.json Ban snapshot-creating commands and other admin commands from transactions (#10015) 2022-01-04 13:37:47 +02:00
scan.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
scard.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
script-debug.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
script-exists.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
script-flush.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
script-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
script-kill.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
script-load.json Remove EVAL script verbatim replication, propagation, and deterministic execution logic (#9812) 2021-12-21 08:32:42 +02:00
script.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sdiff.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sdiffstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
select.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-ckquorum.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-config.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-debug.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-failover.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-flushconfig.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-get-master-addr-by-name.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-info-cache.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-is-master-down-by-addr.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-master.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-masters.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-monitor.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-myid.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-pending-scripts.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-remove.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-replicas.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-reset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-sentinels.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-set.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel-simulate-failure.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sentinel.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
set.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
setbit.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
setex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
setnx.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
setrange.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
shutdown.json Ban snapshot-creating commands and other admin commands from transactions (#10015) 2022-01-04 13:37:47 +02:00
sinter.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sintercard.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sinterstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sismember.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
slaveof.json Allow most CONFIG SET during loading, block some commands in async-loading (#9878) 2021-12-22 14:11:16 +02:00
slowlog-get.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
slowlog-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
slowlog-len.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
slowlog-reset.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
slowlog.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
smembers.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
smismember.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
smove.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sort_ro.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sort.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
spop.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
spublish.json Sharded pubsub implementation (#8621) 2022-01-02 16:54:47 -08:00
srandmember.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
srem.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
sscan.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
ssubscribe.json Sharded pubsub implementation (#8621) 2022-01-02 16:54:47 -08:00
strlen.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
subscribe.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
substr.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sunion.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sunionstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sunsubscribe.json Sharded pubsub implementation (#8621) 2022-01-02 16:54:47 -08:00
swapdb.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
sync.json Ban snapshot-creating commands and other admin commands from transactions (#10015) 2022-01-04 13:37:47 +02:00
time.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
touch.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
ttl.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
type.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
unlink.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
unsubscribe.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
unwatch.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
wait.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
watch.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xack.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xadd.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
xautoclaim.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xclaim.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xdel.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-create.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-createconsumer.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-delconsumer.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-destroy.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup-setid.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xgroup.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xinfo-consumers.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xinfo-groups.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xinfo-help.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xinfo-stream.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xinfo.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xlen.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xpending.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
xrange.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
xread.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xreadgroup.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xrevrange.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
xsetid.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
xtrim.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zadd.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zcard.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zcount.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zdiff.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zdiffstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zincrby.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zinter.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zintercard.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zinterstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zlexcount.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zmpop.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zmscore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zpopmax.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zpopmin.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrandmember.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrange.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zrangebylex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrangebyscore.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zrangestore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrank.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrem.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zremrangebylex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zremrangebyrank.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zremrangebyscore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrevrange.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrevrangebylex.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zrevrangebyscore.json Add missing metadata to the commands SSOT files. (#10016) 2021-12-29 21:57:40 +02:00
zrevrank.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zscan.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zscore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zunion.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00
zunionstore.json Auto-generate the command table from JSON files (#9656) 2021-12-15 21:23:15 +02:00