=encoding utf8

=for comment POD_DERIVED_INDEX_GENERATED
The following documentation is automatically generated.  Please do not edit
this file, but rather the original, inline with Net::Async::Redis::Commands
at lib/Net/Async/Redis/Commands.pm
(on the system that originally ran this).
If you do edit this file, and don't want your changes to be removed, make
sure you change the first line.

=cut

=head1 NAME

Net::Async::Redis::Commands - mixin that defines the Redis commands available

=head1 DESCRIPTION

This is autogenerated from the list of commands available in L<https://redis.io/commands>.

It is intended to be loaded by L<Net::Async::Redis> to provide methods
for each available Redis command.

=head1 PACKAGE VARIABLES

=head2 KEY_FINDER

This maps the argument index for the C<key> information in each command.

=head1 METHODS - Bitmap

=head2 bitcount

Count set bits in a string.

=over 4

=item * key

=item * [start end [BYTE|BIT]]

=back

L<https://redis.io/commands/bitcount>

=head2 bitfield

Perform arbitrary bitfield integer operations on strings.

=over 4

=item * key

=item * [GET encoding offset]

=item * [SET encoding offset value]

=item * [INCRBY encoding offset increment]

=item * [OVERFLOW WRAP|SAT|FAIL]

=back

L<https://redis.io/commands/bitfield>

=head2 bitfield_ro

Perform arbitrary bitfield integer operations on strings. Read-only variant of BITFIELD.

=over 4

=item * key

=item * GET encoding offset

=back

L<https://redis.io/commands/bitfield-ro>

=head2 bitop

Perform bitwise operations between strings.

=over 4

=item * operation

=item * destkey

=item * key [key ...]

=back

L<https://redis.io/commands/bitop>

=head2 bitpos

Find first bit set or clear in a string.

=over 4

=item * key

=item * bit

=item * [start [end [BYTE|BIT]]]

=back

L<https://redis.io/commands/bitpos>

=head2 getbit

Returns the bit value at offset in the string value stored at key.

=over 4

=item * key

=item * offset

=back

L<https://redis.io/commands/getbit>

=head2 setbit

Sets or clears the bit at offset in the string value stored at key.

=over 4

=item * key

=item * offset

=item * value

=back

L<https://redis.io/commands/setbit>

=head1 METHODS - Cluster

=head2 asking

Sent by cluster clients after an -ASK redirect.

L<https://redis.io/commands/asking>

=head2 cluster_addslots

Assign new hash slots to receiving node.

=over 4

=item * slot [slot ...]

=back

L<https://redis.io/commands/cluster-addslots>

=head2 cluster_addslotsrange

Assign new hash slots to receiving node.

=over 4

=item * start-slot end-slot [start-slot end-slot ...]

=back

L<https://redis.io/commands/cluster-addslotsrange>

=head2 cluster_bumpepoch

Advance the cluster config epoch.

L<https://redis.io/commands/cluster-bumpepoch>

=head2 cluster_count_failure_reports

Return the number of failure reports active for a given node.

=over 4

=item * node-id

=back

L<https://redis.io/commands/cluster-count-failure-reports>

=head2 cluster_countkeysinslot

Return the number of local keys in the specified hash slot.

=over 4

=item * slot

=back

L<https://redis.io/commands/cluster-countkeysinslot>

=head2 cluster_delslots

Set hash slots as unbound in receiving node.

=over 4

=item * slot [slot ...]

=back

L<https://redis.io/commands/cluster-delslots>

=head2 cluster_delslotsrange

Set hash slots as unbound in receiving node.

=over 4

=item * start-slot end-slot [start-slot end-slot ...]

=back

L<https://redis.io/commands/cluster-delslotsrange>

=head2 cluster_failover

Forces a replica to perform a manual failover of its master.

=over 4

=item * [FORCE|TAKEOVER]

=back

L<https://redis.io/commands/cluster-failover>

=head2 cluster_flushslots

Delete a node's own slots information.

L<https://redis.io/commands/cluster-flushslots>

=head2 cluster_forget

Remove a node from the nodes table.

=over 4

=item * node-id

=back

L<https://redis.io/commands/cluster-forget>

=head2 cluster_getkeysinslot

Return local key names in the specified hash slot.

=over 4

=item * slot

=item * count

=back

L<https://redis.io/commands/cluster-getkeysinslot>

=head2 cluster_info

Provides info about Redis Cluster node state.

L<https://redis.io/commands/cluster-info>

=head2 cluster_keyslot

Returns the hash slot of the specified key.

=over 4

=item * key

=back

L<https://redis.io/commands/cluster-keyslot>

=head2 cluster_links

Returns a list of all TCP links to and from peer nodes in cluster.

L<https://redis.io/commands/cluster-links>

=head2 cluster_meet

Force a node cluster to handshake with another node.

=over 4

=item * ip

=item * port

=back

L<https://redis.io/commands/cluster-meet>

=head2 cluster_myid

Return the node id.

L<https://redis.io/commands/cluster-myid>

=head2 cluster_nodes

Get Cluster config for the node.

L<https://redis.io/commands/cluster-nodes>

=head2 cluster_replicas

List replica nodes of the specified master node.

=over 4

=item * node-id

=back

L<https://redis.io/commands/cluster-replicas>

=head2 cluster_replicate

Reconfigure a node as a replica of the specified master node.

=over 4

=item * node-id

=back

L<https://redis.io/commands/cluster-replicate>

=head2 cluster_reset

Reset a Redis Cluster node.

=over 4

=item * [HARD|SOFT]

=back

L<https://redis.io/commands/cluster-reset>

=head2 cluster_saveconfig

Forces the node to save cluster state on disk.

L<https://redis.io/commands/cluster-saveconfig>

=head2 cluster_set_config_epoch

Set the configuration epoch in a new node.

=over 4

=item * config-epoch

=back

L<https://redis.io/commands/cluster-set-config-epoch>

=head2 cluster_setslot

Bind a hash slot to a specific node.

=over 4

=item * slot

=item * IMPORTING node-id|MIGRATING node-id|NODE node-id|STABLE

=back

L<https://redis.io/commands/cluster-setslot>

=head2 cluster_slaves

List replica nodes of the specified master node.

=over 4

=item * node-id

=back

L<https://redis.io/commands/cluster-slaves>

=head2 cluster_slots

Get array of Cluster slot to node mappings.

L<https://redis.io/commands/cluster-slots>

=head2 readonly

Enables read queries for a connection to a cluster replica node.

L<https://redis.io/commands/readonly>

=head2 readwrite

Disables read queries for a connection to a cluster replica node.

L<https://redis.io/commands/readwrite>

=head1 METHODS - Connection

=head2 auth

Authenticate to the server.

=over 4

=item * [username]

=item * password

=back

L<https://redis.io/commands/auth>

=head2 client_caching

Instruct the server about tracking or not keys in the next request.

=over 4

=item * YES|NO

=back

L<https://redis.io/commands/client-caching>

=head2 client_getname

Get the current connection name.

L<https://redis.io/commands/client-getname>

=head2 client_getredir

Get tracking notifications redirection client ID if any.

L<https://redis.io/commands/client-getredir>

=head2 client_id

Returns the client ID for the current connection.

L<https://redis.io/commands/client-id>

=head2 client_info

Returns information about the current client connection.

L<https://redis.io/commands/client-info>

=head2 client_kill

Kill the connection of a client.

=over 4

=item * [ip:port]

=item * [ID client-id]

=item * [TYPE NORMAL|MASTER|SLAVE|REPLICA|PUBSUB]

=item * [USER username]

=item * [ADDR ip:port]

=item * [LADDR ip:port]

=item * [SKIPME yes/no]

=back

L<https://redis.io/commands/client-kill>

=head2 client_list

Get the list of client connections.

=over 4

=item * [TYPE NORMAL|MASTER|REPLICA|PUBSUB]

=item * [ID client-id [client-id ...]]

=back

L<https://redis.io/commands/client-list>

=head2 client_no_evict

Set client eviction mode for the current connection.

=over 4

=item * ON|OFF

=back

L<https://redis.io/commands/client-no-evict>

=head2 client_pause

Stop processing commands from clients for some time.

=over 4

=item * timeout

=item * [WRITE|ALL]

=back

L<https://redis.io/commands/client-pause>

=head2 client_reply

Instruct the server whether to reply to commands.

=over 4

=item * ON|OFF|SKIP

=back

L<https://redis.io/commands/client-reply>

=head2 client_setname

Set the current connection name.

=over 4

=item * connection-name

=back

L<https://redis.io/commands/client-setname>

=head2 client_tracking

Enable or disable server assisted client side caching support.

=over 4

=item * ON|OFF

=item * [REDIRECT client-id]

=item * [PREFIX prefix [PREFIX prefix ...]]

=item * [BCAST]

=item * [OPTIN]

=item * [OPTOUT]

=item * [NOLOOP]

=back

L<https://redis.io/commands/client-tracking>

=head2 client_trackinginfo

Return information about server assisted client side caching for the current connection.

L<https://redis.io/commands/client-trackinginfo>

=head2 client_unblock

Unblock a client blocked in a blocking command from a different connection.

=over 4

=item * client-id

=item * [TIMEOUT|ERROR]

=back

L<https://redis.io/commands/client-unblock>

=head2 client_unpause

Resume processing of clients that were paused.

L<https://redis.io/commands/client-unpause>

=head2 echo

Echo the given string.

=over 4

=item * message

=back

L<https://redis.io/commands/echo>

=head2 hello

Handshake with Redis.

=over 4

=item * [protover [AUTH username password] [SETNAME clientname]]

=back

L<https://redis.io/commands/hello>

=head2 ping

Ping the server.

=over 4

=item * [message]

=back

L<https://redis.io/commands/ping>

=head2 quit

Close the connection.

L<https://redis.io/commands/quit>

=head2 reset

Reset the connection.

L<https://redis.io/commands/reset>

=head2 select

Change the selected database for the current connection.

=over 4

=item * index

=back

L<https://redis.io/commands/select>

=head1 METHODS - Generic

=head2 copy

Copy a key.

=over 4

=item * source

=item * destination

=item * [DB destination-db]

=item * [REPLACE]

=back

L<https://redis.io/commands/copy>

=head2 del

Delete a key.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/del>

=head2 dump

Return a serialized version of the value stored at the specified key.

=over 4

=item * key

=back

L<https://redis.io/commands/dump>

=head2 exists

Determine if a key exists.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/exists>

=head2 expire

Set a key's time to live in seconds.

=over 4

=item * key

=item * seconds

=item * [NX|XX|GT|LT]

=back

L<https://redis.io/commands/expire>

=head2 expireat

Set the expiration for a key as a UNIX timestamp.

=over 4

=item * key

=item * unix-time-seconds

=item * [NX|XX|GT|LT]

=back

L<https://redis.io/commands/expireat>

=head2 expiretime

Get the expiration Unix timestamp for a key.

=over 4

=item * key

=back

L<https://redis.io/commands/expiretime>

=head2 keys

Find all keys matching the given pattern.

=over 4

=item * pattern

=back

L<https://redis.io/commands/keys>

=head2 migrate

Atomically transfer a key from a Redis instance to another one.

=over 4

=item * host

=item * port

=item * key|""

=item * destination-db

=item * timeout

=item * [COPY]

=item * [REPLACE]

=item * [AUTH password]

=item * [AUTH2 username password]

=item * [KEYS key [key ...]]

=back

L<https://redis.io/commands/migrate>

=head2 move

Move a key to another database.

=over 4

=item * key

=item * db

=back

L<https://redis.io/commands/move>

=head2 object_encoding

Inspect the internal encoding of a Redis object.

=over 4

=item * key

=back

L<https://redis.io/commands/object-encoding>

=head2 object_freq

Get the logarithmic access frequency counter of a Redis object.

=over 4

=item * key

=back

L<https://redis.io/commands/object-freq>

=head2 object_idletime

Get the time since a Redis object was last accessed.

=over 4

=item * key

=back

L<https://redis.io/commands/object-idletime>

=head2 object_refcount

Get the number of references to the value of the key.

=over 4

=item * key

=back

L<https://redis.io/commands/object-refcount>

=head2 persist

Remove the expiration from a key.

=over 4

=item * key

=back

L<https://redis.io/commands/persist>

=head2 pexpire

Set a key's time to live in milliseconds.

=over 4

=item * key

=item * milliseconds

=item * [NX|XX|GT|LT]

=back

L<https://redis.io/commands/pexpire>

=head2 pexpireat

Set the expiration for a key as a UNIX timestamp specified in milliseconds.

=over 4

=item * key

=item * unix-time-milliseconds

=item * [NX|XX|GT|LT]

=back

L<https://redis.io/commands/pexpireat>

=head2 pexpiretime

Get the expiration Unix timestamp for a key in milliseconds.

=over 4

=item * key

=back

L<https://redis.io/commands/pexpiretime>

=head2 pttl

Get the time to live for a key in milliseconds.

=over 4

=item * key

=back

L<https://redis.io/commands/pttl>

=head2 randomkey

Return a random key from the keyspace.

L<https://redis.io/commands/randomkey>

=head2 rename

Rename a key.

=over 4

=item * key

=item * newkey

=back

L<https://redis.io/commands/rename>

=head2 renamenx

Rename a key, only if the new key does not exist.

=over 4

=item * key

=item * newkey

=back

L<https://redis.io/commands/renamenx>

=head2 restore

Create a key using the provided serialized value, previously obtained using DUMP.

=over 4

=item * key

=item * ttl

=item * serialized-value

=item * [REPLACE]

=item * [ABSTTL]

=item * [IDLETIME seconds]

=item * [FREQ frequency]

=back

L<https://redis.io/commands/restore>

=head2 scan

Incrementally iterate the keys space.

=over 4

=item * cursor

=item * [MATCH pattern]

=item * [COUNT count]

=item * [TYPE type]

=back

L<https://redis.io/commands/scan>

=head2 sort

Sort the elements in a list, set or sorted set.

=over 4

=item * key

=item * [BY pattern]

=item * [LIMIT offset count]

=item * [GET pattern [GET pattern ...]]

=item * [ASC|DESC]

=item * [ALPHA]

=item * [STORE destination]

=back

L<https://redis.io/commands/sort>

=head2 sort_ro

Sort the elements in a list, set or sorted set. Read-only variant of SORT.

=over 4

=item * key

=item * [BY pattern]

=item * [LIMIT offset count]

=item * [GET pattern [GET pattern ...]]

=item * [ASC|DESC]

=item * [ALPHA]

=back

L<https://redis.io/commands/sort-ro>

=head2 touch

Alters the last access time of a key(s). Returns the number of existing keys specified.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/touch>

=head2 ttl

Get the time to live for a key in seconds.

=over 4

=item * key

=back

L<https://redis.io/commands/ttl>

=head2 type

Determine the type stored at key.

=over 4

=item * key

=back

L<https://redis.io/commands/type>

=head2 unlink

Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/unlink>

=head2 wait

Wait for the synchronous replication of all the write commands sent in the context of the current connection.

=over 4

=item * numreplicas

=item * timeout

=back

L<https://redis.io/commands/wait>

=head1 METHODS - Geo

=head2 geoadd

Add one or more geospatial items in the geospatial index represented using a sorted set.

=over 4

=item * key

=item * [NX|XX]

=item * [CH]

=item * longitude latitude member [longitude latitude member ...]

=back

L<https://redis.io/commands/geoadd>

=head2 geodist

Returns the distance between two members of a geospatial index.

=over 4

=item * key

=item * member1

=item * member2

=item * [M|KM|FT|MI]

=back

L<https://redis.io/commands/geodist>

=head2 geohash

Returns members of a geospatial index as standard geohash strings.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/geohash>

=head2 geopos

Returns longitude and latitude of members of a geospatial index.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/geopos>

=head2 georadius

Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point.

=over 4

=item * key

=item * longitude

=item * latitude

=item * radius

=item * M|KM|FT|MI

=item * [WITHCOORD]

=item * [WITHDIST]

=item * [WITHHASH]

=item * [COUNT count [ANY]]

=item * [ASC|DESC]

=item * [STORE key]

=item * [STOREDIST key]

=back

L<https://redis.io/commands/georadius>

=head2 georadius_ro

A read-only variant for GEORADIUS.

=over 4

=item * key

=item * longitude

=item * latitude

=item * radius

=item * M|KM|FT|MI

=item * [WITHCOORD]

=item * [WITHDIST]

=item * [WITHHASH]

=item * [COUNT count [ANY]]

=item * [ASC|DESC]

=back

L<https://redis.io/commands/georadius-ro>

=head2 georadiusbymember

Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member.

=over 4

=item * key

=item * member

=item * radius

=item * M|KM|FT|MI

=item * [WITHCOORD]

=item * [WITHDIST]

=item * [WITHHASH]

=item * [COUNT count [ANY]]

=item * [ASC|DESC]

=item * [STORE key]

=item * [STOREDIST key]

=back

L<https://redis.io/commands/georadiusbymember>

=head2 georadiusbymember_ro

A read-only variant for GEORADIUSBYMEMBER.

=over 4

=item * key

=item * member

=item * radius

=item * M|KM|FT|MI

=item * [WITHCOORD]

=item * [WITHDIST]

=item * [WITHHASH]

=item * [COUNT count [ANY]]

=item * [ASC|DESC]

=back

L<https://redis.io/commands/georadiusbymember-ro>

=head2 geosearch

Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle.

=over 4

=item * key

=item * [FROMMEMBER member]

=item * [FROMLONLAT longitude latitude]

=item * [BYRADIUS radius M|KM|FT|MI]

=item * [BYBOX width height M|KM|FT|MI]

=item * [ASC|DESC]

=item * [COUNT count [ANY]]

=item * [WITHCOORD]

=item * [WITHDIST]

=item * [WITHHASH]

=back

L<https://redis.io/commands/geosearch>

=head2 geosearchstore

Query a sorted set representing a geospatial index to fetch members inside an area of a box or a circle, and store the result in another key.

=over 4

=item * destination

=item * source

=item * [FROMMEMBER member]

=item * [FROMLONLAT longitude latitude]

=item * [BYRADIUS radius M|KM|FT|MI]

=item * [BYBOX width height M|KM|FT|MI]

=item * [ASC|DESC]

=item * [COUNT count [ANY]]

=item * [STOREDIST]

=back

L<https://redis.io/commands/geosearchstore>

=head1 METHODS - Hash

=head2 hdel

Delete one or more hash fields.

=over 4

=item * key

=item * field [field ...]

=back

L<https://redis.io/commands/hdel>

=head2 hexists

Determine if a hash field exists.

=over 4

=item * key

=item * field

=back

L<https://redis.io/commands/hexists>

=head2 hget

Get the value of a hash field.

=over 4

=item * key

=item * field

=back

L<https://redis.io/commands/hget>

=head2 hgetall

Get all the fields and values in a hash.

=over 4

=item * key

=back

L<https://redis.io/commands/hgetall>

=head2 hincrby

Increment the integer value of a hash field by the given number.

=over 4

=item * key

=item * field

=item * increment

=back

L<https://redis.io/commands/hincrby>

=head2 hincrbyfloat

Increment the float value of a hash field by the given amount.

=over 4

=item * key

=item * field

=item * increment

=back

L<https://redis.io/commands/hincrbyfloat>

=head2 hkeys

Get all the fields in a hash.

=over 4

=item * key

=back

L<https://redis.io/commands/hkeys>

=head2 hlen

Get the number of fields in a hash.

=over 4

=item * key

=back

L<https://redis.io/commands/hlen>

=head2 hmget

Get the values of all the given hash fields.

=over 4

=item * key

=item * field [field ...]

=back

L<https://redis.io/commands/hmget>

=head2 hmset

Set multiple hash fields to multiple values.

=over 4

=item * key

=item * field value [field value ...]

=back

L<https://redis.io/commands/hmset>

=head2 hrandfield

Get one or multiple random fields from a hash.

=over 4

=item * key

=item * [count [WITHVALUES]]

=back

L<https://redis.io/commands/hrandfield>

=head2 hscan

Incrementally iterate hash fields and associated values.

=over 4

=item * key

=item * cursor

=item * [MATCH pattern]

=item * [COUNT count]

=back

L<https://redis.io/commands/hscan>

=head2 hset

Set the string value of a hash field.

=over 4

=item * key

=item * field value [field value ...]

=back

L<https://redis.io/commands/hset>

=head2 hsetnx

Set the value of a hash field, only if the field does not exist.

=over 4

=item * key

=item * field

=item * value

=back

L<https://redis.io/commands/hsetnx>

=head2 hstrlen

Get the length of the value of a hash field.

=over 4

=item * key

=item * field

=back

L<https://redis.io/commands/hstrlen>

=head2 hvals

Get all the values in a hash.

=over 4

=item * key

=back

L<https://redis.io/commands/hvals>

=head1 METHODS - Hyperloglog

=head2 pfadd

Adds the specified elements to the specified HyperLogLog.

=over 4

=item * key

=item * [element [element ...]]

=back

L<https://redis.io/commands/pfadd>

=head2 pfcount

Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/pfcount>

=head2 pfdebug

Internal commands for debugging HyperLogLog values.

L<https://redis.io/commands/pfdebug>

=head2 pfmerge

Merge N different HyperLogLogs into a single one.

=over 4

=item * destkey

=item * sourcekey [sourcekey ...]

=back

L<https://redis.io/commands/pfmerge>

=head2 pfselftest

An internal command for testing HyperLogLog values.

L<https://redis.io/commands/pfselftest>

=head1 METHODS - List

=head2 blmove

Pop an element from a list, push it to another list and return it; or block until one is available.

=over 4

=item * source

=item * destination

=item * LEFT|RIGHT

=item * LEFT|RIGHT

=item * timeout

=back

L<https://redis.io/commands/blmove>

=head2 blmpop

Pop elements from a list, or block until one is available.

=over 4

=item * timeout

=item * numkeys

=item * key [key ...]

=item * LEFT|RIGHT

=item * [COUNT count]

=back

L<https://redis.io/commands/blmpop>

=head2 blpop

Remove and get the first element in a list, or block until one is available.

=over 4

=item * key [key ...]

=item * timeout

=back

L<https://redis.io/commands/blpop>

=head2 brpop

Remove and get the last element in a list, or block until one is available.

=over 4

=item * key [key ...]

=item * timeout

=back

L<https://redis.io/commands/brpop>

=head2 brpoplpush

Pop an element from a list, push it to another list and return it; or block until one is available.

=over 4

=item * source

=item * destination

=item * timeout

=back

L<https://redis.io/commands/brpoplpush>

=head2 lindex

Get an element from a list by its index.

=over 4

=item * key

=item * index

=back

L<https://redis.io/commands/lindex>

=head2 linsert

Insert an element before or after another element in a list.

=over 4

=item * key

=item * BEFORE|AFTER

=item * pivot

=item * element

=back

L<https://redis.io/commands/linsert>

=head2 llen

Get the length of a list.

=over 4

=item * key

=back

L<https://redis.io/commands/llen>

=head2 lmove

Pop an element from a list, push it to another list and return it.

=over 4

=item * source

=item * destination

=item * LEFT|RIGHT

=item * LEFT|RIGHT

=back

L<https://redis.io/commands/lmove>

=head2 lmpop

Pop elements from a list.

=over 4

=item * numkeys

=item * key [key ...]

=item * LEFT|RIGHT

=item * [COUNT count]

=back

L<https://redis.io/commands/lmpop>

=head2 lpop

Remove and get the first elements in a list.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/lpop>

=head2 lpos

Return the index of matching elements on a list.

=over 4

=item * key

=item * element

=item * [RANK rank]

=item * [COUNT num-matches]

=item * [MAXLEN len]

=back

L<https://redis.io/commands/lpos>

=head2 lpush

Prepend one or multiple elements to a list.

=over 4

=item * key

=item * element [element ...]

=back

L<https://redis.io/commands/lpush>

=head2 lpushx

Prepend an element to a list, only if the list exists.

=over 4

=item * key

=item * element [element ...]

=back

L<https://redis.io/commands/lpushx>

=head2 lrange

Get a range of elements from a list.

=over 4

=item * key

=item * start

=item * stop

=back

L<https://redis.io/commands/lrange>

=head2 lrem

Remove elements from a list.

=over 4

=item * key

=item * count

=item * element

=back

L<https://redis.io/commands/lrem>

=head2 lset

Set the value of an element in a list by its index.

=over 4

=item * key

=item * index

=item * element

=back

L<https://redis.io/commands/lset>

=head2 ltrim

Trim a list to the specified range.

=over 4

=item * key

=item * start

=item * stop

=back

L<https://redis.io/commands/ltrim>

=head2 rpop

Remove and get the last elements in a list.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/rpop>

=head2 rpoplpush

Remove the last element in a list, prepend it to another list and return it.

=over 4

=item * source

=item * destination

=back

L<https://redis.io/commands/rpoplpush>

=head2 rpush

Append one or multiple elements to a list.

=over 4

=item * key

=item * element [element ...]

=back

L<https://redis.io/commands/rpush>

=head2 rpushx

Append an element to a list, only if the list exists.

=over 4

=item * key

=item * element [element ...]

=back

L<https://redis.io/commands/rpushx>

=head1 METHODS - Pubsub

=head2 psubscribe

Listen for messages published to channels matching the given patterns.

=over 4

=item * pattern [pattern ...]

=back

L<https://redis.io/commands/psubscribe>

=head2 publish

Post a message to a channel.

=over 4

=item * channel

=item * message

=back

L<https://redis.io/commands/publish>

=head2 pubsub_channels

List active channels.

=over 4

=item * [pattern]

=back

L<https://redis.io/commands/pubsub-channels>

=head2 pubsub_numpat

Get the count of unique patterns pattern subscriptions.

L<https://redis.io/commands/pubsub-numpat>

=head2 pubsub_numsub

Get the count of subscribers for channels.

=over 4

=item * [channel [channel ...]]

=back

L<https://redis.io/commands/pubsub-numsub>

=head2 pubsub_shardchannels

List active shard channels.

=over 4

=item * [pattern]

=back

L<https://redis.io/commands/pubsub-shardchannels>

=head2 pubsub_shardnumsub

Get the count of subscribers for shard channels.

=over 4

=item * [channel [channel ...]]

=back

L<https://redis.io/commands/pubsub-shardnumsub>

=head2 punsubscribe

Stop listening for messages posted to channels matching the given patterns.

=over 4

=item * [pattern [pattern ...]]

=back

L<https://redis.io/commands/punsubscribe>

=head2 spublish

Post a message to a shard channel.

=over 4

=item * channel

=item * message

=back

L<https://redis.io/commands/spublish>

=head2 ssubscribe

Listen for messages published to the given shard channels.

=over 4

=item * channel [channel ...]

=back

L<https://redis.io/commands/ssubscribe>

=head2 subscribe

Listen for messages published to the given channels.

=over 4

=item * channel [channel ...]

=back

L<https://redis.io/commands/subscribe>

=head2 sunsubscribe

Stop listening for messages posted to the given shard channels.

=over 4

=item * [channel [channel ...]]

=back

L<https://redis.io/commands/sunsubscribe>

=head2 unsubscribe

Stop listening for messages posted to the given channels.

=over 4

=item * [channel [channel ...]]

=back

L<https://redis.io/commands/unsubscribe>

=head1 METHODS - Scripting

=head2 eval

Execute a Lua script server side.

=over 4

=item * script

=item * numkeys

=item * [key [key ...]]

=item * [arg [arg ...]]

=back

L<https://redis.io/commands/eval>

=head2 eval_ro

Execute a read-only Lua script server side.

=over 4

=item * script

=item * numkeys

=item * key [key ...]

=item * arg [arg ...]

=back

L<https://redis.io/commands/eval-ro>

=head2 evalsha

Execute a Lua script server side.

=over 4

=item * sha1

=item * numkeys

=item * [key [key ...]]

=item * [arg [arg ...]]

=back

L<https://redis.io/commands/evalsha>

=head2 evalsha_ro

Execute a read-only Lua script server side.

=over 4

=item * sha1

=item * numkeys

=item * key [key ...]

=item * arg [arg ...]

=back

L<https://redis.io/commands/evalsha-ro>

=head2 fcall

Invoke a function.

=over 4

=item * function

=item * numkeys

=item * key [key ...]

=item * arg [arg ...]

=back

L<https://redis.io/commands/fcall>

=head2 fcall_ro

Invoke a read-only function.

=over 4

=item * function

=item * numkeys

=item * key [key ...]

=item * arg [arg ...]

=back

L<https://redis.io/commands/fcall-ro>

=head2 function_delete

Delete a function by name.

=over 4

=item * library-name

=back

L<https://redis.io/commands/function-delete>

=head2 function_dump

Dump all functions into a serialized binary payload.

L<https://redis.io/commands/function-dump>

=head2 function_flush

Deleting all functions.

=over 4

=item * [ASYNC|SYNC]

=back

L<https://redis.io/commands/function-flush>

=head2 function_kill

Kill the function currently in execution.

L<https://redis.io/commands/function-kill>

=head2 function_list

List information about all the functions.

=over 4

=item * [LIBRARYNAME library-name-pattern]

=item * [WITHCODE]

=back

L<https://redis.io/commands/function-list>

=head2 function_load

Create a function with the given arguments (name, code, description).

=over 4

=item * engine-name

=item * library-name

=item * [REPLACE]

=item * [DESCRIPTION library-description]

=item * function-code

=back

L<https://redis.io/commands/function-load>

=head2 function_restore

Restore all the functions on the given payload.

=over 4

=item * serialized-value

=item * [FLUSH|APPEND|REPLACE]

=back

L<https://redis.io/commands/function-restore>

=head2 function_stats

Return information about the function currently running (name, description, duration).

L<https://redis.io/commands/function-stats>

=head2 script_debug

Set the debug mode for executed scripts.

=over 4

=item * YES|SYNC|NO

=back

L<https://redis.io/commands/script-debug>

=head2 script_exists

Check existence of scripts in the script cache.

=over 4

=item * sha1 [sha1 ...]

=back

L<https://redis.io/commands/script-exists>

=head2 script_flush

Remove all the scripts from the script cache.

=over 4

=item * [ASYNC|SYNC]

=back

L<https://redis.io/commands/script-flush>

=head2 script_kill

Kill the script currently in execution.

L<https://redis.io/commands/script-kill>

=head2 script_load

Load the specified Lua script into the script cache.

=over 4

=item * script

=back

L<https://redis.io/commands/script-load>

=head1 METHODS - Server

=head2 acl_cat

List the ACL categories or the commands inside a category.

=over 4

=item * [categoryname]

=back

L<https://redis.io/commands/acl-cat>

=head2 acl_deluser

Remove the specified ACL users and the associated rules.

=over 4

=item * username [username ...]

=back

L<https://redis.io/commands/acl-deluser>

=head2 acl_dryrun

Returns whether the user can execute the given command without executing the command.

=over 4

=item * username

=item * command

=item * [arg [arg ...]]

=back

L<https://redis.io/commands/acl-dryrun>

=head2 acl_genpass

Generate a pseudorandom secure password to use for ACL users.

=over 4

=item * [bits]

=back

L<https://redis.io/commands/acl-genpass>

=head2 acl_getuser

Get the rules for a specific ACL user.

=over 4

=item * username

=back

L<https://redis.io/commands/acl-getuser>

=head2 acl_list

List the current ACL rules in ACL config file format.

L<https://redis.io/commands/acl-list>

=head2 acl_load

Reload the ACLs from the configured ACL file.

L<https://redis.io/commands/acl-load>

=head2 acl_log

List latest events denied because of ACLs in place.

=over 4

=item * [count|RESET]

=back

L<https://redis.io/commands/acl-log>

=head2 acl_save

Save the current ACL rules in the configured ACL file.

L<https://redis.io/commands/acl-save>

=head2 acl_setuser

Modify or create the rules for a specific ACL user.

=over 4

=item * username

=item * [rule [rule ...]]

=back

L<https://redis.io/commands/acl-setuser>

=head2 acl_users

List the username of all the configured ACL rules.

L<https://redis.io/commands/acl-users>

=head2 acl_whoami

Return the name of the user associated to the current connection.

L<https://redis.io/commands/acl-whoami>

=head2 bgrewriteaof

Asynchronously rewrite the append-only file.

L<https://redis.io/commands/bgrewriteaof>

=head2 bgsave

Asynchronously save the dataset to disk.

=over 4

=item * [SCHEDULE]

=back

L<https://redis.io/commands/bgsave>

=head2 command

Get array of Redis command details.

L<https://redis.io/commands/command>

=head2 command_count

Get total number of Redis commands.

L<https://redis.io/commands/command-count>

=head2 command_docs

Get array of specific Redis command documentation.

=over 4

=item * [command-name [command-name ...]]

=back

L<https://redis.io/commands/command-docs>

=head2 command_getkeys

Extract keys given a full Redis command.

L<https://redis.io/commands/command-getkeys>

=head2 command_getkeysandflags

Extract keys given a full Redis command.

L<https://redis.io/commands/command-getkeysandflags>

=head2 command_info

Get array of specific Redis command details, or all when no argument is given.

=over 4

=item * [command-name [command-name ...]]

=back

L<https://redis.io/commands/command-info>

=head2 command_list

Get an array of Redis command names.

=over 4

=item * [FILTERBY MODULE module-name|ACLCAT category|PATTERN pattern]

=back

L<https://redis.io/commands/command-list>

=head2 config_get

Get the values of configuration parameters.

=over 4

=item * parameter [parameter ...]

=back

L<https://redis.io/commands/config-get>

=head2 config_resetstat

Reset the stats returned by INFO.

L<https://redis.io/commands/config-resetstat>

=head2 config_rewrite

Rewrite the configuration file with the in memory configuration.

L<https://redis.io/commands/config-rewrite>

=head2 config_set

Set configuration parameters to the given values.

=over 4

=item * parameter value [parameter value ...]

=back

L<https://redis.io/commands/config-set>

=head2 dbsize

Return the number of keys in the selected database.

L<https://redis.io/commands/dbsize>

=head2 failover

Start a coordinated failover between this server and one of its replicas.

=over 4

=item * [TO host port [FORCE]]

=item * [ABORT]

=item * [TIMEOUT milliseconds]

=back

L<https://redis.io/commands/failover>

=head2 flushall

Remove all keys from all databases.

=over 4

=item * [ASYNC|SYNC]

=back

L<https://redis.io/commands/flushall>

=head2 flushdb

Remove all keys from the current database.

=over 4

=item * [ASYNC|SYNC]

=back

L<https://redis.io/commands/flushdb>

=head2 info

Get information and statistics about the server.

=over 4

=item * [section [section ...]]

=back

L<https://redis.io/commands/info>

=head2 lastsave

Get the UNIX time stamp of the last successful save to disk.

L<https://redis.io/commands/lastsave>

=head2 latency_doctor

Return a human readable latency analysis report.

L<https://redis.io/commands/latency-doctor>

=head2 latency_graph

Return a latency graph for the event.

=over 4

=item * event

=back

L<https://redis.io/commands/latency-graph>

=head2 latency_histogram

Return the cumulative distribution of latencies of a subset of commands or all.

=over 4

=item * [command [command ...]]

=back

L<https://redis.io/commands/latency-histogram>

=head2 latency_history

Return timestamp-latency samples for the event.

=over 4

=item * event

=back

L<https://redis.io/commands/latency-history>

=head2 latency_latest

Return the latest latency samples for all events.

L<https://redis.io/commands/latency-latest>

=head2 latency_reset

Reset latency data for one or more events.

=over 4

=item * [event [event ...]]

=back

L<https://redis.io/commands/latency-reset>

=head2 lolwut

Display some computer art and the Redis version.

=over 4

=item * [VERSION version]

=back

L<https://redis.io/commands/lolwut>

=head2 memory_doctor

Outputs memory problems report.

L<https://redis.io/commands/memory-doctor>

=head2 memory_malloc_stats

Show allocator internal stats.

L<https://redis.io/commands/memory-malloc-stats>

=head2 memory_purge

Ask the allocator to release memory.

L<https://redis.io/commands/memory-purge>

=head2 memory_stats

Show memory usage details.

L<https://redis.io/commands/memory-stats>

=head2 memory_usage

Estimate the memory usage of a key.

=over 4

=item * key

=item * [SAMPLES count]

=back

L<https://redis.io/commands/memory-usage>

=head2 module_list

List all modules loaded by the server.

L<https://redis.io/commands/module-list>

=head2 module_load

Load a module.

=over 4

=item * path

=item * [arg [arg ...]]

=back

L<https://redis.io/commands/module-load>

=head2 module_unload

Unload a module.

=over 4

=item * name

=back

L<https://redis.io/commands/module-unload>

=head2 monitor

Listen for all requests received by the server in real time.

L<https://redis.io/commands/monitor>

=head2 psync

Internal command used for replication.

=over 4

=item * replicationid

=item * offset

=back

L<https://redis.io/commands/psync>

=head2 replconf

An internal command for configuring the replication stream.

L<https://redis.io/commands/replconf>

=head2 replicaof

Make the server a replica of another instance, or promote it as master.

=over 4

=item * host

=item * port

=back

L<https://redis.io/commands/replicaof>

=head2 restore_asking

An internal command for migrating keys in a cluster.

L<https://redis.io/commands/restore-asking>

=head2 role

Return the role of the instance in the context of replication.

L<https://redis.io/commands/role>

=head2 save

Synchronously save the dataset to disk.

L<https://redis.io/commands/save>

=head2 shutdown

Synchronously save the dataset to disk and then shut down the server.

=over 4

=item * [NOSAVE|SAVE]

=item * [NOW]

=item * [FORCE]

=item * [ABORT]

=back

L<https://redis.io/commands/shutdown>

=head2 slaveof

Make the server a replica of another instance, or promote it as master.

=over 4

=item * host

=item * port

=back

L<https://redis.io/commands/slaveof>

=head2 slowlog_get

Get the slow log's entries.

=over 4

=item * [count]

=back

L<https://redis.io/commands/slowlog-get>

=head2 slowlog_len

Get the slow log's length.

L<https://redis.io/commands/slowlog-len>

=head2 slowlog_reset

Clear all entries from the slow log.

L<https://redis.io/commands/slowlog-reset>

=head2 swapdb

Swaps two Redis databases.

=over 4

=item * index1

=item * index2

=back

L<https://redis.io/commands/swapdb>

=head2 sync

Internal command used for replication.

L<https://redis.io/commands/sync>

=head2 time

Return the current server time.

L<https://redis.io/commands/time>

=head1 METHODS - Set

=head2 sadd

Add one or more members to a set.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/sadd>

=head2 scard

Get the number of members in a set.

=over 4

=item * key

=back

L<https://redis.io/commands/scard>

=head2 sdiff

Subtract multiple sets.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/sdiff>

=head2 sdiffstore

Subtract multiple sets and store the resulting set in a key.

=over 4

=item * destination

=item * key [key ...]

=back

L<https://redis.io/commands/sdiffstore>

=head2 sinter

Intersect multiple sets.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/sinter>

=head2 sintercard

Intersect multiple sets and return the cardinality of the result.

=over 4

=item * numkeys

=item * key [key ...]

=item * [LIMIT limit]

=back

L<https://redis.io/commands/sintercard>

=head2 sinterstore

Intersect multiple sets and store the resulting set in a key.

=over 4

=item * destination

=item * key [key ...]

=back

L<https://redis.io/commands/sinterstore>

=head2 sismember

Determine if a given value is a member of a set.

=over 4

=item * key

=item * member

=back

L<https://redis.io/commands/sismember>

=head2 smembers

Get all the members in a set.

=over 4

=item * key

=back

L<https://redis.io/commands/smembers>

=head2 smismember

Returns the membership associated with the given elements for a set.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/smismember>

=head2 smove

Move a member from one set to another.

=over 4

=item * source

=item * destination

=item * member

=back

L<https://redis.io/commands/smove>

=head2 spop

Remove and return one or multiple random members from a set.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/spop>

=head2 srandmember

Get one or multiple random members from a set.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/srandmember>

=head2 srem

Remove one or more members from a set.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/srem>

=head2 sscan

Incrementally iterate Set elements.

=over 4

=item * key

=item * cursor

=item * [MATCH pattern]

=item * [COUNT count]

=back

L<https://redis.io/commands/sscan>

=head2 sunion

Add multiple sets.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/sunion>

=head2 sunionstore

Add multiple sets and store the resulting set in a key.

=over 4

=item * destination

=item * key [key ...]

=back

L<https://redis.io/commands/sunionstore>

=head1 METHODS - Sorted-set

=head2 bzmpop

Remove and return members with scores in a sorted set or block until one is available.

=over 4

=item * timeout

=item * numkeys

=item * key [key ...]

=item * MIN|MAX

=item * [COUNT count]

=back

L<https://redis.io/commands/bzmpop>

=head2 bzpopmax

Remove and return the member with the highest score from one or more sorted sets, or block until one is available.

=over 4

=item * key [key ...]

=item * timeout

=back

L<https://redis.io/commands/bzpopmax>

=head2 bzpopmin

Remove and return the member with the lowest score from one or more sorted sets, or block until one is available.

=over 4

=item * key [key ...]

=item * timeout

=back

L<https://redis.io/commands/bzpopmin>

=head2 zadd

Add one or more members to a sorted set, or update its score if it already exists.

=over 4

=item * key

=item * [NX|XX]

=item * [GT|LT]

=item * [CH]

=item * [INCR]

=item * score member [score member ...]

=back

L<https://redis.io/commands/zadd>

=head2 zcard

Get the number of members in a sorted set.

=over 4

=item * key

=back

L<https://redis.io/commands/zcard>

=head2 zcount

Count the members in a sorted set with scores within the given values.

=over 4

=item * key

=item * min

=item * max

=back

L<https://redis.io/commands/zcount>

=head2 zdiff

Subtract multiple sorted sets.

=over 4

=item * numkeys

=item * key [key ...]

=item * [WITHSCORES]

=back

L<https://redis.io/commands/zdiff>

=head2 zdiffstore

Subtract multiple sorted sets and store the resulting sorted set in a new key.

=over 4

=item * destination

=item * numkeys

=item * key [key ...]

=back

L<https://redis.io/commands/zdiffstore>

=head2 zincrby

Increment the score of a member in a sorted set.

=over 4

=item * key

=item * increment

=item * member

=back

L<https://redis.io/commands/zincrby>

=head2 zinter

Intersect multiple sorted sets.

=over 4

=item * numkeys

=item * key [key ...]

=item * [WEIGHTS weight [weight ...]]

=item * [AGGREGATE SUM|MIN|MAX]

=item * [WITHSCORES]

=back

L<https://redis.io/commands/zinter>

=head2 zintercard

Intersect multiple sorted sets and return the cardinality of the result.

=over 4

=item * numkeys

=item * key [key ...]

=item * [LIMIT limit]

=back

L<https://redis.io/commands/zintercard>

=head2 zinterstore

Intersect multiple sorted sets and store the resulting sorted set in a new key.

=over 4

=item * destination

=item * numkeys

=item * key [key ...]

=item * [WEIGHTS weight [weight ...]]

=item * [AGGREGATE SUM|MIN|MAX]

=back

L<https://redis.io/commands/zinterstore>

=head2 zlexcount

Count the number of members in a sorted set between a given lexicographical range.

=over 4

=item * key

=item * min

=item * max

=back

L<https://redis.io/commands/zlexcount>

=head2 zmpop

Remove and return members with scores in a sorted set.

=over 4

=item * numkeys

=item * key [key ...]

=item * MIN|MAX

=item * [COUNT count]

=back

L<https://redis.io/commands/zmpop>

=head2 zmscore

Get the score associated with the given members in a sorted set.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/zmscore>

=head2 zpopmax

Remove and return members with the highest scores in a sorted set.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/zpopmax>

=head2 zpopmin

Remove and return members with the lowest scores in a sorted set.

=over 4

=item * key

=item * [count]

=back

L<https://redis.io/commands/zpopmin>

=head2 zrandmember

Get one or multiple random elements from a sorted set.

=over 4

=item * key

=item * [count [WITHSCORES]]

=back

L<https://redis.io/commands/zrandmember>

=head2 zrange

Return a range of members in a sorted set.

=over 4

=item * key

=item * min

=item * max

=item * [BYSCORE|BYLEX]

=item * [REV]

=item * [LIMIT offset count]

=item * [WITHSCORES]

=back

L<https://redis.io/commands/zrange>

=head2 zrangebylex

Return a range of members in a sorted set, by lexicographical range.

=over 4

=item * key

=item * min

=item * max

=item * [LIMIT offset count]

=back

L<https://redis.io/commands/zrangebylex>

=head2 zrangebyscore

Return a range of members in a sorted set, by score.

=over 4

=item * key

=item * min

=item * max

=item * [WITHSCORES]

=item * [LIMIT offset count]

=back

L<https://redis.io/commands/zrangebyscore>

=head2 zrangestore

Store a range of members from sorted set into another key.

=over 4

=item * dst

=item * src

=item * min

=item * max

=item * [BYSCORE|BYLEX]

=item * [REV]

=item * [LIMIT offset count]

=back

L<https://redis.io/commands/zrangestore>

=head2 zrank

Determine the index of a member in a sorted set.

=over 4

=item * key

=item * member

=back

L<https://redis.io/commands/zrank>

=head2 zrem

Remove one or more members from a sorted set.

=over 4

=item * key

=item * member [member ...]

=back

L<https://redis.io/commands/zrem>

=head2 zremrangebylex

Remove all members in a sorted set between the given lexicographical range.

=over 4

=item * key

=item * min

=item * max

=back

L<https://redis.io/commands/zremrangebylex>

=head2 zremrangebyrank

Remove all members in a sorted set within the given indexes.

=over 4

=item * key

=item * start

=item * stop

=back

L<https://redis.io/commands/zremrangebyrank>

=head2 zremrangebyscore

Remove all members in a sorted set within the given scores.

=over 4

=item * key

=item * min

=item * max

=back

L<https://redis.io/commands/zremrangebyscore>

=head2 zrevrange

Return a range of members in a sorted set, by index, with scores ordered from high to low.

=over 4

=item * key

=item * start

=item * stop

=item * [WITHSCORES]

=back

L<https://redis.io/commands/zrevrange>

=head2 zrevrangebylex

Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.

=over 4

=item * key

=item * max

=item * min

=item * [LIMIT offset count]

=back

L<https://redis.io/commands/zrevrangebylex>

=head2 zrevrangebyscore

Return a range of members in a sorted set, by score, with scores ordered from high to low.

=over 4

=item * key

=item * max

=item * min

=item * [WITHSCORES]

=item * [LIMIT offset count]

=back

L<https://redis.io/commands/zrevrangebyscore>

=head2 zrevrank

Determine the index of a member in a sorted set, with scores ordered from high to low.

=over 4

=item * key

=item * member

=back

L<https://redis.io/commands/zrevrank>

=head2 zscan

Incrementally iterate sorted sets elements and associated scores.

=over 4

=item * key

=item * cursor

=item * [MATCH pattern]

=item * [COUNT count]

=back

L<https://redis.io/commands/zscan>

=head2 zscore

Get the score associated with the given member in a sorted set.

=over 4

=item * key

=item * member

=back

L<https://redis.io/commands/zscore>

=head2 zunion

Add multiple sorted sets.

=over 4

=item * numkeys

=item * key [key ...]

=item * [WEIGHTS weight [weight ...]]

=item * [AGGREGATE SUM|MIN|MAX]

=item * [WITHSCORES]

=back

L<https://redis.io/commands/zunion>

=head2 zunionstore

Add multiple sorted sets and store the resulting sorted set in a new key.

=over 4

=item * destination

=item * numkeys

=item * key [key ...]

=item * [WEIGHTS weight [weight ...]]

=item * [AGGREGATE SUM|MIN|MAX]

=back

L<https://redis.io/commands/zunionstore>

=head1 METHODS - Stream

=head2 xack

Marks a pending message as correctly processed, effectively removing it from the pending entries list of the consumer group. Return value of the command is the number of messages successfully acknowledged, that is, the IDs we were actually able to resolve in the PEL.

=over 4

=item * key

=item * group

=item * id [id ...]

=back

L<https://redis.io/commands/xack>

=head2 xadd

Appends a new entry to a stream.

=over 4

=item * key

=item * [NOMKSTREAM]

=item * [MAXLEN|MINID [=|~] threshold [LIMIT count]]

=item * *|id

=item * field value [field value ...]

=back

L<https://redis.io/commands/xadd>

=head2 xautoclaim

Changes (or acquires) ownership of messages in a consumer group, as if the messages were delivered to the specified consumer.

=over 4

=item * key

=item * group

=item * consumer

=item * min-idle-time

=item * start

=item * [COUNT count]

=item * [JUSTID]

=back

L<https://redis.io/commands/xautoclaim>

=head2 xclaim

Changes (or acquires) ownership of a message in a consumer group, as if the message was delivered to the specified consumer.

=over 4

=item * key

=item * group

=item * consumer

=item * min-idle-time

=item * id [id ...]

=item * [IDLE ms]

=item * [TIME unix-time-milliseconds]

=item * [RETRYCOUNT count]

=item * [FORCE]

=item * [JUSTID]

=back

L<https://redis.io/commands/xclaim>

=head2 xdel

Removes the specified entries from the stream. Returns the number of items actually deleted, that may be different from the number of IDs passed in case certain IDs do not exist.

=over 4

=item * key

=item * id [id ...]

=back

L<https://redis.io/commands/xdel>

=head2 xgroup_create

Create a consumer group.

=over 4

=item * key

=item * groupname

=item * id|$

=item * [MKSTREAM]

=item * [ENTRIESREAD entries_read]

=back

L<https://redis.io/commands/xgroup-create>

=head2 xgroup_createconsumer

Create a consumer in a consumer group.

=over 4

=item * key

=item * groupname

=item * consumername

=back

L<https://redis.io/commands/xgroup-createconsumer>

=head2 xgroup_delconsumer

Delete a consumer from a consumer group.

=over 4

=item * key

=item * groupname

=item * consumername

=back

L<https://redis.io/commands/xgroup-delconsumer>

=head2 xgroup_destroy

Destroy a consumer group.

=over 4

=item * key

=item * groupname

=back

L<https://redis.io/commands/xgroup-destroy>

=head2 xgroup_setid

Set a consumer group to an arbitrary last delivered ID value.

=over 4

=item * key

=item * groupname

=item * id|$

=item * [ENTRIESREAD entries_read]

=back

L<https://redis.io/commands/xgroup-setid>

=head2 xinfo_consumers

List the consumers in a consumer group.

=over 4

=item * key

=item * groupname

=back

L<https://redis.io/commands/xinfo-consumers>

=head2 xinfo_groups

List the consumer groups of a stream.

=over 4

=item * key

=back

L<https://redis.io/commands/xinfo-groups>

=head2 xinfo_stream

Get information about a stream.

=over 4

=item * key

=item * [FULL [COUNT count]]

=back

L<https://redis.io/commands/xinfo-stream>

=head2 xlen

Return the number of entries in a stream.

=over 4

=item * key

=back

L<https://redis.io/commands/xlen>

=head2 xpending

Return information and entries from a stream consumer group pending entries list, that are messages fetched but never acknowledged.

=over 4

=item * key

=item * group

=item * [[IDLE min-idle-time] start end count [consumer]]

=back

L<https://redis.io/commands/xpending>

=head2 xrange

Return a range of elements in a stream, with IDs matching the specified IDs interval.

=over 4

=item * key

=item * start

=item * end

=item * [COUNT count]

=back

L<https://redis.io/commands/xrange>

=head2 xread

Return never seen elements in multiple streams, with IDs greater than the ones reported by the caller for each stream. Can block.

=over 4

=item * [COUNT count]

=item * [BLOCK milliseconds]

=item * STREAMS key [key ...] id [id ...]

=back

L<https://redis.io/commands/xread>

=head2 xreadgroup

Return new entries from a stream using a consumer group, or access the history of the pending entries for a given consumer. Can block.

=over 4

=item * GROUP group consumer

=item * [COUNT count]

=item * [BLOCK milliseconds]

=item * [NOACK]

=item * STREAMS key [key ...] id [id ...]

=back

L<https://redis.io/commands/xreadgroup>

=head2 xrevrange

Return a range of elements in a stream, with IDs matching the specified IDs interval, in reverse order (from greater to smaller IDs) compared to XRANGE.

=over 4

=item * key

=item * end

=item * start

=item * [COUNT count]

=back

L<https://redis.io/commands/xrevrange>

=head2 xsetid

An internal command for replicating stream values.

=over 4

=item * key

=item * last-id

=item * [ENTRIESADDED entries_added]

=item * [MAXDELETEDID max_deleted_entry_id]

=back

L<https://redis.io/commands/xsetid>

=head2 xtrim

Trims the stream to (approximately if '~' is passed) a certain size.

=over 4

=item * key

=item * MAXLEN|MINID [=|~] threshold [LIMIT count]

=back

L<https://redis.io/commands/xtrim>

=head1 METHODS - String

=head2 append

Append a value to a key.

=over 4

=item * key

=item * value

=back

L<https://redis.io/commands/append>

=head2 decr

Decrement the integer value of a key by one.

=over 4

=item * key

=back

L<https://redis.io/commands/decr>

=head2 decrby

Decrement the integer value of a key by the given number.

=over 4

=item * key

=item * decrement

=back

L<https://redis.io/commands/decrby>

=head2 get

Get the value of a key.

=over 4

=item * key

=back

L<https://redis.io/commands/get>

=head2 getdel

Get the value of a key and delete the key.

=over 4

=item * key

=back

L<https://redis.io/commands/getdel>

=head2 getex

Get the value of a key and optionally set its expiration.

=over 4

=item * key

=item * [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|PERSIST]

=back

L<https://redis.io/commands/getex>

=head2 getrange

Get a substring of the string stored at a key.

=over 4

=item * key

=item * start

=item * end

=back

L<https://redis.io/commands/getrange>

=head2 getset

Set the string value of a key and return its old value.

=over 4

=item * key

=item * value

=back

L<https://redis.io/commands/getset>

=head2 incr

Increment the integer value of a key by one.

=over 4

=item * key

=back

L<https://redis.io/commands/incr>

=head2 incrby

Increment the integer value of a key by the given amount.

=over 4

=item * key

=item * increment

=back

L<https://redis.io/commands/incrby>

=head2 incrbyfloat

Increment the float value of a key by the given amount.

=over 4

=item * key

=item * increment

=back

L<https://redis.io/commands/incrbyfloat>

=head2 lcs

Find longest common substring.

=over 4

=item * key1

=item * key2

=item * [LEN]

=item * [IDX]

=item * [MINMATCHLEN len]

=item * [WITHMATCHLEN]

=back

L<https://redis.io/commands/lcs>

=head2 mget

Get the values of all the given keys.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/mget>

=head2 mset

Set multiple keys to multiple values.

=over 4

=item * key value [key value ...]

=back

L<https://redis.io/commands/mset>

=head2 msetnx

Set multiple keys to multiple values, only if none of the keys exist.

=over 4

=item * key value [key value ...]

=back

L<https://redis.io/commands/msetnx>

=head2 psetex

Set the value and expiration in milliseconds of a key.

=over 4

=item * key

=item * milliseconds

=item * value

=back

L<https://redis.io/commands/psetex>

=head2 set

Set the string value of a key.

=over 4

=item * key

=item * value

=item * [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT unix-time-milliseconds|KEEPTTL]

=item * [NX|XX]

=item * [GET]

=back

L<https://redis.io/commands/set>

=head2 setex

Set the value and expiration of a key.

=over 4

=item * key

=item * seconds

=item * value

=back

L<https://redis.io/commands/setex>

=head2 setnx

Set the value of a key, only if the key does not exist.

=over 4

=item * key

=item * value

=back

L<https://redis.io/commands/setnx>

=head2 setrange

Overwrite part of a string at key starting at the specified offset.

=over 4

=item * key

=item * offset

=item * value

=back

L<https://redis.io/commands/setrange>

=head2 strlen

Get the length of the value stored in a key.

=over 4

=item * key

=back

L<https://redis.io/commands/strlen>

=head2 substr

Get a substring of the string stored at a key.

=over 4

=item * key

=item * start

=item * end

=back

L<https://redis.io/commands/substr>

=head1 METHODS - Transactions

=head2 discard

Discard all commands issued after MULTI.

L<https://redis.io/commands/discard>

=head2 exec

Execute all commands issued after MULTI.

L<https://redis.io/commands/exec>

=head2 multi

Mark the start of a transaction block.

L<https://redis.io/commands/multi>

=head2 unwatch

Forget about all watched keys.

L<https://redis.io/commands/unwatch>

=head2 watch

Watch the given keys to determine execution of the MULTI/EXEC block.

=over 4

=item * key [key ...]

=back

L<https://redis.io/commands/watch>

=head1 METHODS - Legacy

These take a subcommand as a parameter and construct the method name by
combining the main command with subcommand - for example, C<< ->xgroup(CREATE => ...) >>
would call C<< ->xgroup_create >>.

=head2 acl

=head2 client

=head2 client_no

=head2 cluster

=head2 cluster_count

=head2 cluster_count_failure

=head2 cluster_set

=head2 cluster_set_config

=head2 config

=head2 function

=head2 latency

=head2 memory

=head2 memory_malloc

=head2 module

=head2 object

=head2 pubsub

=head2 script

=head2 slowlog

=head2 xgroup

=head2 xinfo

=head1 INHERITED METHODS

=over 4

=item L<IO::Async::Notifier>

L<add_child|IO::Async::Notifier/add_child>, L<adopt_future|IO::Async::Notifier/adopt_future>, L<adopted_futures|IO::Async::Notifier/adopted_futures>, L<can_event|IO::Async::Notifier/can_event>, L<children|IO::Async::Notifier/children>, L<configure|IO::Async::Notifier/configure>, L<configure_unknown|IO::Async::Notifier/configure_unknown>, L<debug_printf|IO::Async::Notifier/debug_printf>, L<get_loop|IO::Async::Notifier/get_loop>, L<invoke_error|IO::Async::Notifier/invoke_error>, L<invoke_event|IO::Async::Notifier/invoke_event>, L<loop|IO::Async::Notifier/loop>, L<make_event_cb|IO::Async::Notifier/make_event_cb>, L<maybe_invoke_event|IO::Async::Notifier/maybe_invoke_event>, L<maybe_make_event_cb|IO::Async::Notifier/maybe_make_event_cb>, L<notifier_name|IO::Async::Notifier/notifier_name>, L<parent|IO::Async::Notifier/parent>, L<remove_child|IO::Async::Notifier/remove_child>, L<remove_from_parent|IO::Async::Notifier/remove_from_parent>

=item L<Object::Pad::UNIVERSAL>

L<BUILDARGS|Object::Pad::UNIVERSAL/BUILDARGS>

=back

=head1 AUTHOR

Tom Molesworth <TEAM@cpan.org>

=head1 LICENSE

This was autogenerated from the official Redis documentation, which is published
under the L<Creative Commons Attribution-ShareAlike license|https://github.com/redis/redis-doc/blob/master/LICENSE>.

The Perl code is copyright Tom Molesworth 2015-2021, and licensed under the same
terms as Perl itself.

