    -- Generated by GenCmds.hs. DO NOT EDIT.

    {-# LANGUAGE OverloadedStrings, FlexibleContexts #-}

    module Database.Redis.Commands (

    -- ** Connection
    auth, -- |Authenticate to the server (<http://redis.io/commands/auth>). Since Redis 1.0.0
    echo, -- |Echo the given string (<http://redis.io/commands/echo>). Since Redis 1.0.0
    ping, -- |Ping the server (<http://redis.io/commands/ping>). Since Redis 1.0.0
    quit, -- |Close the connection (<http://redis.io/commands/quit>). Since Redis 1.0.0
    select, -- |Change the selected database for the current connection (<http://redis.io/commands/select>). Since Redis 1.0.0

    -- ** Keys
    del, -- |Delete a key (<http://redis.io/commands/del>). Since Redis 1.0.0
    dump, -- |Return a serialized version of the value stored at the specified key (<http://redis.io/commands/dump>). Since Redis 2.6.0
    exists, -- |Determine if a key exists (<http://redis.io/commands/exists>). Since Redis 1.0.0
    expire, -- |Set a key's time to live in seconds (<http://redis.io/commands/expire>). Since Redis 1.0.0
    expireat, -- |Set the expiration for a key as a UNIX timestamp (<http://redis.io/commands/expireat>). Since Redis 1.2.0
    keys, -- |Find all keys matching the given pattern (<http://redis.io/commands/keys>). Since Redis 1.0.0
    MigrateOpts(..),
    defaultMigrateOpts,
    migrate, -- |Atomically transfer a key from a Redis instance to another one (<http://redis.io/commands/migrate>). The Redis command @MIGRATE@ is split up into 'migrate', 'migrateMultiple'. Since Redis 2.6.0
    migrateMultiple, -- |Atomically transfer a key from a Redis instance to another one (<http://redis.io/commands/migrate>). The Redis command @MIGRATE@ is split up into 'migrate', 'migrateMultiple'. Since Redis 2.6.0
    move, -- |Move a key to another database (<http://redis.io/commands/move>). Since Redis 1.0.0
    objectRefcount, -- |Inspect the internals of Redis objects (<http://redis.io/commands/object>). The Redis command @OBJECT@ is split up into 'objectRefcount', 'objectEncoding', 'objectIdletime'. Since Redis 2.2.3
    objectEncoding, -- |Inspect the internals of Redis objects (<http://redis.io/commands/object>). The Redis command @OBJECT@ is split up into 'objectRefcount', 'objectEncoding', 'objectIdletime'. Since Redis 2.2.3
    objectIdletime, -- |Inspect the internals of Redis objects (<http://redis.io/commands/object>). The Redis command @OBJECT@ is split up into 'objectRefcount', 'objectEncoding', 'objectIdletime'. Since Redis 2.2.3
    persist, -- |Remove the expiration from a key (<http://redis.io/commands/persist>). Since Redis 2.2.0
    pexpire, -- |Set a key's time to live in milliseconds (<http://redis.io/commands/pexpire>). Since Redis 2.6.0
    pexpireat, -- |Set the expiration for a key as a UNIX timestamp specified in milliseconds (<http://redis.io/commands/pexpireat>). Since Redis 2.6.0
    pttl, -- |Get the time to live for a key in milliseconds (<http://redis.io/commands/pttl>). Since Redis 2.6.0
    randomkey, -- |Return a random key from the keyspace (<http://redis.io/commands/randomkey>). Since Redis 1.0.0
    rename, -- |Rename a key (<http://redis.io/commands/rename>). Since Redis 1.0.0
    renamenx, -- |Rename a key, only if the new key does not exist (<http://redis.io/commands/renamenx>). Since Redis 1.0.0
    restore, -- |Create a key using the provided serialized value, previously obtained using DUMP (<http://redis.io/commands/restore>). The Redis command @RESTORE@ is split up into 'restore', 'restoreReplace'. Since Redis 2.6.0
    restoreReplace, -- |Create a key using the provided serialized value, previously obtained using DUMP (<http://redis.io/commands/restore>). The Redis command @RESTORE@ is split up into 'restore', 'restoreReplace'. Since Redis 2.6.0
    Cursor,
    cursor0,
    ScanOpts(..),
    defaultScanOpts,
    scan, -- |Incrementally iterate the keys space (<http://redis.io/commands/scan>). The Redis command @SCAN@ is split up into 'scan', 'scanOpts'. Since Redis 2.8.0
    scanOpts, -- |Incrementally iterate the keys space (<http://redis.io/commands/scan>). The Redis command @SCAN@ is split up into 'scan', 'scanOpts'. Since Redis 2.8.0
    SortOpts(..),
    defaultSortOpts,
    SortOrder(..),
    sort, -- |Sort the elements in a list, set or sorted set (<http://redis.io/commands/sort>). The Redis command @SORT@ is split up into 'sort', 'sortStore'. Since Redis 1.0.0
    sortStore, -- |Sort the elements in a list, set or sorted set (<http://redis.io/commands/sort>). The Redis command @SORT@ is split up into 'sort', 'sortStore'. Since Redis 1.0.0
    ttl, -- |Get the time to live for a key (<http://redis.io/commands/ttl>). Since Redis 1.0.0
    RedisType(..),
    getType, -- |Determine the type stored at key (<http://redis.io/commands/type>). Since Redis 1.0.0
    wait, -- |Wait for the synchronous replication of all the write commands sent in the context of the current connection (<http://redis.io/commands/wait>). Since Redis 3.0.0

    -- ** Hashes
    hdel, -- |Delete one or more hash fields (<http://redis.io/commands/hdel>). Since Redis 2.0.0
    hexists, -- |Determine if a hash field exists (<http://redis.io/commands/hexists>). Since Redis 2.0.0
    hget, -- |Get the value of a hash field (<http://redis.io/commands/hget>). Since Redis 2.0.0
    hgetall, -- |Get all the fields and values in a hash (<http://redis.io/commands/hgetall>). Since Redis 2.0.0
    hincrby, -- |Increment the integer value of a hash field by the given number (<http://redis.io/commands/hincrby>). Since Redis 2.0.0
    hincrbyfloat, -- |Increment the float value of a hash field by the given amount (<http://redis.io/commands/hincrbyfloat>). Since Redis 2.6.0
    hkeys, -- |Get all the fields in a hash (<http://redis.io/commands/hkeys>). Since Redis 2.0.0
    hlen, -- |Get the number of fields in a hash (<http://redis.io/commands/hlen>). Since Redis 2.0.0
    hmget, -- |Get the values of all the given hash fields (<http://redis.io/commands/hmget>). Since Redis 2.0.0
    hmset, -- |Set multiple hash fields to multiple values (<http://redis.io/commands/hmset>). Since Redis 2.0.0
    hscan, -- |Incrementally iterate hash fields and associated values (<http://redis.io/commands/hscan>). The Redis command @HSCAN@ is split up into 'hscan', 'hscanOpts'. Since Redis 2.8.0
    hscanOpts, -- |Incrementally iterate hash fields and associated values (<http://redis.io/commands/hscan>). The Redis command @HSCAN@ is split up into 'hscan', 'hscanOpts'. Since Redis 2.8.0
    hset, -- |Set the string value of a hash field (<http://redis.io/commands/hset>). Since Redis 2.0.0
    hsetnx, -- |Set the value of a hash field, only if the field does not exist (<http://redis.io/commands/hsetnx>). Since Redis 2.0.0
    hstrlen, -- |Get the length of the value of a hash field (<http://redis.io/commands/hstrlen>). Since Redis 3.2.0
    hvals, -- |Get all the values in a hash (<http://redis.io/commands/hvals>). Since Redis 2.0.0

    -- ** HyperLogLogs
    pfadd, -- |Adds all the elements arguments to the HyperLogLog data structure stored at the variable name specified as first argument (<http://redis.io/commands/pfadd>). Since Redis 2.8.9
    pfcount, -- |Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s) (<http://redis.io/commands/pfcount>). Since Redis 2.8.9
    pfmerge, -- |Merge N different HyperLogLogs into a single one (<http://redis.io/commands/pfmerge>). Since Redis 2.8.9

    -- ** Lists
    blpop, -- |Remove and get the first element in a list, or block until one is available (<http://redis.io/commands/blpop>). Since Redis 2.0.0
    brpop, -- |Remove and get the last element in a list, or block until one is available (<http://redis.io/commands/brpop>). Since Redis 2.0.0
    brpoplpush, -- |Pop a value from a list, push it to another list and return it; or block until one is available (<http://redis.io/commands/brpoplpush>). Since Redis 2.2.0
    lindex, -- |Get an element from a list by its index (<http://redis.io/commands/lindex>). Since Redis 1.0.0
    linsertBefore, -- |Insert an element before or after another element in a list (<http://redis.io/commands/linsert>). The Redis command @LINSERT@ is split up into 'linsertBefore', 'linsertAfter'. Since Redis 2.2.0
    linsertAfter, -- |Insert an element before or after another element in a list (<http://redis.io/commands/linsert>). The Redis command @LINSERT@ is split up into 'linsertBefore', 'linsertAfter'. Since Redis 2.2.0
    llen, -- |Get the length of a list (<http://redis.io/commands/llen>). Since Redis 1.0.0
    lpop, -- |Remove and get the first element in a list (<http://redis.io/commands/lpop>). Since Redis 1.0.0
    lpush, -- |Prepend one or multiple values to a list (<http://redis.io/commands/lpush>). Since Redis 1.0.0
    lpushx, -- |Prepend a value to a list, only if the list exists (<http://redis.io/commands/lpushx>). Since Redis 2.2.0
    lrange, -- |Get a range of elements from a list (<http://redis.io/commands/lrange>). Since Redis 1.0.0
    lrem, -- |Remove elements from a list (<http://redis.io/commands/lrem>). Since Redis 1.0.0
    lset, -- |Set the value of an element in a list by its index (<http://redis.io/commands/lset>). Since Redis 1.0.0
    ltrim, -- |Trim a list to the specified range (<http://redis.io/commands/ltrim>). Since Redis 1.0.0
    rpop, -- |Remove and get the last element in a list (<http://redis.io/commands/rpop>). Since Redis 1.0.0
    rpoplpush, -- |Remove the last element in a list, prepend it to another list and return it (<http://redis.io/commands/rpoplpush>). Since Redis 1.2.0
    rpush, -- |Append one or multiple values to a list (<http://redis.io/commands/rpush>). Since Redis 1.0.0
    rpushx, -- |Append a value to a list, only if the list exists (<http://redis.io/commands/rpushx>). Since Redis 2.2.0

    -- ** Scripting
    eval, -- |Execute a Lua script server side (<http://redis.io/commands/eval>). Since Redis 2.6.0
    evalsha, -- |Execute a Lua script server side (<http://redis.io/commands/evalsha>). Since Redis 2.6.0
    DebugMode,
    scriptDebug, -- |Set the debug mode for executed scripts (<http://redis.io/commands/script-debug>). Since Redis 3.2.0
    scriptExists, -- |Check existence of scripts in the script cache (<http://redis.io/commands/script-exists>). Since Redis 2.6.0
    scriptFlush, -- |Remove all the scripts from the script cache (<http://redis.io/commands/script-flush>). Since Redis 2.6.0
    scriptKill, -- |Kill the script currently in execution (<http://redis.io/commands/script-kill>). Since Redis 2.6.0
    scriptLoad, -- |Load the specified Lua script into the script cache (<http://redis.io/commands/script-load>). Since Redis 2.6.0

    -- ** Server
    bgrewriteaof, -- |Asynchronously rewrite the append-only file (<http://redis.io/commands/bgrewriteaof>). Since Redis 1.0.0
    bgsave, -- |Asynchronously save the dataset to disk (<http://redis.io/commands/bgsave>). Since Redis 1.0.0
    clientGetname, -- |Get the current connection name (<http://redis.io/commands/client-getname>). Since Redis 2.6.9
    clientList, -- |Get the list of client connections (<http://redis.io/commands/client-list>). Since Redis 2.4.0
    clientPause, -- |Stop processing commands from clients for some time (<http://redis.io/commands/client-pause>). Since Redis 2.9.50
    ReplyMode,
    clientReply, -- |Instruct the server whether to reply to commands (<http://redis.io/commands/client-reply>). Since Redis 3.2
    clientSetname, -- |Set the current connection name (<http://redis.io/commands/client-setname>). Since Redis 2.6.9
    commandCount, -- |Get total number of Redis commands (<http://redis.io/commands/command-count>). Since Redis 2.8.13
    commandInfo, -- |Get array of specific Redis command details (<http://redis.io/commands/command-info>). Since Redis 2.8.13
    configGet, -- |Get the value of a configuration parameter (<http://redis.io/commands/config-get>). Since Redis 2.0.0
    configResetstat, -- |Reset the stats returned by INFO (<http://redis.io/commands/config-resetstat>). Since Redis 2.0.0
    configRewrite, -- |Rewrite the configuration file with the in memory configuration (<http://redis.io/commands/config-rewrite>). Since Redis 2.8.0
    configSet, -- |Set a configuration parameter to the given value (<http://redis.io/commands/config-set>). Since Redis 2.0.0
    dbsize, -- |Return the number of keys in the selected database (<http://redis.io/commands/dbsize>). Since Redis 1.0.0
    debugObject, -- |Get debugging information about a key (<http://redis.io/commands/debug-object>). Since Redis 1.0.0
    flushall, -- |Remove all keys from all databases (<http://redis.io/commands/flushall>). Since Redis 1.0.0
    flushdb, -- |Remove all keys from the current database (<http://redis.io/commands/flushdb>). Since Redis 1.0.0
    info, -- |Get information and statistics about the server (<http://redis.io/commands/info>). The Redis command @INFO@ is split up into 'info', 'infoSection'. Since Redis 1.0.0
    infoSection, -- |Get information and statistics about the server (<http://redis.io/commands/info>). The Redis command @INFO@ is split up into 'info', 'infoSection'. Since Redis 1.0.0
    lastsave, -- |Get the UNIX time stamp of the last successful save to disk (<http://redis.io/commands/lastsave>). Since Redis 1.0.0
    save, -- |Synchronously save the dataset to disk (<http://redis.io/commands/save>). Since Redis 1.0.0
    slaveof, -- |Make the server a slave of another instance, or promote it as master (<http://redis.io/commands/slaveof>). Since Redis 1.0.0
    Slowlog(..),
    slowlogGet, -- |Manages the Redis slow queries log (<http://redis.io/commands/slowlog>). The Redis command @SLOWLOG@ is split up into 'slowlogGet', 'slowlogLen', 'slowlogReset'. Since Redis 2.2.12
    slowlogLen, -- |Manages the Redis slow queries log (<http://redis.io/commands/slowlog>). The Redis command @SLOWLOG@ is split up into 'slowlogGet', 'slowlogLen', 'slowlogReset'. Since Redis 2.2.12
    slowlogReset, -- |Manages the Redis slow queries log (<http://redis.io/commands/slowlog>). The Redis command @SLOWLOG@ is split up into 'slowlogGet', 'slowlogLen', 'slowlogReset'. Since Redis 2.2.12
    time, -- |Return the current server time (<http://redis.io/commands/time>). Since Redis 2.6.0

    -- ** Sets
    sadd, -- |Add one or more members to a set (<http://redis.io/commands/sadd>). Since Redis 1.0.0
    scard, -- |Get the number of members in a set (<http://redis.io/commands/scard>). Since Redis 1.0.0
    sdiff, -- |Subtract multiple sets (<http://redis.io/commands/sdiff>). Since Redis 1.0.0
    sdiffstore, -- |Subtract multiple sets and store the resulting set in a key (<http://redis.io/commands/sdiffstore>). Since Redis 1.0.0
    sinter, -- |Intersect multiple sets (<http://redis.io/commands/sinter>). Since Redis 1.0.0
    sinterstore, -- |Intersect multiple sets and store the resulting set in a key (<http://redis.io/commands/sinterstore>). Since Redis 1.0.0
    sismember, -- |Determine if a given value is a member of a set (<http://redis.io/commands/sismember>). Since Redis 1.0.0
    smembers, -- |Get all the members in a set (<http://redis.io/commands/smembers>). Since Redis 1.0.0
    smove, -- |Move a member from one set to another (<http://redis.io/commands/smove>). Since Redis 1.0.0
    spop, -- |Remove and return one or multiple random members from a set (<http://redis.io/commands/spop>). The Redis command @SPOP@ is split up into 'spop', 'spopN'. Since Redis 1.0.0
    spopN, -- |Remove and return one or multiple random members from a set (<http://redis.io/commands/spop>). The Redis command @SPOP@ is split up into 'spop', 'spopN'. Since Redis 1.0.0
    srandmember, -- |Get one or multiple random members from a set (<http://redis.io/commands/srandmember>). The Redis command @SRANDMEMBER@ is split up into 'srandmember', 'srandmemberN'. Since Redis 1.0.0
    srandmemberN, -- |Get one or multiple random members from a set (<http://redis.io/commands/srandmember>). The Redis command @SRANDMEMBER@ is split up into 'srandmember', 'srandmemberN'. Since Redis 1.0.0
    srem, -- |Remove one or more members from a set (<http://redis.io/commands/srem>). Since Redis 1.0.0
    sscan, -- |Incrementally iterate Set elements (<http://redis.io/commands/sscan>). The Redis command @SSCAN@ is split up into 'sscan', 'sscanOpts'. Since Redis 2.8.0
    sscanOpts, -- |Incrementally iterate Set elements (<http://redis.io/commands/sscan>). The Redis command @SSCAN@ is split up into 'sscan', 'sscanOpts'. Since Redis 2.8.0
    sunion, -- |Add multiple sets (<http://redis.io/commands/sunion>). Since Redis 1.0.0
    sunionstore, -- |Add multiple sets and store the resulting set in a key (<http://redis.io/commands/sunionstore>). Since Redis 1.0.0

    -- ** Sorted Sets
    ZaddOpts(..),
    defaultZaddOpts,
    zadd, -- |Add one or more members to a sorted set, or update its score if it already exists (<http://redis.io/commands/zadd>). The Redis command @ZADD@ is split up into 'zadd', 'zaddOpts'. Since Redis 1.2.0
    zaddOpts, -- |Add one or more members to a sorted set, or update its score if it already exists (<http://redis.io/commands/zadd>). The Redis command @ZADD@ is split up into 'zadd', 'zaddOpts'. Since Redis 1.2.0
    zcard, -- |Get the number of members in a sorted set (<http://redis.io/commands/zcard>). Since Redis 1.2.0
    zcount, -- |Count the members in a sorted set with scores within the given values (<http://redis.io/commands/zcount>). Since Redis 2.0.0
    zincrby, -- |Increment the score of a member in a sorted set (<http://redis.io/commands/zincrby>). Since Redis 1.2.0
    Aggregate(..),
    zinterstore, -- |Intersect multiple sorted sets and store the resulting sorted set in a new key (<http://redis.io/commands/zinterstore>). The Redis command @ZINTERSTORE@ is split up into 'zinterstore', 'zinterstoreWeights'. Since Redis 2.0.0
    zinterstoreWeights, -- |Intersect multiple sorted sets and store the resulting sorted set in a new key (<http://redis.io/commands/zinterstore>). The Redis command @ZINTERSTORE@ is split up into 'zinterstore', 'zinterstoreWeights'. Since Redis 2.0.0
    zlexcount, -- |Count the number of members in a sorted set between a given lexicographical range (<http://redis.io/commands/zlexcount>). Since Redis 2.8.9
    zrange, -- |Return a range of members in a sorted set, by index (<http://redis.io/commands/zrange>). The Redis command @ZRANGE@ is split up into 'zrange', 'zrangeWithscores'. Since Redis 1.2.0
    zrangeWithscores, -- |Return a range of members in a sorted set, by index (<http://redis.io/commands/zrange>). The Redis command @ZRANGE@ is split up into 'zrange', 'zrangeWithscores'. Since Redis 1.2.0
    RangeLex(..),
    zrangebylex, zrangebylexLimit, -- |Return a range of members in a sorted set, by lexicographical range (<http://redis.io/commands/zrangebylex>). Since Redis 2.8.9
    zrangebyscore, -- |Return a range of members in a sorted set, by score (<http://redis.io/commands/zrangebyscore>). The Redis command @ZRANGEBYSCORE@ is split up into 'zrangebyscore', 'zrangebyscoreWithscores', 'zrangebyscoreLimit', 'zrangebyscoreWithscoresLimit'. Since Redis 1.0.5
    zrangebyscoreWithscores, -- |Return a range of members in a sorted set, by score (<http://redis.io/commands/zrangebyscore>). The Redis command @ZRANGEBYSCORE@ is split up into 'zrangebyscore', 'zrangebyscoreWithscores', 'zrangebyscoreLimit', 'zrangebyscoreWithscoresLimit'. Since Redis 1.0.5
    zrangebyscoreLimit, -- |Return a range of members in a sorted set, by score (<http://redis.io/commands/zrangebyscore>). The Redis command @ZRANGEBYSCORE@ is split up into 'zrangebyscore', 'zrangebyscoreWithscores', 'zrangebyscoreLimit', 'zrangebyscoreWithscoresLimit'. Since Redis 1.0.5
    zrangebyscoreWithscoresLimit, -- |Return a range of members in a sorted set, by score (<http://redis.io/commands/zrangebyscore>). The Redis command @ZRANGEBYSCORE@ is split up into 'zrangebyscore', 'zrangebyscoreWithscores', 'zrangebyscoreLimit', 'zrangebyscoreWithscoresLimit'. Since Redis 1.0.5
    zrank, -- |Determine the index of a member in a sorted set (<http://redis.io/commands/zrank>). Since Redis 2.0.0
    zrem, -- |Remove one or more members from a sorted set (<http://redis.io/commands/zrem>). Since Redis 1.2.0
    zremrangebylex, -- |Remove all members in a sorted set between the given lexicographical range (<http://redis.io/commands/zremrangebylex>). Since Redis 2.8.9
    zremrangebyrank, -- |Remove all members in a sorted set within the given indexes (<http://redis.io/commands/zremrangebyrank>). Since Redis 2.0.0
    zremrangebyscore, -- |Remove all members in a sorted set within the given scores (<http://redis.io/commands/zremrangebyscore>). Since Redis 1.2.0
    zrevrange, -- |Return a range of members in a sorted set, by index, with scores ordered from high to low (<http://redis.io/commands/zrevrange>). The Redis command @ZREVRANGE@ is split up into 'zrevrange', 'zrevrangeWithscores'. Since Redis 1.2.0
    zrevrangeWithscores, -- |Return a range of members in a sorted set, by index, with scores ordered from high to low (<http://redis.io/commands/zrevrange>). The Redis command @ZREVRANGE@ is split up into 'zrevrange', 'zrevrangeWithscores'. Since Redis 1.2.0
    zrevrangebyscore, -- |Return a range of members in a sorted set, by score, with scores ordered from high to low (<http://redis.io/commands/zrevrangebyscore>). The Redis command @ZREVRANGEBYSCORE@ is split up into 'zrevrangebyscore', 'zrevrangebyscoreWithscores', 'zrevrangebyscoreLimit', 'zrevrangebyscoreWithscoresLimit'. Since Redis 2.2.0
    zrevrangebyscoreWithscores, -- |Return a range of members in a sorted set, by score, with scores ordered from high to low (<http://redis.io/commands/zrevrangebyscore>). The Redis command @ZREVRANGEBYSCORE@ is split up into 'zrevrangebyscore', 'zrevrangebyscoreWithscores', 'zrevrangebyscoreLimit', 'zrevrangebyscoreWithscoresLimit'. Since Redis 2.2.0
    zrevrangebyscoreLimit, -- |Return a range of members in a sorted set, by score, with scores ordered from high to low (<http://redis.io/commands/zrevrangebyscore>). The Redis command @ZREVRANGEBYSCORE@ is split up into 'zrevrangebyscore', 'zrevrangebyscoreWithscores', 'zrevrangebyscoreLimit', 'zrevrangebyscoreWithscoresLimit'. Since Redis 2.2.0
    zrevrangebyscoreWithscoresLimit, -- |Return a range of members in a sorted set, by score, with scores ordered from high to low (<http://redis.io/commands/zrevrangebyscore>). The Redis command @ZREVRANGEBYSCORE@ is split up into 'zrevrangebyscore', 'zrevrangebyscoreWithscores', 'zrevrangebyscoreLimit', 'zrevrangebyscoreWithscoresLimit'. Since Redis 2.2.0
    zrevrank, -- |Determine the index of a member in a sorted set, with scores ordered from high to low (<http://redis.io/commands/zrevrank>). Since Redis 2.0.0
    zscan, -- |Incrementally iterate sorted sets elements and associated scores (<http://redis.io/commands/zscan>). The Redis command @ZSCAN@ is split up into 'zscan', 'zscanOpts'. Since Redis 2.8.0
    zscanOpts, -- |Incrementally iterate sorted sets elements and associated scores (<http://redis.io/commands/zscan>). The Redis command @ZSCAN@ is split up into 'zscan', 'zscanOpts'. Since Redis 2.8.0
    zscore, -- |Get the score associated with the given member in a sorted set (<http://redis.io/commands/zscore>). Since Redis 1.2.0
    zunionstore, -- |Add multiple sorted sets and store the resulting sorted set in a new key (<http://redis.io/commands/zunionstore>). The Redis command @ZUNIONSTORE@ is split up into 'zunionstore', 'zunionstoreWeights'. Since Redis 2.0.0
    zunionstoreWeights, -- |Add multiple sorted sets and store the resulting sorted set in a new key (<http://redis.io/commands/zunionstore>). The Redis command @ZUNIONSTORE@ is split up into 'zunionstore', 'zunionstoreWeights'. Since Redis 2.0.0

    -- ** Strings
    append, -- |Append a value to a key (<http://redis.io/commands/append>). Since Redis 2.0.0
    bitcount, -- |Count set bits in a string (<http://redis.io/commands/bitcount>). The Redis command @BITCOUNT@ is split up into 'bitcount', 'bitcountRange'. Since Redis 2.6.0
    bitcountRange, -- |Count set bits in a string (<http://redis.io/commands/bitcount>). The Redis command @BITCOUNT@ is split up into 'bitcount', 'bitcountRange'. Since Redis 2.6.0
    bitopAnd, -- |Perform bitwise operations between strings (<http://redis.io/commands/bitop>). The Redis command @BITOP@ is split up into 'bitopAnd', 'bitopOr', 'bitopXor', 'bitopNot'. Since Redis 2.6.0
    bitopOr, -- |Perform bitwise operations between strings (<http://redis.io/commands/bitop>). The Redis command @BITOP@ is split up into 'bitopAnd', 'bitopOr', 'bitopXor', 'bitopNot'. Since Redis 2.6.0
    bitopXor, -- |Perform bitwise operations between strings (<http://redis.io/commands/bitop>). The Redis command @BITOP@ is split up into 'bitopAnd', 'bitopOr', 'bitopXor', 'bitopNot'. Since Redis 2.6.0
    bitopNot, -- |Perform bitwise operations between strings (<http://redis.io/commands/bitop>). The Redis command @BITOP@ is split up into 'bitopAnd', 'bitopOr', 'bitopXor', 'bitopNot'. Since Redis 2.6.0
    bitpos, -- |Find first bit set or clear in a string (<http://redis.io/commands/bitpos>). Since Redis 2.8.7
    decr, -- |Decrement the integer value of a key by one (<http://redis.io/commands/decr>). Since Redis 1.0.0
    decrby, -- |Decrement the integer value of a key by the given number (<http://redis.io/commands/decrby>). Since Redis 1.0.0
    get, -- |Get the value of a key (<http://redis.io/commands/get>). Since Redis 1.0.0
    getbit, -- |Returns the bit value at offset in the string value stored at key (<http://redis.io/commands/getbit>). Since Redis 2.2.0
    getrange, -- |Get a substring of the string stored at a key (<http://redis.io/commands/getrange>). Since Redis 2.4.0
    getset, -- |Set the string value of a key and return its old value (<http://redis.io/commands/getset>). Since Redis 1.0.0
    incr, -- |Increment the integer value of a key by one (<http://redis.io/commands/incr>). Since Redis 1.0.0
    incrby, -- |Increment the integer value of a key by the given amount (<http://redis.io/commands/incrby>). Since Redis 1.0.0
    incrbyfloat, -- |Increment the float value of a key by the given amount (<http://redis.io/commands/incrbyfloat>). Since Redis 2.6.0
    mget, -- |Get the values of all the given keys (<http://redis.io/commands/mget>). Since Redis 1.0.0
    mset, -- |Set multiple keys to multiple values (<http://redis.io/commands/mset>). Since Redis 1.0.1
    msetnx, -- |Set multiple keys to multiple values, only if none of the keys exist (<http://redis.io/commands/msetnx>). Since Redis 1.0.1
    psetex, -- |Set the value and expiration in milliseconds of a key (<http://redis.io/commands/psetex>). Since Redis 2.6.0
    Condition(..),
    SetOpts(..),
    set, -- |Set the string value of a key (<http://redis.io/commands/set>). The Redis command @SET@ is split up into 'set', 'setOpts'. Since Redis 1.0.0
    setOpts, -- |Set the string value of a key (<http://redis.io/commands/set>). The Redis command @SET@ is split up into 'set', 'setOpts'. Since Redis 1.0.0
    setbit, -- |Sets or clears the bit at offset in the string value stored at key (<http://redis.io/commands/setbit>). Since Redis 2.2.0
    setex, -- |Set the value and expiration of a key (<http://redis.io/commands/setex>). Since Redis 2.0.0
    setnx, -- |Set the value of a key, only if the key does not exist (<http://redis.io/commands/setnx>). Since Redis 1.0.0
    setrange, -- |Overwrite part of a string at key starting at the specified offset (<http://redis.io/commands/setrange>). Since Redis 2.2.0
    strlen, -- |Get the length of the value stored in a key (<http://redis.io/commands/strlen>). Since Redis 2.2.0

    -- ** Streams
    XReadOpts(..),
    defaultXreadOpts,
    XReadResponse(..),
    StreamsRecord(..),
    TrimOpts(..),
    xadd, -- |Add a value to a stream (<https://redis.io/commands/xadd>). Since Redis 5.0.0
    xaddOpts, -- |Add a value to a stream (<https://redis.io/commands/xadd>). The Redis command @XADD@ is split up into 'xadd', 'xaddOpts'. Since Redis 5.0.0
    xread, -- |Read values from a stream (<https://redis.io/commands/xread>). The Redis command @XREAD@ is split up into 'xread', 'xreadOpts'. Since Redis 5.0.0
    xreadOpts, -- |Read values from a stream (<https://redis.io/commands/xread>). The Redis command @XREAD@ is split up into 'xread', 'xreadOpts'. Since Redis 5.0.0
    xreadGroup, -- |Read values from a stream as part of a consumer group (https://redis.io/commands/xreadgroup). The redis command @XREADGROUP@ is split up into 'xreadGroup' and 'xreadGroupOpts'. Since Redis 5.0.0
    xreadGroupOpts, -- |Read values from a stream as part of a consumer group (https://redis.io/commands/xreadgroup). The redis command @XREADGROUP@ is split up into 'xreadGroup' and 'xreadGroupOpts'. Since Redis 5.0.0
    xack, -- |Acknowledge receipt of a message as part of a consumer group. Since Redis 5.0.0
    xgroupCreate, -- |Create a consumer group. The redis command @XGROUP@ is split up into 'xgroupCreate', 'xgroupSetId', 'xgroupDestroy', and 'xgroupDelConsumer'. Since Redis 5.0.0
    xgroupSetId, -- |Set the id for a consumer group. The redis command @XGROUP@ is split up into 'xgroupCreate', 'xgroupSetId', 'xgroupDestroy', and 'xgroupDelConsumer'. Since Redis 5.0.0
    xgroupDestroy, -- |Destroy a consumer group. The redis command @XGROUP@ is split up into 'xgroupCreate', 'xgroupSetId', 'xgroupDestroy', and 'xgroupDelConsumer'. Since Redis 5.0.0
    xgroupDelConsumer, -- |Delete a consumer. The redis command @XGROUP@ is split up into 'xgroupCreate', 'xgroupSetId', 'xgroupDestroy', and 'xgroupDelConsumer'. Since Redis 5.0.0
    xrange, -- |Read values from a stream within a range (https://redis.io/commands/xrange). Since Redis 5.0.0
    xrevRange, -- |Read values from a stream within a range in reverse order (https://redis.io/commands/xrevrange). Since Redis 5.0.0
    xlen, -- |Get the number of entries in a stream (https://redis.io/commands/xlen). Since Redis 5.0.0
    XPendingSummaryResponse(..),
    xpendingSummary, -- |Get information about pending messages (https://redis.io/commands/xpending). The Redis @XPENDING@ command is split into 'xpendingSummary' and 'xpendingDetail'. Since Redis 5.0.0
    XPendingDetailRecord(..),
    xpendingDetail, -- |Get detailed information about pending messages (https://redis.io/commands/xpending). The Redis @XPENDING@ command is split into 'xpendingSummary' and 'xpendingDetail'. Since Redis 5.0.0
    XClaimOpts(..),
    defaultXClaimOpts,
    xclaim, -- |Change ownership of some messages to the given consumer, returning the updated messages. The Redis @XCLAIM@ command is split into 'xclaim' and 'xclaimJustIds'. Since Redis 5.0.0
    xclaimJustIds, -- |Change ownership of some messages to the given consumer, returning only the changed message IDs. The Redis @XCLAIM@ command is split into 'xclaim' and 'xclaimJustIds'. Since Redis 5.0.0
    XInfoConsumersResponse(..),
    xinfoConsumers, -- |Get info about consumers in a group. The Redis command @XINFO@ is split into 'xinfoConsumers', 'xinfoGroups', and 'xinfoStream'. Since Redis 5.0.0
    XInfoGroupsResponse(..),
    xinfoGroups, -- |Get info about groups consuming from a stream. The Redis command @XINFO@ is split into 'xinfoConsumers', 'xinfoGroups', and 'xinfoStream'. Since Redis 5.0.0
    XInfoStreamResponse(..),
    xinfoStream, -- |Get info about a stream. The Redis command @XINFO@ is split into 'xinfoConsumers', 'xinfoGroups', and 'xinfoStream'. Since Redis 5.0.0
    xdel, -- |Delete messages from a stream. Since Redis 5.0.0
    xtrim, -- |Set the upper bound for number of messages in a stream. Since Redis 5.0.0
    inf, -- |Constructor for `inf` Redis argument values

    -- * Unimplemented Commands
    -- |These commands are not implemented, as of now. Library
    --  users can implement these or other commands from
    --  experimental Redis versions by using the 'sendRequest'
    --  function.
    --
    -- * COMMAND (<http://redis.io/commands/command>)
    --
    --
    -- * COMMAND GETKEYS (<http://redis.io/commands/command-getkeys>)
    --
    --
    -- * ROLE (<http://redis.io/commands/role>)
    --
    --
    -- * CLIENT KILL (<http://redis.io/commands/client-kill>)
    --
    --
    -- * ZREVRANGEBYLEX (<http://redis.io/commands/zrevrangebylex>)
    --
    --
    -- * ZRANGEBYSCORE (<http://redis.io/commands/zrangebyscore>)
    --
    --
    -- * ZREVRANGEBYSCORE (<http://redis.io/commands/zrevrangebyscore>)
    --
    --
    -- * MONITOR (<http://redis.io/commands/monitor>)
    --
    --
    -- * SYNC (<http://redis.io/commands/sync>)
    --
    --
    -- * SHUTDOWN (<http://redis.io/commands/shutdown>)
    --
    --
    -- * DEBUG SEGFAULT (<http://redis.io/commands/debug-segfault>)
    --
    ) where

    import Prelude hiding (min,max)
    import Data.ByteString (ByteString)
    import Database.Redis.ManualCommands
    import Database.Redis.Types
    import Database.Redis.Core

    ttl
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    ttl :: ByteString -> m (f Integer)
    ttl key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["TTL"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    setnx
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ value
        -> m (f Bool)
    setnx :: ByteString -> ByteString -> m (f Bool)
    setnx key :: ByteString
    key value :: ByteString
    value = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SETNX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    pttl
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    pttl :: ByteString -> m (f Integer)
    pttl key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PTTL"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    commandCount
        :: (RedisCtx m f)
        => m (f Integer)
    commandCount :: m (f Integer)
    commandCount  = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["COMMAND","COUNT"] )

    clientSetname
        :: (RedisCtx m f)
        => ByteString -- ^ connectionName
        -> m (f ByteString)
    clientSetname :: ByteString -> m (f ByteString)
    clientSetname connectionName :: ByteString
    connectionName = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CLIENT","SETNAME"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    connectionName] )

    zrank
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ member
        -> m (f (Maybe Integer))
    zrank :: ByteString -> ByteString -> m (f (Maybe Integer))
    zrank key :: ByteString
    key member :: ByteString
    member = [ByteString] -> m (f (Maybe Integer))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZRANK"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )

    zremrangebyscore
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Double -- ^ min
        -> Double -- ^ max
        -> m (f Integer)
    zremrangebyscore :: ByteString -> Double -> Double -> m (f Integer)
    zremrangebyscore key :: ByteString
    key min :: Double
    min max :: Double
    max = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZREMRANGEBYSCORE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    min] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    max] )

    hkeys
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f [ByteString])
    hkeys :: ByteString -> m (f [ByteString])
    hkeys key :: ByteString
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HKEYS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    slaveof
        :: (RedisCtx m f)
        => ByteString -- ^ host
        -> ByteString -- ^ port
        -> m (f Status)
    slaveof :: ByteString -> ByteString -> m (f Status)
    slaveof host :: ByteString
    host port :: ByteString
    port = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SLAVEOF"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    host] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    port] )

    rpushx
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ value
        -> m (f Integer)
    rpushx :: ByteString -> ByteString -> m (f Integer)
    rpushx key :: ByteString
    key value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RPUSHX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    debugObject
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f ByteString)
    debugObject :: ByteString -> m (f ByteString)
    debugObject key :: ByteString
    key = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DEBUG","OBJECT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    bgsave
        :: (RedisCtx m f)
        => m (f Status)
    bgsave :: m (f Status)
    bgsave  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BGSAVE"] )

    hlen
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    hlen :: ByteString -> m (f Integer)
    hlen key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HLEN"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    rpoplpush
        :: (RedisCtx m f)
        => ByteString -- ^ source
        -> ByteString -- ^ destination
        -> m (f (Maybe ByteString))
    rpoplpush :: ByteString -> ByteString -> m (f (Maybe ByteString))
    rpoplpush source :: ByteString
    source destination :: ByteString
    destination = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RPOPLPUSH"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    source] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] )

    brpop
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> Integer -- ^ timeout
        -> m (f (Maybe (ByteString,ByteString)))
    brpop :: [ByteString] -> Integer -> m (f (Maybe (ByteString, ByteString)))
    brpop key :: [ByteString]
    key timeout :: Integer
    timeout = [ByteString] -> m (f (Maybe (ByteString, ByteString)))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BRPOP"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timeout] )

    bgrewriteaof
        :: (RedisCtx m f)
        => m (f Status)
    bgrewriteaof :: m (f Status)
    bgrewriteaof  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BGREWRITEAOF"] )

    zincrby
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ increment
        -> ByteString -- ^ member
        -> m (f Double)
    zincrby :: ByteString -> Integer -> ByteString -> m (f Double)
    zincrby key :: ByteString
    key increment :: Integer
    increment member :: ByteString
    member = [ByteString] -> m (f Double)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZINCRBY"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    increment] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )

    hgetall
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f [(ByteString,ByteString)])
    hgetall :: ByteString -> m (f [(ByteString, ByteString)])
    hgetall key :: ByteString
    key = [ByteString] -> m (f [(ByteString, ByteString)])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HGETALL"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    hmset
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [(ByteString,ByteString)] -- ^ fieldValue
        -> m (f Status)
    hmset :: ByteString -> [(ByteString, ByteString)] -> m (f Status)
    hmset key :: ByteString
    key fieldValue :: [(ByteString, ByteString)]
    fieldValue = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HMSET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ ((ByteString, ByteString) -> [ByteString])
    -> [(ByteString, ByteString)] -> [ByteString]
    forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
    concatMap (\(x :: ByteString
    x,y :: ByteString
    y) -> [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    x,ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    y])[(ByteString, ByteString)]
    fieldValue )

    sinter
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f [ByteString])
    sinter :: [ByteString] -> m (f [ByteString])
    sinter key :: [ByteString]
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SINTER"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    pfadd
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ value
        -> m (f Integer)
    pfadd :: ByteString -> [ByteString] -> m (f Integer)
    pfadd key :: ByteString
    key value :: [ByteString]
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PFADD"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    value )

    zremrangebyrank
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ start
        -> Integer -- ^ stop
        -> m (f Integer)
    zremrangebyrank :: ByteString -> Integer -> Integer -> m (f Integer)
    zremrangebyrank key :: ByteString
    key start :: Integer
    start stop :: Integer
    stop = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZREMRANGEBYRANK"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    start] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    stop] )

    flushdb
        :: (RedisCtx m f)
        => m (f Status)
    flushdb :: m (f Status)
    flushdb  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["FLUSHDB"] )

    sadd
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ member
        -> m (f Integer)
    sadd :: ByteString -> [ByteString] -> m (f Integer)
    sadd key :: ByteString
    key member :: [ByteString]
    member = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SADD"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    member )

    lindex
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ index
        -> m (f (Maybe ByteString))
    lindex :: ByteString -> Integer -> m (f (Maybe ByteString))
    lindex key :: ByteString
    key index :: Integer
    index = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LINDEX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    index] )

    lpush
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ value
        -> m (f Integer)
    lpush :: ByteString -> [ByteString] -> m (f Integer)
    lpush key :: ByteString
    key value :: [ByteString]
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LPUSH"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    value )

    hstrlen
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> m (f Integer)
    hstrlen :: ByteString -> ByteString -> m (f Integer)
    hstrlen key :: ByteString
    key field :: ByteString
    field = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HSTRLEN"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] )

    smove
        :: (RedisCtx m f)
        => ByteString -- ^ source
        -> ByteString -- ^ destination
        -> ByteString -- ^ member
        -> m (f Bool)
    smove :: ByteString -> ByteString -> ByteString -> m (f Bool)
    smove source :: ByteString
    source destination :: ByteString
    destination member :: ByteString
    member = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SMOVE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    source] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )

    zscore
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ member
        -> m (f (Maybe Double))
    zscore :: ByteString -> ByteString -> m (f (Maybe Double))
    zscore key :: ByteString
    key member :: ByteString
    member = [ByteString] -> m (f (Maybe Double))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZSCORE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )

    configResetstat
        :: (RedisCtx m f)
        => m (f Status)
    configResetstat :: m (f Status)
    configResetstat  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CONFIG","RESETSTAT"] )

    pfcount
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f Integer)
    pfcount :: [ByteString] -> m (f Integer)
    pfcount key :: [ByteString]
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PFCOUNT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    hdel
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ field
        -> m (f Integer)
    hdel :: ByteString -> [ByteString] -> m (f Integer)
    hdel key :: ByteString
    key field :: [ByteString]
    field = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HDEL"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    field )

    incrbyfloat
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Double -- ^ increment
        -> m (f Double)
    incrbyfloat :: ByteString -> Double -> m (f Double)
    incrbyfloat key :: ByteString
    key increment :: Double
    increment = [ByteString] -> m (f Double)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["INCRBYFLOAT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    increment] )

    setbit
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ offset
        -> ByteString -- ^ value
        -> m (f Integer)
    setbit :: ByteString -> Integer -> ByteString -> m (f Integer)
    setbit key :: ByteString
    key offset :: Integer
    offset value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SETBIT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    offset] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    flushall
        :: (RedisCtx m f)
        => m (f Status)
    flushall :: m (f Status)
    flushall  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["FLUSHALL"] )

    incrby
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ increment
        -> m (f Integer)
    incrby :: ByteString -> Integer -> m (f Integer)
    incrby key :: ByteString
    key increment :: Integer
    increment = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["INCRBY"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    increment] )

    time
        :: (RedisCtx m f)
        => m (f (Integer,Integer))
    time :: m (f (Integer, Integer))
    time  = [ByteString] -> m (f (Integer, Integer))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["TIME"] )

    smembers
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f [ByteString])
    smembers :: ByteString -> m (f [ByteString])
    smembers key :: ByteString
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SMEMBERS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    zlexcount
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ min
        -> ByteString -- ^ max
        -> m (f Integer)
    zlexcount :: ByteString -> ByteString -> ByteString -> m (f Integer)
    zlexcount key :: ByteString
    key min :: ByteString
    min max :: ByteString
    max = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZLEXCOUNT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    min] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    max] )

    sunion
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f [ByteString])
    sunion :: [ByteString] -> m (f [ByteString])
    sunion key :: [ByteString]
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SUNION"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    sinterstore
        :: (RedisCtx m f)
        => ByteString -- ^ destination
        -> [ByteString] -- ^ key
        -> m (f Integer)
    sinterstore :: ByteString -> [ByteString] -> m (f Integer)
    sinterstore destination :: ByteString
    destination key :: [ByteString]
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SINTERSTORE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    hvals
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f [ByteString])
    hvals :: ByteString -> m (f [ByteString])
    hvals key :: ByteString
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HVALS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    configSet
        :: (RedisCtx m f)
        => ByteString -- ^ parameter
        -> ByteString -- ^ value
        -> m (f Status)
    configSet :: ByteString -> ByteString -> m (f Status)
    configSet parameter :: ByteString
    parameter value :: ByteString
    value = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CONFIG","SET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    parameter] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    scriptFlush
        :: (RedisCtx m f)
        => m (f Status)
    scriptFlush :: m (f Status)
    scriptFlush  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SCRIPT","FLUSH"] )

    dbsize
        :: (RedisCtx m f)
        => m (f Integer)
    dbsize :: m (f Integer)
    dbsize  = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DBSIZE"] )

    wait
        :: (RedisCtx m f)
        => Integer -- ^ numslaves
        -> Integer -- ^ timeout
        -> m (f Integer)
    wait :: Integer -> Integer -> m (f Integer)
    wait numslaves :: Integer
    numslaves timeout :: Integer
    timeout = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["WAIT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    numslaves] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timeout] )

    lpop
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f (Maybe ByteString))
    lpop :: ByteString -> m (f (Maybe ByteString))
    lpop key :: ByteString
    key = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LPOP"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    clientPause
        :: (RedisCtx m f)
        => Integer -- ^ timeout
        -> m (f Status)
    clientPause :: Integer -> m (f Status)
    clientPause timeout :: Integer
    timeout = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CLIENT","PAUSE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timeout] )

    expire
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ seconds
        -> m (f Bool)
    expire :: ByteString -> Integer -> m (f Bool)
    expire key :: ByteString
    key seconds :: Integer
    seconds = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["EXPIRE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    seconds] )

    mget
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f [Maybe ByteString])
    mget :: [ByteString] -> m (f [Maybe ByteString])
    mget key :: [ByteString]
    key = [ByteString] -> m (f [Maybe ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["MGET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    bitpos
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ bit
        -> Integer -- ^ start
        -> Integer -- ^ end
        -> m (f Integer)
    bitpos :: ByteString -> Integer -> Integer -> Integer -> m (f Integer)
    bitpos key :: ByteString
    key bit :: Integer
    bit start :: Integer
    start end :: Integer
    end = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BITPOS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    bit] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    start] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    end] )

    lastsave
        :: (RedisCtx m f)
        => m (f Integer)
    lastsave :: m (f Integer)
    lastsave  = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LASTSAVE"] )

    pexpire
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ milliseconds
        -> m (f Bool)
    pexpire :: ByteString -> Integer -> m (f Bool)
    pexpire key :: ByteString
    key milliseconds :: Integer
    milliseconds = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PEXPIRE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    milliseconds] )

    clientList
        :: (RedisCtx m f)
        => m (f [ByteString])
    clientList :: m (f [ByteString])
    clientList  = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CLIENT","LIST"] )

    renamenx
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ newkey
        -> m (f Bool)
    renamenx :: ByteString -> ByteString -> m (f Bool)
    renamenx key :: ByteString
    key newkey :: ByteString
    newkey = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RENAMENX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    newkey] )

    pfmerge
        :: (RedisCtx m f)
        => ByteString -- ^ destkey
        -> [ByteString] -- ^ sourcekey
        -> m (f ByteString)
    pfmerge :: ByteString -> [ByteString] -> m (f ByteString)
    pfmerge destkey :: ByteString
    destkey sourcekey :: [ByteString]
    sourcekey = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PFMERGE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destkey] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    sourcekey )

    lrem
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ count
        -> ByteString -- ^ value
        -> m (f Integer)
    lrem :: ByteString -> Integer -> ByteString -> m (f Integer)
    lrem key :: ByteString
    key count :: Integer
    count value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LREM"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    count] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    sdiff
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f [ByteString])
    sdiff :: [ByteString] -> m (f [ByteString])
    sdiff key :: [ByteString]
    key = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SDIFF"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    get
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f (Maybe ByteString))
    get :: ByteString -> m (f (Maybe ByteString))
    get key :: ByteString
    key = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["GET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    getrange
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ start
        -> Integer -- ^ end
        -> m (f ByteString)
    getrange :: ByteString -> Integer -> Integer -> m (f ByteString)
    getrange key :: ByteString
    key start :: Integer
    start end :: Integer
    end = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["GETRANGE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    start] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    end] )

    sdiffstore
        :: (RedisCtx m f)
        => ByteString -- ^ destination
        -> [ByteString] -- ^ key
        -> m (f Integer)
    sdiffstore :: ByteString -> [ByteString] -> m (f Integer)
    sdiffstore destination :: ByteString
    destination key :: [ByteString]
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SDIFFSTORE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    zcount
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Double -- ^ min
        -> Double -- ^ max
        -> m (f Integer)
    zcount :: ByteString -> Double -> Double -> m (f Integer)
    zcount key :: ByteString
    key min :: Double
    min max :: Double
    max = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZCOUNT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    min] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    max] )

    scriptLoad
        :: (RedisCtx m f)
        => ByteString -- ^ script
        -> m (f ByteString)
    scriptLoad :: ByteString -> m (f ByteString)
    scriptLoad script :: ByteString
    script = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SCRIPT","LOAD"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    script] )

    getset
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ value
        -> m (f (Maybe ByteString))
    getset :: ByteString -> ByteString -> m (f (Maybe ByteString))
    getset key :: ByteString
    key value :: ByteString
    value = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["GETSET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    dump
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f ByteString)
    dump :: ByteString -> m (f ByteString)
    dump key :: ByteString
    key = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DUMP"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    keys
        :: (RedisCtx m f)
        => ByteString -- ^ pattern
        -> m (f [ByteString])
    keys :: ByteString -> m (f [ByteString])
    keys pattern :: ByteString
    pattern = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["KEYS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    pattern] )

    configGet
        :: (RedisCtx m f)
        => ByteString -- ^ parameter
        -> m (f [(ByteString,ByteString)])
    configGet :: ByteString -> m (f [(ByteString, ByteString)])
    configGet parameter :: ByteString
    parameter = [ByteString] -> m (f [(ByteString, ByteString)])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CONFIG","GET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    parameter] )

    rpush
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ value
        -> m (f Integer)
    rpush :: ByteString -> [ByteString] -> m (f Integer)
    rpush key :: ByteString
    key value :: [ByteString]
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RPUSH"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    value )

    randomkey
        :: (RedisCtx m f)
        => m (f (Maybe ByteString))
    randomkey :: m (f (Maybe ByteString))
    randomkey  = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RANDOMKEY"] )

    hsetnx
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> ByteString -- ^ value
        -> m (f Bool)
    hsetnx :: ByteString -> ByteString -> ByteString -> m (f Bool)
    hsetnx key :: ByteString
    key field :: ByteString
    field value :: ByteString
    value = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HSETNX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    mset
        :: (RedisCtx m f)
        => [(ByteString,ByteString)] -- ^ keyValue
        -> m (f Status)
    mset :: [(ByteString, ByteString)] -> m (f Status)
    mset keyValue :: [(ByteString, ByteString)]
    keyValue = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["MSET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ ((ByteString, ByteString) -> [ByteString])
    -> [(ByteString, ByteString)] -> [ByteString]
    forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
    concatMap (\(x :: ByteString
    x,y :: ByteString
    y) -> [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    x,ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    y])[(ByteString, ByteString)]
    keyValue )

    setex
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ seconds
        -> ByteString -- ^ value
        -> m (f Status)
    setex :: ByteString -> Integer -> ByteString -> m (f Status)
    setex key :: ByteString
    key seconds :: Integer
    seconds value :: ByteString
    value = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SETEX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    seconds] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    psetex
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ milliseconds
        -> ByteString -- ^ value
        -> m (f Status)
    psetex :: ByteString -> Integer -> ByteString -> m (f Status)
    psetex key :: ByteString
    key milliseconds :: Integer
    milliseconds value :: ByteString
    value = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PSETEX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    milliseconds] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    scard
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    scard :: ByteString -> m (f Integer)
    scard key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SCARD"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    scriptExists
        :: (RedisCtx m f)
        => [ByteString] -- ^ script
        -> m (f [Bool])
    scriptExists :: [ByteString] -> m (f [Bool])
    scriptExists script :: [ByteString]
    script = [ByteString] -> m (f [Bool])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SCRIPT","EXISTS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    script )

    sunionstore
        :: (RedisCtx m f)
        => ByteString -- ^ destination
        -> [ByteString] -- ^ key
        -> m (f Integer)
    sunionstore :: ByteString -> [ByteString] -> m (f Integer)
    sunionstore destination :: ByteString
    destination key :: [ByteString]
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SUNIONSTORE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    persist
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Bool)
    persist :: ByteString -> m (f Bool)
    persist key :: ByteString
    key = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PERSIST"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    strlen
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    strlen :: ByteString -> m (f Integer)
    strlen key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["STRLEN"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    lpushx
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ value
        -> m (f Integer)
    lpushx :: ByteString -> ByteString -> m (f Integer)
    lpushx key :: ByteString
    key value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LPUSHX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    hset
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> ByteString -- ^ value
        -> m (f Bool)
    hset :: ByteString -> ByteString -> ByteString -> m (f Bool)
    hset key :: ByteString
    key field :: ByteString
    field value :: ByteString
    value = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HSET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    brpoplpush
        :: (RedisCtx m f)
        => ByteString -- ^ source
        -> ByteString -- ^ destination
        -> Integer -- ^ timeout
        -> m (f (Maybe ByteString))
    brpoplpush :: ByteString -> ByteString -> Integer -> m (f (Maybe ByteString))
    brpoplpush source :: ByteString
    source destination :: ByteString
    destination timeout :: Integer
    timeout = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BRPOPLPUSH"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    source] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    destination] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timeout] )

    zrevrank
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ member
        -> m (f (Maybe Integer))
    zrevrank :: ByteString -> ByteString -> m (f (Maybe Integer))
    zrevrank key :: ByteString
    key member :: ByteString
    member = [ByteString] -> m (f (Maybe Integer))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZREVRANK"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )

    scriptKill
        :: (RedisCtx m f)
        => m (f Status)
    scriptKill :: m (f Status)
    scriptKill  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SCRIPT","KILL"] )

    setrange
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ offset
        -> ByteString -- ^ value
        -> m (f Integer)
    setrange :: ByteString -> Integer -> ByteString -> m (f Integer)
    setrange key :: ByteString
    key offset :: Integer
    offset value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SETRANGE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    offset] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    del
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> m (f Integer)
    del :: [ByteString] -> m (f Integer)
    del key :: [ByteString]
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DEL"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key )

    hincrbyfloat
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> Double -- ^ increment
        -> m (f Double)
    hincrbyfloat :: ByteString -> ByteString -> Double -> m (f Double)
    hincrbyfloat key :: ByteString
    key field :: ByteString
    field increment :: Double
    increment = [ByteString] -> m (f Double)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HINCRBYFLOAT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Double -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Double
    increment] )

    hincrby
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> Integer -- ^ increment
        -> m (f Integer)
    hincrby :: ByteString -> ByteString -> Integer -> m (f Integer)
    hincrby key :: ByteString
    key field :: ByteString
    field increment :: Integer
    increment = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HINCRBY"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    increment] )

    zremrangebylex
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ min
        -> ByteString -- ^ max
        -> m (f Integer)
    zremrangebylex :: ByteString -> ByteString -> ByteString -> m (f Integer)
    zremrangebylex key :: ByteString
    key min :: ByteString
    min max :: ByteString
    max = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZREMRANGEBYLEX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    min] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    max] )

    rpop
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f (Maybe ByteString))
    rpop :: ByteString -> m (f (Maybe ByteString))
    rpop key :: ByteString
    key = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RPOP"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    rename
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ newkey
        -> m (f Status)
    rename :: ByteString -> ByteString -> m (f Status)
    rename key :: ByteString
    key newkey :: ByteString
    newkey = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["RENAME"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    newkey] )

    zrem
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ member
        -> m (f Integer)
    zrem :: ByteString -> [ByteString] -> m (f Integer)
    zrem key :: ByteString
    key member :: [ByteString]
    member = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZREM"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    member )

    hexists
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> m (f Bool)
    hexists :: ByteString -> ByteString -> m (f Bool)
    hexists key :: ByteString
    key field :: ByteString
    field = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HEXISTS"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] )

    clientGetname
        :: (RedisCtx m f)
        => m (f Status)
    clientGetname :: m (f Status)
    clientGetname  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CLIENT","GETNAME"] )

    configRewrite
        :: (RedisCtx m f)
        => m (f Status)
    configRewrite :: m (f Status)
    configRewrite  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["CONFIG","REWRITE"] )

    decr
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    decr :: ByteString -> m (f Integer)
    decr key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DECR"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    hmget
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ field
        -> m (f [Maybe ByteString])
    hmget :: ByteString -> [ByteString] -> m (f [Maybe ByteString])
    hmget key :: ByteString
    key field :: [ByteString]
    field = [ByteString] -> m (f [Maybe ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HMGET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    field )

    lrange
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ start
        -> Integer -- ^ stop
        -> m (f [ByteString])
    lrange :: ByteString -> Integer -> Integer -> m (f [ByteString])
    lrange key :: ByteString
    key start :: Integer
    start stop :: Integer
    stop = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LRANGE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    start] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    stop] )

    decrby
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ decrement
        -> m (f Integer)
    decrby :: ByteString -> Integer -> m (f Integer)
    decrby key :: ByteString
    key decrement :: Integer
    decrement = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["DECRBY"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    decrement] )

    llen
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    llen :: ByteString -> m (f Integer)
    llen key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LLEN"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    append
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ value
        -> m (f Integer)
    append :: ByteString -> ByteString -> m (f Integer)
    append key :: ByteString
    key value :: ByteString
    value = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["APPEND"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    incr
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    incr :: ByteString -> m (f Integer)
    incr key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["INCR"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    hget
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ field
        -> m (f (Maybe ByteString))
    hget :: ByteString -> ByteString -> m (f (Maybe ByteString))
    hget key :: ByteString
    key field :: ByteString
    field = [ByteString] -> m (f (Maybe ByteString))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["HGET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    field] )

    pexpireat
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ millisecondsTimestamp
        -> m (f Bool)
    pexpireat :: ByteString -> Integer -> m (f Bool)
    pexpireat key :: ByteString
    key millisecondsTimestamp :: Integer
    millisecondsTimestamp = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["PEXPIREAT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    millisecondsTimestamp] )

    ltrim
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ start
        -> Integer -- ^ stop
        -> m (f Status)
    ltrim :: ByteString -> Integer -> Integer -> m (f Status)
    ltrim key :: ByteString
    key start :: Integer
    start stop :: Integer
    stop = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LTRIM"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    start] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    stop] )

    zcard
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> m (f Integer)
    zcard :: ByteString -> m (f Integer)
    zcard key :: ByteString
    key = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ZCARD"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] )

    lset
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ index
        -> ByteString -- ^ value
        -> m (f Status)
    lset :: ByteString -> Integer -> ByteString -> m (f Status)
    lset key :: ByteString
    key index :: Integer
    index value :: ByteString
    value = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["LSET"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    index] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    value] )

    expireat
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ timestamp
        -> m (f Bool)
    expireat :: ByteString -> Integer -> m (f Bool)
    expireat key :: ByteString
    key timestamp :: Integer
    timestamp = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["EXPIREAT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timestamp] )

    save
        :: (RedisCtx m f)
        => m (f Status)
    save :: m (f Status)
    save  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SAVE"] )

    move
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ db
        -> m (f Bool)
    move :: ByteString -> Integer -> m (f Bool)
    move key :: ByteString
    key db :: Integer
    db = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["MOVE"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    db] )

    getbit
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> Integer -- ^ offset
        -> m (f Integer)
    getbit :: ByteString -> Integer -> m (f Integer)
    getbit key :: ByteString
    key offset :: Integer
    offset = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["GETBIT"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    offset] )

    msetnx
        :: (RedisCtx m f)
        => [(ByteString,ByteString)] -- ^ keyValue
        -> m (f Bool)
    msetnx :: [(ByteString, ByteString)] -> m (f Bool)
    msetnx keyValue :: [(ByteString, ByteString)]
    keyValue = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["MSETNX"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ ((ByteString, ByteString) -> [ByteString])
    -> [(ByteString, ByteString)] -> [ByteString]
    forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
    concatMap (\(x :: ByteString
    x,y :: ByteString
    y) -> [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    x,ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    y])[(ByteString, ByteString)]
    keyValue )

    commandInfo
        :: (RedisCtx m f)
        => [ByteString] -- ^ commandName
        -> m (f [ByteString])
    commandInfo :: [ByteString] -> m (f [ByteString])
    commandInfo commandName :: [ByteString]
    commandName = [ByteString] -> m (f [ByteString])
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["COMMAND","INFO"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    commandName )

    quit
        :: (RedisCtx m f)
        => m (f Status)
    quit :: m (f Status)
    quit  = [ByteString] -> m (f Status)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["QUIT"] )

    blpop
        :: (RedisCtx m f)
        => [ByteString] -- ^ key
        -> Integer -- ^ timeout
        -> m (f (Maybe (ByteString,ByteString)))
    blpop :: [ByteString] -> Integer -> m (f (Maybe (ByteString, ByteString)))
    blpop key :: [ByteString]
    key timeout :: Integer
    timeout = [ByteString] -> m (f (Maybe (ByteString, ByteString)))
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["BLPOP"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    key [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [Integer -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode Integer
    timeout] )

    srem
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> [ByteString] -- ^ member
        -> m (f Integer)
    srem :: ByteString -> [ByteString] -> m (f Integer)
    srem key :: ByteString
    key member :: [ByteString]
    member = [ByteString] -> m (f Integer)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SREM"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ (ByteString -> ByteString) -> [ByteString] -> [ByteString]
    forall a b. (a -> b) -> [a] -> [b]
    map ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode [ByteString]
    member )

    echo
        :: (RedisCtx m f)
        => ByteString -- ^ message
        -> m (f ByteString)
    echo :: ByteString -> m (f ByteString)
    echo message :: ByteString
    message = [ByteString] -> m (f ByteString)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["ECHO"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    message] )

    sismember
        :: (RedisCtx m f)
        => ByteString -- ^ key
        -> ByteString -- ^ member
        -> m (f Bool)
    sismember :: ByteString -> ByteString -> m (f Bool)
    sismember key :: ByteString
    key member :: ByteString
    member = [ByteString] -> m (f Bool)
    forall (m :: * -> *) (f :: * -> *) a.
    (RedisCtx m f, RedisResult a) =>
    [ByteString] -> m (f a)
    sendRequest (["SISMEMBER"] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    key] [ByteString] -> [ByteString] -> [ByteString]
    forall a. [a] -> [a] -> [a]
    ++ [ByteString -> ByteString
    forall a. RedisArg a => a -> ByteString
    encode ByteString
    member] )