 "CONFIG RESETSTAT" {:fn-name "config-resetstat", :fn-docstring "Reset the stats returned by INFO.\n\nCONFIG RESETSTAT \n\nAvailable since: 2.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["CONFIG" "RESETSTAT"], :cluster-key-idx 2}
 "ZREMRANGEBYRANK" {:fn-name "zremrangebyrank", :fn-docstring "Remove all members in a sorted set within the given indexes.\n\nZREMRANGEBYRANK key start stop\n\nAvailable since: 2.0.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 removed by the operation.", :fn-params-fixed [key start stop], :fn-params-more nil, :req-args-fixed ["ZREMRANGEBYRANK" key start stop], :cluster-key-idx 1}
 "SCRIPT DEBUG" {:fn-name "script-debug", :fn-docstring "Set the debug mode for executed scripts..\n\nSCRIPT DEBUG YES|SYNC|NO\n\nAvailable since: 3.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [mode], :fn-params-more nil, :req-args-fixed ["SCRIPT" "DEBUG" mode], :cluster-key-idx 2}
+"ZPOPMAX" {:fn-name "zpopmax", :fn-docstring "Remove and return members with the highest scores in a sorted set.\n\nZPOPMAX key [count]\n\nAvailable since: 5.0.0.\n\nTime complexity: O(log(N)*M) with N being the number of elements in the sorted set, and M being the number of elements popped.", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["ZPOPMAX" key], :cluster-key-idx 1}
 "PSETEX" {:fn-name "psetex", :fn-docstring "Set the value and expiration in milliseconds of a key.\n\nPSETEX key milliseconds value\n\nAvailable since: 2.6.0.\n\nTime complexity: O(1)", :fn-params-fixed [key milliseconds value], :fn-params-more nil, :req-args-fixed ["PSETEX" key milliseconds value], :cluster-key-idx 1}
 "EVALSHA" {:fn-name "evalsha", :fn-docstring "Execute a Lua script server side.\n\nEVALSHA sha1 numkeys key [key ...] arg [arg ...]\n\nAvailable since: 2.6.0.\n\nTime complexity: Depends on the script that is executed.", :fn-params-fixed [sha1 numkeys], :fn-params-more [sha1 numkeys & args], :req-args-fixed ["EVALSHA" sha1 numkeys], :cluster-key-idx 1}
 "GET" {:fn-name "get", :fn-docstring "Get the value of a key.\n\nGET key\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["GET" key], :cluster-key-idx 1}
 "HLEN" {:fn-name "hlen", :fn-docstring "Get the number of fields in a hash.\n\nHLEN key\n\nAvailable since: 2.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["HLEN" key], :cluster-key-idx 1}
+"XREVRANGE" {:fn-name "xrevrange", :fn-docstring "Return a range of elements in a stream, with IDs matching the specified IDs interval, in reverse order (from greater to smaller IDs) compared to XRANGE.\n\nXREVRANGE key end start [COUNT count]\n\nAvailable since: 5.0.0.\n\nTime complexity: O(log(N)+M) with N being the number of elements in the stream and M the number of elements being returned. If M is constant (e.g. always asking for the first 10 elements with COUNT), you can consider it O(log(N)).", :fn-params-fixed [key end start], :fn-params-more [key end start & args], :req-args-fixed ["XREVRANGE" key end start], :cluster-key-idx 1}
 "CONFIG REWRITE" {:fn-name "config-rewrite", :fn-docstring "Rewrite the configuration file with the in memory configuration.\n\nCONFIG REWRITE \n\nAvailable since: 2.8.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["CONFIG" "REWRITE"], :cluster-key-idx 2}
+"BZPOPMIN" {:fn-name "bzpopmin", :fn-docstring "Remove and return the member with the lowest score from one or more sorted sets, or block until one is available.\n\nBZPOPMIN key [key ...] timeout\n\nAvailable since: 5.0.0.\n\nTime complexity: O(log(N)) with N being the number of elements in the sorted set.", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["BZPOPMIN" key], :cluster-key-idx 1}
 "CLIENT KILL" {:fn-name "client-kill", :fn-docstring "Kill the connection of a client.\n\nCLIENT KILL [ip:port] [ID client-id] [TYPE normal|master|slave|pubsub] [ADDR ip:port] [SKIPME yes/no]\n\nAvailable since: 2.4.0.\n\nTime complexity: O(N) where N is the number of client connections", :fn-params-fixed [], :fn-params-more [& args], :req-args-fixed ["CLIENT" "KILL"], :cluster-key-idx 2}
 "DISCARD" {:fn-name "discard", :fn-docstring "Discard all commands issued after MULTI.\n\nDISCARD \n\nAvailable since: 2.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["DISCARD"], :cluster-key-idx 1}
 "HGETALL" {:fn-name "hgetall", :fn-docstring "Get all the fields and values in a hash.\n\nHGETALL key\n\nAvailable since: 2.0.0.\n\nTime complexity: O(N) where N is the size of the hash.", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["HGETALL" key], :cluster-key-idx 1}

"BRPOP" {:fn-name "brpop", :fn-docstring "Remove and get the last element in a list, or block until one is available.\n\nBRPOP key [key ...] timeout\n\nAvailable since: 2.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["BRPOP" key], :cluster-key-idx 1}
"DECRBY" {:fn-name "decrby", :fn-docstring "Decrement the integer value of a key by the given number.\n\nDECRBY key decrement\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key decrement], :fn-params-more nil, :req-args-fixed ["DECRBY" key decrement], :cluster-key-idx 1}
"CLIENT GETNAME" {:fn-name "client-getname", :fn-docstring "Get the current connection name.\n\nCLIENT GETNAME \n\nAvailable since: 2.6.9.\n\nTime complexity: O(1)", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["CLIENT" "GETNAME"], :cluster-key-idx 2}
"SET" {:fn-name "set", :fn-docstring "Set the string value of a key.\n\nSET key value [EX seconds] [PX milliseconds] [NX|XX]\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key value], :fn-params-more [key value & args], :req-args-fixed ["SET" key value], :cluster-key-idx 1}
"MSET" {:fn-name "mset", :fn-docstring "Set multiple keys to multiple values.\n\nMSET 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 ["MSET" key value], :cluster-key-idx 1}
"ZRANGE" {:fn-name "zrange", :fn-docstring "Return a range of members in a sorted set, by index.\n\nZRANGE 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 ["ZRANGE" key start stop], :cluster-key-idx 1}
"STRLEN" {:fn-name "strlen", :fn-docstring "Get the length of the value stored in a key.\n\nSTRLEN key\n\nAvailable since: 2.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["STRLEN" key], :cluster-key-idx 1}

"TOUCH" {:fn-name "touch", :fn-docstring "Alters the last access time of a key(s). Returns the number of existing keys specified..\n\nTOUCH key [key ...]\n\nAvailable since: 3.2.1.\n\nTime complexity: O(N) where N is the number of keys that will be touched.", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["TOUCH" key], :cluster-key-idx 1}
"RANDOMKEY" {:fn-name "randomkey", :fn-docstring "Return a random key from the keyspace.\n\nRANDOMKEY \n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["RANDOMKEY"], :cluster-key-idx 1}
"LASTSAVE" {:fn-name "lastsave", :fn-docstring "Get the UNIX time stamp of the last successful save to disk.\n\nLASTSAVE \n\nAvailable since: 1.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["LASTSAVE"], :cluster-key-idx 1}
"XACK" {:fn-name "xack", :fn-docstring "Marks a pending message as correctly processed. Return value of the command is the number of messages successfully acknowledged, that is, the IDs we were actually able to resolve in the PEL..\n\nXACK key group ID [ID ...]\n\nAvailable since: 5.0.0.\n\nTime complexity: ", :fn-params-fixed [key group ID], :fn-params-more [key group ID & args], :req-args-fixed ["XACK" key group ID], :cluster-key-idx 1}
"SLOWLOG" {:fn-name "slowlog", :fn-docstring "Manages the Redis slow queries log.\n\nSLOWLOG subcommand [argument]\n\nAvailable since: 2.2.12.\n\n", :fn-params-fixed [subcommand], :fn-params-more [subcommand & args], :req-args-fixed ["SLOWLOG" subcommand], :cluster-key-idx 1}
"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}
