diff --git a/README.md b/README.md index 3e925e4..1651cfb 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ https://corifeus.com/redis-ui --- -# 🏍️ The p3x-redis-ui-server package motor that is connected to the p3x-redis-ui-material web user interface v2024.4.123 +# 🏍️ The p3x-redis-ui-server package motor that is connected to the p3x-redis-ui-material web user interface v2024.4.124 @@ -114,7 +114,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-REDIS-UI-SERVER**](https://corifeus.com/redis-ui-server) Build v2024.4.123 +[**P3X-REDIS-UI-SERVER**](https://corifeus.com/redis-ui-server) Build v2024.4.124 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/artifacts/cluster.md b/artifacts/cluster.md index 01493cb..811ab27 100644 --- a/artifacts/cluster.md +++ b/artifacts/cluster.md @@ -25,7 +25,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-REDIS-UI-SERVER**](https://corifeus.com/redis-ui-server) Build v2024.4.123 +[**P3X-REDIS-UI-SERVER**](https://corifeus.com/redis-ui-server) Build v2024.4.124 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/package.json b/package.json index 2f94902..2ba7aca 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p3x-redis-ui-server", - "version": "2024.4.123", + "version": "2024.4.124", "description": "🏍️ The p3x-redis-ui-server package motor that is connected to the p3x-redis-ui-material web user interface", "corifeus": { "icon": "fas fa-flag-checkered", diff --git a/src/lib/boot.js b/src/lib/boot.js index 640e7cd..a7f5dde 100644 --- a/src/lib/boot.js +++ b/src/lib/boot.js @@ -27,6 +27,7 @@ const boot = async () => { koaService: p3xrs.koa }) + /* const checkLicense = require('./check-license') checkLicense({ socket: p3xrs.socketIo.socketio, @@ -42,7 +43,11 @@ const boot = async () => { license: p3xrs.connections.license } }) - }, 1000 * 60 /* 1 minute */ * 60) + }, 1000 * 60 /* 1 minute */ //* 60) + + + // it was not working, so it's disabled... + p3xrs.cfg.donated = true p3xrs.redisConnections = {} p3xrs.redisConnectionsSubscriber = {} diff --git a/src/lib/redis-static-commands.js b/src/lib/redis-static-commands.js new file mode 100644 index 0000000..e3057fe --- /dev/null +++ b/src/lib/redis-static-commands.js @@ -0,0 +1 @@ +module.exports = [["zrandmember",-2,["readonly"],1,1,1,["@read","@sortedset","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geosearch",-7,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["auth",-2,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["touch",-2,["readonly","fast"],1,-1,1,["@keyspace","@read","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["dump",2,["readonly"],1,1,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["config",-2,[],0,0,0,["@slow"],[],[],[["config|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["config|rewrite",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["config|get",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["config|resetstat",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["config|set",-4,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]]]],["pttl",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["set",-3,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["notes","RW and ACCESS due to the optional `GET` argument","flags",["RW","access","update","variable_flags"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["smove",4,["write","fast"],1,2,1,["@write","@set","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["randomkey",1,["readonly"],0,0,0,["@keyspace","@read","@slow"],["request_policy:all_shards","nondeterministic_output"],[],[]],["getdel",2,["write","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo",-2,[],0,0,0,["@slow"],[],[],[["xinfo|help",2,["loading","stale"],0,0,0,["@stream","@slow"],[],[],[]],["xinfo|stream",-3,["readonly"],2,2,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo|consumers",4,["readonly"],2,2,1,["@read","@stream","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo|groups",3,["readonly"],2,2,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["replicaof",3,["admin","noscript","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["wait",3,["noscript"],0,0,0,["@slow","@connection"],["request_policy:all_shards","response_policy:agg_min"],[],[]],["move",3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bzmpop",-5,["write","blocking","movablekeys"],0,0,0,["@write","@sortedset","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["lpos",-3,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["module",-2,[],0,0,0,["@slow"],[],[],[["module|loadex",-3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["module|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["module|load",-3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["module|list",2,["admin","noscript"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output_order"],[],[]],["module|unload",3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["zrevrangebyscore",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zremrangebyscore",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hrandfield",-2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfdebug",3,["write","denyoom","admin"],2,2,1,["@write","@hyperloglog","@admin","@slow","@dangerous"],[],[["flags",["RW","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["migrate",-6,["write","movablekeys"],3,3,1,["@keyspace","@write","@slow","@dangerous"],["nondeterministic_output"],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",3]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","access","delete","incomplete"],"begin_search",["type","keyword","spec",["keyword","KEYS","startfrom",-2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["xack",-4,["write","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["flushall",-1,["write"],0,0,0,["@keyspace","@write","@slow","@dangerous"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["multi",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["renamenx",3,["write","fast"],1,2,1,["@keyspace","@write","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pexpiretime",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sync",1,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["lpush",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["strlen",2,["readonly","fast"],1,1,1,["@read","@string","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zinter",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["geoadd",-5,["write","denyoom"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xadd",-5,["write","denyoom","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["notes","UPDATE instead of INSERT because of the optional trimming feature","flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lolwut",-1,["readonly","fast"],0,0,0,["@read","@fast"],[],[],[]],["xlen",2,["readonly","fast"],1,1,1,["@read","@stream","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zinterstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["unwatch",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["xtrim",-4,["write"],1,1,1,["@write","@stream","@slow"],["nondeterministic_output"],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hdel",-3,["write","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xsetid",-3,["write","denyoom","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["reset",1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["scan",-2,["readonly"],0,0,0,["@keyspace","@read","@slow"],["nondeterministic_output","request_policy:special"],[],[]],["del",-2,["write"],1,-1,1,["@keyspace","@write","@slow"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RM","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["zlexcount",4,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zdiff",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["sinterstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["zincrby",4,["write","denyoom","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadiusbymember",-5,["write","denyoom","movablekeys"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STORE","startfrom",5]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STOREDIST","startfrom",5]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["rpushx",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["swapdb",3,["write","fast"],0,0,0,["@keyspace","@write","@fast","@dangerous"],[],[],[]],["command",-1,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[["command|getkeys",-4,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|docs",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|info",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|help",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|count",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|list",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|getkeysandflags",-4,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]]]],["function",-2,[],0,0,0,["@slow"],[],[],[["function|delete",3,["write","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|help",2,["loading","stale"],0,0,0,["@slow","@scripting"],[],[],[]],["function|load",-3,["write","denyoom","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|dump",2,["noscript"],0,0,0,["@slow","@scripting"],[],[],[]],["function|flush",-2,["write","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|list",-2,["noscript"],0,0,0,["@slow","@scripting"],["nondeterministic_output_order"],[],[]],["function|kill",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:one_succeeded"],[],[]],["function|restore",-3,["write","denyoom","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|stats",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]]]],["script",-2,[],0,0,0,["@slow"],[],[],[["script|exists",-3,["noscript"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:agg_logical_and"],[],[]],["script|flush",-2,["noscript"],0,0,0,["@slow","@scripting"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["script|debug",3,["noscript"],0,0,0,["@slow","@scripting"],[],[],[]],["script|help",2,["loading","stale"],0,0,0,["@slow","@scripting"],[],[],[]],["script|load",3,["noscript","stale"],0,0,0,["@slow","@scripting"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["script|kill",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:one_succeeded"],[],[]]]],["sadd",-3,["write","denyoom","fast"],1,1,1,["@write","@set","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["subscribe",-2,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["srem",-3,["write","fast"],1,1,1,["@write","@set","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hlen",2,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hstrlen",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["exists",-2,["readonly","fast"],1,-1,1,["@keyspace","@read","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["zadd",-4,["write","denyoom","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["substr",4,["readonly"],1,1,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["restore",-4,["write","denyoom"],1,1,1,["@keyspace","@write","@slow","@dangerous"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["fcall",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RW and UPDATE","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["lcs",-3,["readonly"],1,2,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",1,"keystep",1,"limit",0]]]],[]],["bgrewriteaof",1,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["hgetall",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["debug",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["spublish",3,["pubsub","loading","stale","fast"],1,1,1,["@pubsub","@fast"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setex",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["expireat",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["incr",2,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["rpush",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["get",2,["readonly","fast"],1,1,1,["@read","@string","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrange",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sunion",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["geosearchstore",-8,["write","denyoom"],1,2,1,["@write","@geo","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sismember",3,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pexpire",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["linsert",5,["write","denyoom"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geopos",-2,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["quit",-1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["pfselftest",1,["admin"],0,0,0,["@hyperloglog","@admin","@slow","@dangerous"],[],[],[]],["mset",-3,["write","denyoom"],1,-1,2,["@write","@string","@slow"],["request_policy:multi_shard","response_policy:all_succeeded"],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",2,"limit",0]]]],[]],["readonly",1,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["zcount",4,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["evalsha_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["zscore",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lrem",4,["write"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lmove",5,["write","denyoom"],1,2,1,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["restore-asking",-4,["write","denyoom","asking"],1,1,1,["@keyspace","@write","@slow","@dangerous"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["client",-2,[],0,0,0,["@slow"],[],[],[["client|unpause",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|setname",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|caching",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|info",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output"],[],[]],["client|getname",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|tracking",-3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|id",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|reply",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|help",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|pause",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|no-evict",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|unblock",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|trackinginfo",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|list",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],["nondeterministic_output"],[],[]],["client|kill",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|getredir",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]]]],["bitfield",-2,["write","denyoom"],1,1,1,["@write","@bitmap","@slow"],[],[["notes","This command allows both access and modification of the key","flags",["RW","access","update","variable_flags"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["dbsize",1,["readonly","fast"],0,0,0,["@keyspace","@read","@fast"],["request_policy:all_shards","response_policy:agg_sum"],[],[]],["hincrby",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lpushx",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["decrby",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zscan",-3,["readonly"],1,1,1,["@read","@sortedset","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zpopmin",-2,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lindex",3,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zremrangebylex",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object",-2,[],0,0,0,["@slow"],[],[],[["object|help",2,["loading","stale"],0,0,0,["@keyspace","@slow"],[],[],[]],["object|encoding",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|idletime",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|refcount",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|freq",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["sdiff",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["lmpop",-4,["write","movablekeys"],0,0,0,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["zremrangebyrank",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["asking",1,["fast"],0,0,0,["@fast","@connection"],[],[],[]],["blpop",-3,["write","noscript","blocking"],1,-2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["sort",-2,["write","denyoom","movablekeys"],1,1,1,["@write","@set","@sortedset","@list","@slow","@dangerous"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["notes","For the optional BY/GET keyword. It is marked 'unknown' because the key names derive from the content of the key we sort","flags",["RO","access"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]],["notes","For the optional STORE keyword. It is marked 'unknown' because the keyword can appear anywhere in the argument array","flags",["OW","update"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]]],[]],["ping",-1,["fast"],0,0,0,["@fast","@connection"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["publish",3,["pubsub","loading","stale","fast"],0,0,0,["@pubsub","@fast"],[],[],[]],["geodist",-4,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrem",-3,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadius_ro",-6,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["ttl",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setrange",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bitpos",-3,["readonly"],1,1,1,["@read","@bitmap","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zcard",2,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sunsubscribe",-1,["pubsub","noscript","loading","stale"],1,-1,1,["@pubsub","@slow"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["zpopmax",-2,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["llen",2,["readonly","fast"],1,1,1,["@read","@list","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["brpop",-3,["write","noscript","blocking"],1,-2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["lrange",4,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["expire",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["unsubscribe",-1,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["zrevrangebylex",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["spop",-2,["write","fast"],1,1,1,["@write","@set","@fast"],["nondeterministic_output"],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zunionstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["incrby",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sintercard",-3,["readonly","movablekeys"],0,0,0,["@read","@set","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["xclaim",-6,["write","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getrange",4,["readonly"],1,1,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sinter",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["psync",-3,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["failover",-1,["admin","noscript","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["pfcount",-2,["readonly"],1,-1,1,["@read","@hyperloglog","@slow"],[],[["notes","RW because it may change the internal representation of the key, and propagate to replicas","flags",["RW","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["hscan",-3,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrangebylex",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["replconf",-1,["admin","noscript","loading","stale","allow_busy"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl",-2,[],0,0,0,["@slow"],[],[],[["acl|cat",-2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|save",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|users",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|getuser",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|dryrun",-4,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|load",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|list",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|whoami",2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|genpass",-2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|deluser",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|log",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|setuser",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["eval_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RO and ACCESS","flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["xgroup",-2,[],0,0,0,["@slow"],[],[],[["xgroup|create",-5,["write","denyoom"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|delconsumer",5,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|createconsumer",5,["write","denyoom"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|help",2,["loading","stale"],0,0,0,["@stream","@slow"],[],[],[]],["xgroup|setid",-5,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|destroy",4,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["ltrim",4,["write"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["psubscribe",-2,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["hmget",-3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["info",-1,["loading","stale"],0,0,0,["@slow","@dangerous"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["watch",-2,["noscript","loading","stale","fast","allow_busy"],1,-1,1,["@fast","@transaction"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["slowlog",-2,[],0,0,0,["@slow"],[],[],[["slowlog|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["slowlog|get",-2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","nondeterministic_output"],[],[]],["slowlog|reset",2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["slowlog|len",2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:agg_sum","nondeterministic_output"],[],[]]]],["xautoclaim",-6,["write","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bitop",-4,["write","denyoom"],2,-1,1,["@write","@bitmap","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",3]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["hvals",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["latency",-2,[],0,0,0,["@slow"],[],[],[["latency|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["latency|histogram",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|history",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|graph",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|reset",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["latency|doctor",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|latest",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]]]],["time",1,["loading","stale","fast"],0,0,0,["@fast"],["nondeterministic_output"],[],[]],["xrange",-4,["readonly"],1,1,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hkeys",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["copy",-3,["write","denyoom"],1,2,1,["@keyspace","@write","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["punsubscribe",-1,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["hello",-1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["xdel",-3,["write","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["blmove",6,["write","denyoom","noscript","blocking"],1,2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bzpopmin",-3,["write","noscript","blocking","fast"],1,-2,1,["@write","@sortedset","@fast","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["flushdb",-1,["write"],0,0,0,["@keyspace","@write","@slow","@dangerous"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["hmset",-4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sdiffstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["smismember",-3,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getex",-2,["write","fast"],1,1,1,["@write","@string","@fast"],[],[["notes","RW and UPDATE because it changes the TTL","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bitcount",-2,["readonly"],1,1,1,["@read","@bitmap","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["discard",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["pfadd",-2,["write","denyoom","fast"],1,1,1,["@write","@hyperloglog","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["msetnx",-3,["write","denyoom"],1,-1,2,["@write","@string","@slow"],["request_policy:multi_shard","response_policy:agg_min"],[["flags",["OW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",2,"limit",0]]]],[]],["unlink",-2,["write","fast"],1,-1,1,["@keyspace","@write","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RM","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["bgsave",-1,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["zmscore",-3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["smembers",2,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["echo",2,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["decr",2,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["shutdown",-1,["admin","noscript","loading","stale","no_multi","allow_busy"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["rename",3,["write"],1,2,1,["@keyspace","@write","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lpop",-2,["write","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrevrange",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hget",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["brpoplpush",4,["write","denyoom","noscript","blocking"],1,2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xrevrange",-4,["readonly"],1,1,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["persist",2,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["fcall_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RO and ACCESS","flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["setbit",4,["write","denyoom"],1,1,1,["@write","@bitmap","@slow"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["srandmember",-2,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geohash",-2,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["incrbyfloat",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["rpoplpush",3,["write","denyoom"],1,2,1,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["exec",1,["noscript","loading","stale","skip_slowlog"],0,0,0,["@slow","@transaction"],[],[],[]],["xread",-4,["readonly","blocking","movablekeys"],0,0,0,["@read","@stream","@slow","@blocking"],[],[["flags",["RO","access"],"begin_search",["type","keyword","spec",["keyword","STREAMS","startfrom",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",2]]]],[]],["memory",-2,[],0,0,0,["@slow"],[],[],[["memory|purge",2,[],0,0,0,["@slow"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["memory|malloc-stats",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["memory|doctor",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["memory|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["memory|stats",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["memory|usage",-3,["readonly"],2,2,1,["@read","@slow"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["georadius",-6,["write","denyoom","movablekeys"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STORE","startfrom",6]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STOREDIST","startfrom",6]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["save",1,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["hsetnx",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lastsave",1,["loading","stale","fast"],0,0,0,["@admin","@fast","@dangerous"],["nondeterministic_output"],[],[]],["zrangebyscore",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["eval",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RW and UPDATE","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["sunionstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["hexists",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zmpop",-4,["write","movablekeys"],0,0,0,["@write","@sortedset","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["cluster",-2,[],0,0,0,["@slow"],[],[],[["cluster|keyslot",3,["stale"],0,0,0,["@slow"],[],[],[]],["cluster|setslot",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|links",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|saveconfig",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|reset",-2,["admin","noscript","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|set-config-epoch",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|slaves",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|shards",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|delslotsrange",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|bumpepoch",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|replicate",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|info",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|getkeysinslot",4,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|replicas",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|flushslots",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|addslotsrange",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|meet",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|delslots",-3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["cluster|addslots",-3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|slots",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|nodes",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|countkeysinslot",3,["stale"],0,0,0,["@slow"],[],[],[]],["cluster|count-failure-reports",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|forget",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|failover",-2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|myid",2,["stale"],0,0,0,["@slow"],[],[],[]]]],["scard",2,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["slaveof",3,["admin","noscript","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["rpop",-2,["write","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrangestore",-5,["write","denyoom"],1,2,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["select",2,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["zrevrank",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hset",-4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pubsub",-2,[],0,0,0,["@slow"],[],[],[["pubsub|channels",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["pubsub|numsub",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|shardchannels",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|numpat",2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|shardnumsub",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]]]],["zrank",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["role",1,["noscript","loading","stale","fast"],0,0,0,["@admin","@fast","@dangerous"],[],[],[]],["zunion",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["getbit",3,["readonly","fast"],1,1,1,["@read","@bitmap","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pexpireat",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setnx",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["OW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["blmpop",-5,["write","blocking","movablekeys"],0,0,0,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["xreadgroup",-7,["write","blocking","movablekeys"],0,0,0,["@write","@stream","@slow","@blocking"],[],[["flags",["RO","access"],"begin_search",["type","keyword","spec",["keyword","STREAMS","startfrom",4]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",2]]]],[]],["bitfield_ro",-2,["readonly","fast"],1,1,1,["@read","@bitmap","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lset",4,["write","denyoom"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["append",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["keys",2,["readonly"],0,0,0,["@keyspace","@read","@slow","@dangerous"],["request_policy:all_shards","nondeterministic_output_order"],[],[]],["xpending",-3,["readonly"],1,1,1,["@read","@stream","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hincrbyfloat",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["mget",-2,["readonly","fast"],1,-1,1,["@read","@string","@fast"],["request_policy:multi_shard"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["evalsha",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["psetex",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zintercard",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["readwrite",1,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["monitor",1,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["bzpopmax",-3,["write","noscript","blocking","fast"],1,-2,1,["@write","@sortedset","@fast","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["sort_ro",-2,["readonly","movablekeys"],1,1,1,["@read","@set","@sortedset","@list","@slow","@dangerous"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["notes","For the optional BY/GET keyword. It is marked 'unknown' because the key names derive from the content of the key we sort","flags",["RO","access"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]]],[]],["zdiffstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["getset",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfmerge",-2,["write","denyoom"],1,-1,1,["@write","@hyperloglog","@slow"],[],[["flags",["RW","access","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["georadiusbymember_ro",-5,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["expiretime",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["type",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sscan",-3,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["ssubscribe",-2,["pubsub","noscript","loading","stale"],1,-1,1,["@pubsub","@slow"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]]] \ No newline at end of file diff --git a/src/service/socket.io/request/connection-connect.js b/src/service/socket.io/request/connection-connect.js index a65a9e1..b8b5527 100644 --- a/src/service/socket.io/request/connection-connect.js +++ b/src/service/socket.io/request/connection-connect.js @@ -6,8 +6,7 @@ const Redis = require('../../../lib/ioredis-cluster') const sharedIoRedis = require('../shared') -const staticCommands = [["xread",-4,["readonly","blocking","movablekeys"],0,0,0,["@read","@stream","@slow","@blocking"],[],[["flags",["RO","access"],"begin_search",["type","keyword","spec",["keyword","STREAMS","startfrom",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",2]]]],[]],["zrange",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["ssubscribe",-2,["pubsub","noscript","loading","stale"],1,-1,1,["@pubsub","@slow"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["lrem",4,["write"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["keys",2,["readonly"],0,0,0,["@keyspace","@read","@slow","@dangerous"],["request_policy:all_shards","nondeterministic_output_order"],[],[]],["zpopmax",-2,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xsetid",-3,["write","denyoom","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadiusbymember",-5,["write","denyoom","movablekeys"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STORE","startfrom",5]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STOREDIST","startfrom",5]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zinterstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["hkeys",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xadd",-5,["write","denyoom","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["notes","UPDATE instead of INSERT because of the optional trimming feature","flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrangestore",-5,["write","denyoom"],1,2,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getset",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xtrim",-4,["write"],1,1,1,["@write","@stream","@slow"],["nondeterministic_output"],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["migrate",-6,["write","movablekeys"],3,3,1,["@keyspace","@write","@slow","@dangerous"],["nondeterministic_output"],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",3]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","access","delete","incomplete"],"begin_search",["type","keyword","spec",["keyword","KEYS","startfrom",-2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["smismember",-3,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["smembers",2,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["eval",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RW and UPDATE","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["rename",3,["write"],1,2,1,["@keyspace","@write","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["brpop",-3,["write","noscript","blocking"],1,-2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["bzpopmin",-3,["write","noscript","blocking","fast"],1,-2,1,["@write","@sortedset","@fast","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["bzmpop",-5,["write","blocking","movablekeys"],0,0,0,["@write","@sortedset","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["srandmember",-2,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["move",3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zscore",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hset",-4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrevrank",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["dbsize",1,["readonly","fast"],0,0,0,["@keyspace","@read","@fast"],["request_policy:all_shards","response_policy:agg_sum"],[],[]],["multi",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["ltrim",4,["write"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zmpop",-4,["write","movablekeys"],0,0,0,["@write","@sortedset","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["memory",-2,[],0,0,0,["@slow"],[],[],[["memory|doctor",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["memory|purge",2,[],0,0,0,["@slow"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["memory|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["memory|usage",-3,["readonly"],2,2,1,["@read","@slow"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["memory|malloc-stats",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["memory|stats",2,[],0,0,0,["@slow"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]]]],["lolwut",-1,["readonly","fast"],0,0,0,["@read","@fast"],[],[],[]],["lcs",-3,["readonly"],1,2,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",1,"keystep",1,"limit",0]]]],[]],["flushdb",-1,["write"],0,0,0,["@keyspace","@write","@slow","@dangerous"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["zrank",3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hincrby",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pexpiretime",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hello",-1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["hstrlen",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["publish",3,["pubsub","loading","stale","fast"],0,0,0,["@pubsub","@fast"],[],[],[]],["sunion",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["sinter",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["time",1,["loading","stale","fast"],0,0,0,["@fast"],["nondeterministic_output"],[],[]],["lmove",5,["write","denyoom"],1,2,1,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["eval_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RO and ACCESS","flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["pttl",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["rpoplpush",3,["write","denyoom"],1,2,1,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["spop",-2,["write","fast"],1,1,1,["@write","@set","@fast"],["nondeterministic_output"],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getex",-2,["write","fast"],1,1,1,["@write","@string","@fast"],[],[["notes","RW and UPDATE because it changes the TTL","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lpush",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["client",-2,[],0,0,0,["@slow"],[],[],[["client|kill",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|unpause",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|reply",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|id",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|getname",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|info",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output"],[],[]],["client|unblock",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|list",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],["nondeterministic_output"],[],[]],["client|pause",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|trackinginfo",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|help",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|caching",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|tracking",-3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|getredir",2,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["client|no-evict",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous","@connection"],[],[],[]],["client|setname",3,["noscript","loading","stale"],0,0,0,["@slow","@connection"],[],[],[]]]],["xrange",-4,["readonly"],1,1,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zcard",2,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geosearch",-7,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["restore-asking",-4,["write","denyoom","asking"],1,1,1,["@keyspace","@write","@slow","@dangerous"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["punsubscribe",-1,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["slowlog",-2,[],0,0,0,["@slow"],[],[],[["slowlog|len",2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:agg_sum","nondeterministic_output"],[],[]],["slowlog|get",-2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","nondeterministic_output"],[],[]],["slowlog|reset",2,["admin","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["slowlog|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]]]],["object",-2,[],0,0,0,["@slow"],[],[],[["object|encoding",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|help",2,["loading","stale"],0,0,0,["@keyspace","@slow"],[],[],[]],["object|idletime",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|refcount",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["object|freq",3,["readonly"],2,2,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["expiretime",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sort",-2,["write","denyoom","movablekeys"],1,1,1,["@write","@set","@sortedset","@list","@slow","@dangerous"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["notes","For the optional BY/GET keyword. It is marked 'unknown' because the key names derive from the content of the key we sort","flags",["RO","access"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]],["notes","For the optional STORE keyword. It is marked 'unknown' because the keyword can appear anywhere in the argument array","flags",["OW","update"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]]],[]],["watch",-2,["noscript","loading","stale","fast","allow_busy"],1,-1,1,["@fast","@transaction"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["msetnx",-3,["write","denyoom"],1,-1,2,["@write","@string","@slow"],["request_policy:multi_shard","response_policy:agg_min"],[["flags",["OW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",2,"limit",0]]]],[]],["function",-2,[],0,0,0,["@slow"],[],[],[["function|load",-3,["write","denyoom","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|dump",2,["noscript"],0,0,0,["@slow","@scripting"],[],[],[]],["function|kill",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:one_succeeded"],[],[]],["function|help",2,["loading","stale"],0,0,0,["@slow","@scripting"],[],[],[]],["function|delete",3,["write","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|list",-2,["noscript"],0,0,0,["@slow","@scripting"],["nondeterministic_output_order"],[],[]],["function|flush",-2,["write","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|restore",-3,["write","denyoom","noscript"],0,0,0,["@write","@slow","@scripting"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["function|stats",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]]]],["sscan",-3,["readonly"],1,1,1,["@read","@set","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getdel",2,["write","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["info",-1,["loading","stale"],0,0,0,["@slow","@dangerous"],["nondeterministic_output","request_policy:all_shards","response_policy:special"],[],[]],["psetex",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["mset",-3,["write","denyoom"],1,-1,2,["@write","@string","@slow"],["request_policy:multi_shard","response_policy:all_succeeded"],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",2,"limit",0]]]],[]],["copy",-3,["write","denyoom"],1,2,1,["@keyspace","@write","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadius",-6,["write","denyoom","movablekeys"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STORE","startfrom",6]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","update"],"begin_search",["type","keyword","spec",["keyword","STOREDIST","startfrom",6]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setbit",4,["write","denyoom"],1,1,1,["@write","@bitmap","@slow"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pubsub",-2,[],0,0,0,["@slow"],[],[],[["pubsub|channels",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|numpat",2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["pubsub|shardnumsub",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|numsub",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["pubsub|shardchannels",-2,["pubsub","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]]]],["evalsha_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["lset",4,["write","denyoom"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["blmove",6,["write","denyoom","noscript","blocking"],1,2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["srem",-3,["write","fast"],1,1,1,["@write","@set","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setex",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sadd",-3,["write","denyoom","fast"],1,1,1,["@write","@set","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrevrangebylex",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["wait",3,["noscript"],0,0,0,["@slow","@connection"],["request_policy:all_shards","response_policy:agg_min"],[],[]],["rpush",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["save",1,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["strlen",2,["readonly","fast"],1,1,1,["@read","@string","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["brpoplpush",4,["write","denyoom","noscript","blocking"],1,2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xreadgroup",-7,["write","blocking","movablekeys"],0,0,0,["@write","@stream","@slow","@blocking"],[],[["flags",["RO","access"],"begin_search",["type","keyword","spec",["keyword","STREAMS","startfrom",4]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",2]]]],[]],["zrevrangebyscore",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hincrbyfloat",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lrange",4,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["subscribe",-2,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["sinterstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["zunionstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["debug",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["sync",1,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["quit",-1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["zintercard",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["zrem",-3,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["cluster",-2,[],0,0,0,["@slow"],[],[],[["cluster|keyslot",3,["stale"],0,0,0,["@slow"],[],[],[]],["cluster|reset",-2,["admin","noscript","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|slots",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|info",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|setslot",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|bumpepoch",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|meet",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|delslotsrange",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|nodes",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|getkeysinslot",4,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|slaves",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|links",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|saveconfig",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|replicas",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|failover",-2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|addslotsrange",-4,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|count-failure-reports",3,["admin","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output"],[],[]],["cluster|delslots",-3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|forget",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|shards",2,["stale"],0,0,0,["@slow"],["nondeterministic_output"],[],[]],["cluster|flushslots",2,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|countkeysinslot",3,["stale"],0,0,0,["@slow"],[],[],[]],["cluster|set-config-epoch",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["cluster|addslots",-3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["cluster|myid",2,["stale"],0,0,0,["@slow"],[],[],[]],["cluster|replicate",3,["admin","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["type",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zunion",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["zrangebyscore",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hget",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lmpop",-4,["write","movablekeys"],0,0,0,["@write","@list","@slow"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["spublish",3,["pubsub","loading","stale","fast"],1,1,1,["@pubsub","@fast"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zinter",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["fcall",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RW and UPDATE","flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["replicaof",3,["admin","noscript","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["decr",2,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["expireat",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["incr",2,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["acl",-2,[],0,0,0,["@slow"],[],[],[["acl|list",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|deluser",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|dryrun",-4,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|save",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|load",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|genpass",-2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|setuser",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|getuser",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|whoami",2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|cat",-2,["noscript","loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["acl|users",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["acl|log",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["xclaim",-6,["write","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["substr",4,["readonly"],1,1,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["set",-3,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["notes","RW and ACCESS due to the optional `GET` argument","flags",["RW","access","update","variable_flags"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["ping",-1,["fast"],0,0,0,["@fast","@connection"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["swapdb",3,["write","fast"],0,0,0,["@keyspace","@write","@fast","@dangerous"],[],[],[]],["unlink",-2,["write","fast"],1,-1,1,["@keyspace","@write","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RM","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["psync",-3,["admin","noscript","no_async_loading","no_multi"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["sort_ro",-2,["readonly","movablekeys"],1,1,1,["@read","@set","@sortedset","@list","@slow","@dangerous"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["notes","For the optional BY/GET keyword. It is marked 'unknown' because the key names derive from the content of the key we sort","flags",["RO","access"],"begin_search",["type","unknown","spec",[]],"find_keys",["type","unknown","spec",[]]]],[]],["hrandfield",-2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["reset",1,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["llen",2,["readonly","fast"],1,1,1,["@read","@list","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zscan",-3,["readonly"],1,1,1,["@read","@sortedset","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zremrangebyscore",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zincrby",4,["write","denyoom","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfselftest",1,["admin"],0,0,0,["@hyperloglog","@admin","@slow","@dangerous"],[],[],[]],["rpushx",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["script",-2,[],0,0,0,["@slow"],[],[],[["script|flush",-2,["noscript"],0,0,0,["@slow","@scripting"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["script|help",2,["loading","stale"],0,0,0,["@slow","@scripting"],[],[],[]],["script|debug",3,["noscript"],0,0,0,["@slow","@scripting"],[],[],[]],["script|load",3,["noscript","stale"],0,0,0,["@slow","@scripting"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["script|exists",-3,["noscript"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:agg_logical_and"],[],[]],["script|kill",2,["noscript","allow_busy"],0,0,0,["@slow","@scripting"],["request_policy:all_shards","response_policy:one_succeeded"],[],[]]]],["hlen",2,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zlexcount",4,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["module",-2,[],0,0,0,["@slow"],[],[],[["module|loadex",-3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["module|load",-3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["module|list",2,["admin","noscript"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output_order"],[],[]],["module|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["module|unload",3,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["xgroup",-2,[],0,0,0,["@slow"],[],[],[["xgroup|destroy",4,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|createconsumer",5,["write","denyoom"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|delconsumer",5,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|help",2,["loading","stale"],0,0,0,["@stream","@slow"],[],[],[]],["xgroup|create",-5,["write","denyoom"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xgroup|setid",-5,["write"],2,2,1,["@write","@stream","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]]],["psubscribe",-2,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["dump",2,["readonly"],1,1,1,["@keyspace","@read","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["exists",-2,["readonly","fast"],1,-1,1,["@keyspace","@read","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["getrange",4,["readonly"],1,1,1,["@read","@string","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["smove",4,["write","fast"],1,2,1,["@write","@set","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sdiff",-2,["readonly"],1,-1,1,["@read","@set","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["latency",-2,[],0,0,0,["@slow"],[],[],[["latency|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["latency|doctor",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|histogram",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|latest",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|history",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]],["latency|reset",-2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["latency|graph",3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["nondeterministic_output","request_policy:all_nodes","response_policy:special"],[],[]]]],["zpopmin",-2,["write","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hscan",-3,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["readwrite",1,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["command",-1,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[["command|docs",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|getkeysandflags",-4,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|count",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|help",2,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]],["command|info",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|list",-2,["loading","stale"],0,0,0,["@slow","@connection"],["nondeterministic_output_order"],[],[]],["command|getkeys",-4,["loading","stale"],0,0,0,["@slow","@connection"],[],[],[]]]],["hdel",-3,["write","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfadd",-2,["write","denyoom","fast"],1,1,1,["@write","@hyperloglog","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zremrangebylex",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zadd",-4,["write","denyoom","fast"],1,1,1,["@write","@sortedset","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["fcall_ro",-3,["readonly","noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["notes","We cannot tell how the keys will be used so we assume the worst, RO and ACCESS","flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["bitfield",-2,["write","denyoom"],1,1,1,["@write","@bitmap","@slow"],[],[["notes","This command allows both access and modification of the key","flags",["RW","access","update","variable_flags"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["renamenx",3,["write","fast"],1,2,1,["@keyspace","@write","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["OW","insert"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["monitor",1,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["sunionstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["geodist",-4,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["scan",-2,["readonly"],0,0,0,["@keyspace","@read","@slow"],["nondeterministic_output","request_policy:special"],[],[]],["bitcount",-2,["readonly"],1,1,1,["@read","@bitmap","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["setrange",4,["write","denyoom"],1,1,1,["@write","@string","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["getbit",3,["readonly","fast"],1,1,1,["@read","@bitmap","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xpending",-3,["readonly"],1,1,1,["@read","@stream","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hgetall",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["decrby",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["select",2,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["lpushx",-3,["write","denyoom","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zremrangebyrank",4,["write"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geoadd",-5,["write","denyoom"],1,1,1,["@write","@geo","@slow"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["readonly",1,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["zdiffstore",-4,["write","denyoom","movablekeys"],1,1,1,["@write","@sortedset","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["unsubscribe",-1,["pubsub","noscript","loading","stale"],0,0,0,["@pubsub","@slow"],[],[],[]],["flushall",-1,["write"],0,0,0,["@keyspace","@write","@slow","@dangerous"],["request_policy:all_shards","response_policy:all_succeeded"],[],[]],["incrby",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["scard",2,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["hvals",2,["readonly"],1,1,1,["@read","@hash","@slow"],["nondeterministic_output_order"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["del",-2,["write"],1,-1,1,["@keyspace","@write","@slow"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RM","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["persist",2,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pexpire",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadius_ro",-6,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["expire",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["asking",1,["fast"],0,0,0,["@fast","@connection"],[],[],[]],["hexists",3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["slaveof",3,["admin","noscript","stale","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["hsetnx",4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bzpopmax",-3,["write","noscript","blocking","fast"],1,-2,1,["@write","@sortedset","@fast","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["xack",-4,["write","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lpop",-2,["write","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfmerge",-2,["write","denyoom"],1,-1,1,["@write","@hyperloglog","@slow"],[],[["flags",["RW","access","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["replconf",-1,["admin","noscript","loading","stale","allow_busy"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["setnx",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["OW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bitfield_ro",-2,["readonly","fast"],1,1,1,["@read","@bitmap","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["incrbyfloat",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["evalsha",-3,["noscript","stale","skip_monitor","no_mandatory_keys","movablekeys"],0,0,0,["@slow","@scripting"],[],[["flags",["RW","access","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["restore",-4,["write","denyoom"],1,1,1,["@keyspace","@write","@slow","@dangerous"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["sintercard",-3,["readonly","movablekeys"],0,0,0,["@read","@set","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["xlen",2,["readonly","fast"],1,1,1,["@read","@stream","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["blmpop",-5,["write","blocking","movablekeys"],0,0,0,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["hmset",-4,["write","denyoom","fast"],1,1,1,["@write","@hash","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geosearchstore",-8,["write","denyoom"],1,2,1,["@write","@geo","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["get",2,["readonly","fast"],1,1,1,["@read","@string","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["discard",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["pexpireat",-3,["write","fast"],1,1,1,["@keyspace","@write","@fast"],[],[["flags",["RW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["ttl",2,["readonly","fast"],1,1,1,["@keyspace","@read","@fast"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xautoclaim",-6,["write","fast"],1,1,1,["@write","@stream","@fast"],["nondeterministic_output"],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrandmember",-2,["readonly"],1,1,1,["@read","@sortedset","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrangebylex",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zcount",4,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lastsave",1,["loading","stale","fast"],0,0,0,["@admin","@fast","@dangerous"],["nondeterministic_output"],[],[]],["hmget",-3,["readonly","fast"],1,1,1,["@read","@hash","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bitop",-4,["write","denyoom"],2,-1,1,["@write","@bitmap","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",3]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["randomkey",1,["readonly"],0,0,0,["@keyspace","@read","@slow"],["request_policy:all_shards","nondeterministic_output"],[],[]],["rpop",-2,["write","fast"],1,1,1,["@write","@list","@fast"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["shutdown",-1,["admin","noscript","loading","stale","no_multi","allow_busy"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["sismember",3,["readonly","fast"],1,1,1,["@read","@set","@fast"],[],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zrevrange",-4,["readonly"],1,1,1,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["unwatch",1,["noscript","loading","stale","fast","allow_busy"],0,0,0,["@fast","@transaction"],[],[],[]],["linsert",5,["write","denyoom"],1,1,1,["@write","@list","@slow"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["geohash",-2,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["touch",-2,["readonly","fast"],1,-1,1,["@keyspace","@read","@fast"],["request_policy:multi_shard","response_policy:agg_sum"],[["flags",["RO"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["config",-2,[],0,0,0,["@slow"],[],[],[["config|help",2,["loading","stale"],0,0,0,["@slow"],[],[],[]],["config|resetstat",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["config|set",-4,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],["request_policy:all_nodes","response_policy:all_succeeded"],[],[]],["config|get",-3,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["config|rewrite",2,["admin","noscript","loading","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]]]],["role",1,["noscript","loading","stale","fast"],0,0,0,["@admin","@fast","@dangerous"],[],[],[]],["blpop",-3,["write","noscript","blocking"],1,-2,1,["@write","@list","@slow","@blocking"],[],[["flags",["RW","access","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-2,"keystep",1,"limit",0]]]],[]],["zdiff",-3,["readonly","movablekeys"],0,0,0,["@read","@sortedset","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","keynum","spec",["keynumidx",0,"firstkey",1,"keystep",1]]]],[]],["xinfo",-2,[],0,0,0,["@slow"],[],[],[["xinfo|groups",3,["readonly"],2,2,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo|stream",-3,["readonly"],2,2,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo|consumers",4,["readonly"],2,2,1,["@read","@stream","@slow"],["nondeterministic_output"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["xinfo|help",2,["loading","stale"],0,0,0,["@stream","@slow"],[],[],[]]]],["geopos",-2,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["append",3,["write","denyoom","fast"],1,1,1,["@write","@string","@fast"],[],[["flags",["RW","insert"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["pfdebug",3,["write","denyoom","admin"],2,2,1,["@write","@hyperloglog","@admin","@slow","@dangerous"],[],[["flags",["RW","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lpos",-3,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["lindex",3,["readonly"],1,1,1,["@read","@list","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["auth",-2,["noscript","loading","stale","fast","no_auth","allow_busy"],0,0,0,["@fast","@connection"],[],[],[]],["sdiffstore",-3,["write","denyoom"],1,-1,1,["@write","@set","@slow"],[],[["flags",["OW","update"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]],["flags",["RO","access"],"begin_search",["type","index","spec",["index",2]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["failover",-1,["admin","noscript","stale"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["bitpos",-3,["readonly"],1,1,1,["@read","@bitmap","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["zmscore",-3,["readonly","fast"],1,1,1,["@read","@sortedset","@fast"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["bgsave",-1,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["xdel",-3,["write","fast"],1,1,1,["@write","@stream","@fast"],[],[["flags",["RW","delete"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["georadiusbymember_ro",-5,["readonly"],1,1,1,["@read","@geo","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]],["exec",1,["noscript","loading","stale","skip_slowlog"],0,0,0,["@slow","@transaction"],[],[],[]],["echo",2,["loading","stale","fast"],0,0,0,["@fast","@connection"],[],[],[]],["mget",-2,["readonly","fast"],1,-1,1,["@read","@string","@fast"],["request_policy:multi_shard"],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["pfcount",-2,["readonly"],1,-1,1,["@read","@hyperloglog","@slow"],[],[["notes","RW because it may change the internal representation of the key, and propagate to replicas","flags",["RW","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["bgrewriteaof",1,["admin","noscript","no_async_loading"],0,0,0,["@admin","@slow","@dangerous"],[],[],[]],["sunsubscribe",-1,["pubsub","noscript","loading","stale"],1,-1,1,["@pubsub","@slow"],[],[["flags",["not_key"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",-1,"keystep",1,"limit",0]]]],[]],["xrevrange",-4,["readonly"],1,1,1,["@read","@stream","@slow"],[],[["flags",["RO","access"],"begin_search",["type","index","spec",["index",1]],"find_keys",["type","range","spec",["lastkey",0,"keystep",1,"limit",0]]]],[]]] - +const staticCommands = require('../../../lib/redis-static-commands') const generateConnectInfo = async (options) => { const {socket, redis, payload} = options diff --git a/src/service/socket.io/request/console.js b/src/service/socket.io/request/console.js index 33541bf..5699ea0 100644 --- a/src/service/socket.io/request/console.js +++ b/src/service/socket.io/request/console.js @@ -2,7 +2,7 @@ const sharedIoRedis = require('../shared') const parser = sharedIoRedis.argumentParser -const disabledCommands = ['monitor'] +const disabledCommands = ['monitor', 'quit'] const consolePrefix = 'socket.io console call' module.exports = async (options) => {