 "ZSCAN" {:fn-name "zscan", :fn-docstring "Incrementally iterate sorted sets elements and associated scores.\n\nZSCAN key cursor [MATCH pattern] [COUNT count]\n\nAvailable since: 2.8.0.\n\nTime complexity: O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection..", :fn-params-fixed [key cursor], :fn-params-more [key cursor & args], :req-args-fixed ["ZSCAN" key cursor], :cluster-key-idx 1}
 "PERSIST" {:fn-name "persist", :fn-docstring "Remove the expiration from a key.\n\nPERSIST key\n\nAvailable since: 2.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["PERSIST" key], :cluster-key-idx 1}
 "ZSCORE" {:fn-name "zscore", :fn-docstring "Get the score associated with the given member in a sorted set.\n\nZSCORE key member\n\nAvailable since: 1.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [key member], :fn-params-more nil, :req-args-fixed ["ZSCORE" key member], :cluster-key-idx 1}
+"XDEL" {:fn-name "xdel", :fn-docstring "Removes the specified entries from the stream. Returns the number of items actually deleted, that may be different from the number of IDs passed in case certain IDs do not exist..\n\nXDEL key ID [ID ...]\n\nAvailable since: 5.0.0.\n\nTime complexity: O(log(N)) with N being the number of items in the stream.", :fn-params-fixed [key ID], :fn-params-more [key ID & args], :req-args-fixed ["XDEL" key ID], :cluster-key-idx 1}
 "DEBUG OBJECT" {:fn-name "debug-object", :fn-docstring "Get debugging information about a key.\n\nDEBUG OBJECT key\n\nAvailable since: 1.0.0.\n\n", :fn-params-fixed [key], :fn-params-more nil, :req-args-fixed ["DEBUG" "OBJECT" key], :cluster-key-idx 2}
 "SPOP" {:fn-name "spop", :fn-docstring "Remove and return one or multiple random members from a set.\n\nSPOP key [count]\n\nAvailable since: 1.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["SPOP" key], :cluster-key-idx 1}
+"ZPOPMIN" {:fn-name "zpopmin", :fn-docstring "Remove and return members with the lowest scores in a sorted set.\n\nZPOPMIN 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 ["ZPOPMIN" key], :cluster-key-idx 1}
+"XGROUP" {:fn-name "xgroup", :fn-docstring "Create, destroy, and manage consumer groups..\n\nXGROUP [CREATE key groupname id-or-$] [SETID key id-or-$] [DESTROY key groupname] [DELCONSUMER key groupname consumername]\n\nAvailable since: 5.0.0.\n\nTime complexity: ", :fn-params-fixed [], :fn-params-more [& args], :req-args-fixed ["XGROUP"], :cluster-key-idx 1}
 "MEMORY USAGE" {:fn-name "memory-usage", :fn-docstring "Estimate the memory usage of a key.\n\nMEMORY USAGE key [SAMPLES count]\n\nAvailable since: 4.0.0.\n\nTime complexity: O(N) where N is the number of samples.", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["MEMORY" "USAGE" key], :cluster-key-idx 2}
 "BRPOPLPUSH" {:fn-name "brpoplpush", :fn-docstring "Pop a value from a list, push it to another list and return it; or block until one is available.\n\nBRPOPLPUSH source destination timeout\n\nAvailable since: 2.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [source destination timeout], :fn-params-more nil, :req-args-fixed ["BRPOPLPUSH" source destination timeout], :cluster-key-idx 1}
 "AUTH" {:fn-name "auth", :fn-docstring "Authenticate to the server.\n\nAUTH password\n\nAvailable since: 1.0.0.\n\n", :fn-params-fixed [password], :fn-params-more nil, :req-args-fixed ["AUTH" password], :cluster-key-idx 1}

"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}
"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}
"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}
"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}

"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}
