 "HKEYS" {:fn-name "hkeys", :fn-docstring "Get all the fields in a hash.\n\nHKEYS 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 ["HKEYS" key], :cluster-key-idx 1}
 "ZREM" {:fn-name "zrem", :fn-docstring "Remove one or more members from a sorted set.\n\nZREM key member [member ...]\n\nAvailable since: 1.2.0.\n\nTime complexity: O(M*log(N)) with N being the number of elements in the sorted set and M the number of elements to be removed.", :fn-params-fixed [key member], :fn-params-more [key member & args], :req-args-fixed ["ZREM" key member], :cluster-key-idx 1}
 "HGET" {:fn-name "hget", :fn-docstring "Get the value of a hash field.\n\nHGET key field\n\nAvailable since: 2.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [key field], :fn-params-more nil, :req-args-fixed ["HGET" key field], :cluster-key-idx 1}
+"MEMORY PURGE" {:fn-name "memory-purge", :fn-docstring "Ask the allocator to release memory.\n\nMEMORY PURGE \n\nAvailable since: 4.0.0.\n\n", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["MEMORY" "PURGE"], :cluster-key-idx 2}
 "ZCOUNT" {:fn-name "zcount", :fn-docstring "Count the members in a sorted set with scores within the given values.\n\nZCOUNT key min max\n\nAvailable since: 2.0.0.\n\nTime complexity: O(log(N)) with N being the number of elements in the sorted set.", :fn-params-fixed [key min max], :fn-params-more nil, :req-args-fixed ["ZCOUNT" key min max], :cluster-key-idx 1}
 "PUNSUBSCRIBE" {:fn-name "punsubscribe", :fn-docstring "Stop listening for messages posted to channels matching the given patterns.\n\nPUNSUBSCRIBE [pattern [pattern ...]]\n\nAvailable since: 2.0.0.\n\nTime complexity: O(N+M) where N is the number of patterns the client is already subscribed and M is the number of total patterns subscribed in the system (by any client).", :fn-params-fixed [], :fn-params-more [& args], :req-args-fixed ["PUNSUBSCRIBE"], :cluster-key-idx 1}
 "GETBIT" {:fn-name "getbit", :fn-docstring "Returns the bit value at offset in the string value stored at key.\n\nGETBIT key offset\n\nAvailable since: 2.2.0.\n\nTime complexity: O(1)", :fn-params-fixed [key offset], :fn-params-more nil, :req-args-fixed ["GETBIT" key offset], :cluster-key-idx 1}

"ZREVRANK" {:fn-name "zrevrank", :fn-docstring "Determine the index of a member in a sorted set, with scores ordered from high to low.\n\nZREVRANK key member\n\nAvailable since: 2.0.0.\n\nTime complexity: O(log(N))", :fn-params-fixed [key member], :fn-params-more nil, :req-args-fixed ["ZREVRANK" key member], :cluster-key-idx 1}
"ZRANK" {:fn-name "zrank", :fn-docstring "Determine the index of a member in a sorted set.\n\nZRANK key member\n\nAvailable since: 2.0.0.\n\nTime complexity: O(log(N))", :fn-params-fixed [key member], :fn-params-more nil, :req-args-fixed ["ZRANK" key member], :cluster-key-idx 1}
"BITCOUNT" {:fn-name "bitcount", :fn-docstring "Count set bits in a string.\n\nBITCOUNT key [start end]\n\nAvailable since: 2.6.0.\n\nTime complexity: O(N)", :fn-params-fixed [key], :fn-params-more [key & args], :req-args-fixed ["BITCOUNT" key], :cluster-key-idx 1}
"READWRITE" {:fn-name "readwrite", :fn-docstring "Disables read queries for a connection to a cluster slave node.\n\nREADWRITE \n\nAvailable since: 3.0.0.\n\nTime complexity: O(1)", :fn-params-fixed [], :fn-params-more nil, :req-args-fixed ["READWRITE"], :cluster-key-idx 1}
"GETSET" {:fn-name "getset", :fn-docstring "Set the string value of a key and return its old value.\n\nGETSET 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 ["GETSET" key value], :cluster-key-idx 1}
"SCRIPT EXISTS" {:fn-name "script-exists", :fn-docstring "Check existence of scripts in the script cache..\n\nSCRIPT EXISTS sha1 [sha1 ...]\n\nAvailable since: 2.6.0.\n\nTime complexity: O(N) with N being the number of scripts to check (so checking a single script is an O(1) operation).", :fn-params-fixed [sha1], :fn-params-more [sha1 & args], :req-args-fixed ["SCRIPT" "EXISTS" sha1], :cluster-key-idx 2}

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