 "ZREVRANGE" {:fn-name "zrevrange", :fn-docstring "Return a range of members in a sorted set, by index, with scores ordered from high to low.\n\nZREVRANGE key start stop [WITHSCORES]\n\nAvailable since: 1.2.0.\n\nTime complexity: O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.", :fn-params-fixed [key start stop], :fn-params-more [key start stop & args], :req-args-fixed ["ZREVRANGE" key start stop], :cluster-key-idx 1}
 "SETEX" {:fn-name "setex", :fn-docstring "Set the value and expiration of a key.\n\nSETEX key seconds value\n\nAvailable since: 2.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key seconds value], :fn-params-more nil, :req-args-fixed ["SETEX" key seconds value], :cluster-key-idx 1}
 "LPOP" {:fn-name "lpop", :fn-docstring "Remove and get the first element in a list.\n\nLPOP key\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["LPOP" key], :cluster-key-idx 1}
+"MEMORY STATS" {:fn-name "memory-stats", :fn-docstring "Show memory usage details.\n\nMEMORY STATS \n\nAvailable since: 4.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["MEMORY" "STATS"], :cluster-key-idx 2}
 "ZREVRANGEBYSCORE" {:fn-name "zrevrangebyscore", :fn-docstring "Return a range of members in a sorted set, by score, with scores ordered from high to low.\n\nZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]\n\nAvailable since: 2.2.0.\n\nTime complexity: O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).", :fn-params-fixed [key max min], :fn-params-more [key max min & args], :req-args-fixed ["ZREVRANGEBYSCORE" key max min], :cluster-key-idx 1}
 "ZREVRANGEBYLEX" {:fn-name "zrevrangebylex", :fn-docstring "Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings..\n\nZREVRANGEBYLEX key max min [LIMIT offset count]\n\nAvailable since: 2.8.9.\n\nTime complexity: O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with LIMIT), you can consider it O(log(N)).", :fn-params-fixed [key max min], :fn-params-more [key max min & args], :req-args-fixed ["ZREVRANGEBYLEX" key max min], :cluster-key-idx 1}
 "SMOVE" {:fn-name "smove", :fn-docstring "Move a member from one set to another.\n\nSMOVE source destination member\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [source destination member], :fn-params-more nil, :req-args-fixed ["SMOVE" source destination member], :cluster-key-idx 1}

"SCRIPT KILL" {:fn-name "script-kill", :fn-docstring "Kill the script currently in execution..\n\nSCRIPT KILL \n\nAvailable since: 2.6.0.\n\nTime complexity: O(1)", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["SCRIPT" "KILL"], :cluster-key-idx 2}
"PING" {:fn-name "ping", :fn-docstring "Ping the server.\n\nPING [message]\n\nAvailable since: 1.0.0.\n\n", :fn-params-fixed [], :fn-params-more [& args], :req-args-fixed ["PING"], :cluster-key-idx 1}
"SCRIPT FLUSH" {:fn-name "script-flush", :fn-docstring "Remove all the scripts from the script cache..\n\nSCRIPT FLUSH \n\nAvailable since: 2.6.0.\n\nTime complexity: O(N) with N being the number of scripts in cache", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["SCRIPT" "FLUSH"], :cluster-key-idx 2}
"ZUNIONSTORE" {:fn-name "zunionstore", :fn-docstring "Add multiple sorted sets and store the resulting sorted set in a new key.\n\nZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]\n\nAvailable since: 2.0.0.\n\nTime complexity: O(N)+O(M log(M)) with N being the sum of the sizes of the input sorted sets, and M being the number of elements in the resulting sorted set.", :fn-params-fixed [destination numkeys key], :fn-params-more [destination numkeys key & args], :req-args-fixed ["ZUNIONSTORE" destination numkeys key], :cluster-key-idx 1}
"CLUSTER NODES" {:fn-name "cluster-nodes", :fn-docstring "Get Cluster config for the node.\n\nCLUSTER NODES \n\nAvailable since: 3.0.0.\n\nTime complexity: O(N) where N is the total number of Cluster nodes", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["CLUSTER" "NODES"], :cluster-key-idx 2}
"MSETNX" {:fn-name "msetnx", :fn-docstring "Set multiple keys to multiple values, only if none of the keys exist.\n\nMSETNX key value [key value ...]\n\nAvailable since: 1.0.1.\n\nTime complexity: O(N) where N is the number of keys to set.", :fn-params-fixed [key value], :fn-params-more [key value & args], :req-args-fixed ["MSETNX" key value], :cluster-key-idx 1}

"OBJECT" {:fn-name "object", :fn-docstring "Inspect the internals of Redis objects.\n\nOBJECT subcommand [arguments [arguments ...]]\n\nAvailable since: 2.2.3.\n\nTime complexity: O(1) for all the currently implemented subcommands.", :fn-params-fixed [subcommand], :fn-params-more [subcommand & args], :req-args-fixed ["OBJECT" subcommand], :cluster-key-idx 1}
"KEYS" {:fn-name "keys", :fn-docstring "Find all keys matching the given pattern.\n\nKEYS pattern\n\nAvailable since: 1.0.0.\n\nTime complexity: O(N) with N being the number of keys in the database, under the assumption that the key names in the database and the given pattern have limited length.", :fn-params-fixed [pattern], :fn-params-more nil, :req-args-fixed ["KEYS" pattern], :cluster-key-idx 1}
"SETNX" {:fn-name "setnx", :fn-docstring "Set the value of a key, only if the key does not exist.\n\nSETNX key value\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key value], :fn-params-more nil, :req-args-fixed ["SETNX" key value], :cluster-key-idx 1}
"MEMORY MALLOC-STATS" {:fn-name "memory-malloc-stats", :fn-docstring "Show allocator internal stats.\n\nMEMORY MALLOC-STATS \n\nAvailable since: 4.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["MEMORY" "MALLOC-STATS"], :cluster-key-idx 2}
"HSTRLEN" {:fn-name "hstrlen", :fn-docstring "Get the length of the value of a hash field.\n\nHSTRLEN key field\n\nAvailable since: 3.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [key field], :fn-params-more nil, :req-args-fixed ["HSTRLEN" key field], :cluster-key-idx 1}
"SYNC" {:fn-name "sync", :fn-docstring "Internal command used for replication.\n\nSYNC \n\nAvailable since: 1.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["SYNC"], :cluster-key-idx 1}
"SUNIONSTORE" {:fn-name "sunionstore", :fn-docstring "Add multiple sets and store the resulting set in a key.\n\nSUNIONSTORE destination key [key ...]\n\nAvailable since: 1.0.0.\n\nTime complexity: O(N) where N is the total number of elements in all given sets.", :fn-params-fixed [destination key], :fn-params-more [destination key & args], :req-args-fixed ["SUNIONSTORE" destination key], :cluster-key-idx 1}
