CLIENT-LIST(3valkey)
β¨ NAME β¨
okay so welcome to CLIENT-LIST(3valkey) bestie π this is the page for client-list, and what does it do? it lists open connections. that's the whole job. iconic, honestly. π
πΈ SYNOPSIS πΈ
CLIENT LIST [TYPE <NORMAL | MASTER | REPLICA | PUBSUB>] [ID client-id
[client-id...]] [USER username] [ADDR ip:port] [LADDR ip:port] [SKIPME
<YES | NO>] [MAXAGE maxage] [NAME name] [IDLE idle] [FLAGS flags]
[LIB-NAME lib-name] [LIB-VER lib-ver] [DB db] [CAPA capa] [IP ip]
[NOT-TYPE <NORMAL | MASTER | REPLICA | PUBSUB>] [NOT-ID not-client-id
[not-client-id...]] [NOT-USER not-username] [NOT-ADDR ip:port]
[NOT-LADDR ip:port] [NOT-NAME not-name] [NOT-FLAGS not-flags]
[NOT-LIB-NAME not-lib-name] [NOT-LIB-VER not-lib-ver] [NOT-DB not-db]
[NOT-CAPA not-capa] [NOT-IP not-ip]
π DESCRIPTION π
So CLIENT LIST hands you back info and statistics about the client connections server, in a mostly human readable format. cute, right? but wait β there's more. you can filter that list with one or more optional arguments, and it's giving very much "I know exactly which client I'm looking for" energy. π
here's every single filter, no gatekeeping:
TYPEtype β filters the list by the clients' type, where type is one ofnormal,master,replica, andpubsub.
Note: clients blocked by theMONITORcommand belong to thenormalclass. periodt.
IDclient-id [client-id ...] β returns entries for clients whose IDs match one or more client-id arguments.USERuser β only includes clients authenticated as the specified user.ADDRip:port β only includes clients connected from the specified address and port.LADDRip:port β only includes clients connected to the specified local address and port.SKIPMEyes|no β decides whether the list skips the client making the request.- yes: skips the client making the request. π
- no: includes the client making the request.
MAXAGEmilliseconds β only includes clients whose connection age (time since the client was created) is greater than or equal to the specified number of milliseconds.
Note: bestie this is actually a minimum age, not a maximum age. it's a whole naming situation π this filter was first added to CLIENT KILL, where the intention was to keep clients of a maximum age and kill the ones newer than the max age.
FLAGSflags β filters the list by the client's flag string.NAMEname β only includes clients with the specified name.IDLEidle β includes only clients that have been idle for at least the specified time.LIB-NAMElib-name β only includes clients using the specified library name.LIB-VERlib-ver β only includes clients with the specified library version.DBdb β only includes clients with the specified database ID.IPip β only includes clients with the specified IP address.CAPAcapa β only includes clients with the specified capabilities.NOT-IDclient-id [client-id ...] β excludes clients in the IDs set.NOT-TYPEtype β excludes clients of the specified type.NOT-ADDRip:port β excludes clients of the specified address and port.NOT-LADDRip:port β excludes clients connected to the specified local address and port.NOT-USERuser β excludes clients of the specified user.NOT-FLAGSflags β excludes clients with the specified flag string.NOT-NAMEname β excludes clients with the specified name.NOT-LIB-NAMElib-name β excludes clients using the specified library name.NOT-LIB-VERlib-ver β excludes clients with the specified library version.NOT-DBdb β excludes clients with the specified database ID.NOT-CAPAcapa β excludes clients with the specified capabilities.NOT-IPip β excludes clients with the specified IP address.
filters can be combined to perform more precise searches π― β the command handles multiple filters via logical AND. so they all gotta match, no exceptions.
π¦ the fields, explained π¦
here's what every field actually means, iykyk:
id: a unique 64-bit client IDaddr: address/port of the clientladdr: address/port of local address client connected to (bind address)fd: file descriptor corresponding to the socketname: the name set by the client withvalkey-client-setname(7)CLIENT SETNAMEage: total duration of the connection in secondsidle: idle time of the connection in secondsflags: client flags (see below)capa: client capabilities (see below). added in Valkey 8.1db: current database IDsub: number of channel subscriptionspsub: number of pattern matching subscriptionsssub: number of shard channel subscriptions.multi: number of commands in aMULTI/EXECcontextwatch: number of keys this client is currently watching. added in Valkey 8.0qbuf: query buffer length (0means no query pending)qbuf-free: free space of the query buffer (0means the buffer is full)argv-mem: incomplete arguments for the next command (already extracted from query buffer)multi-mem: memory is used up by buffered multi commands.obl: output buffer lengtholl: output list length (replies are queued in this list when the buffer is full)omem: output buffer memory usagetot-mem: total memory consumed by this client in its various buffersevents: file descriptor events (see below)cmd: last command playeduser: the authenticated username of the clientredir: client id of current client tracking redirectionresp: client RESP protocol version.lib-name: the client library name as set byvalkey-client-setinfo(7)CLIENT SETINFOlib-version: the client library version as set byCLIENT SETINFOtot-net-in: total network input bytes read from this client. added in Valkey 8.0tot-net-out: total network output bytes sent to this client. added in Valkey 8.0tot-cmds: total count of commands this client executed. added in Valkey 8.0
π the client flags π
the client flags can be a combination of:
A: connection to be closed ASAP
b: the client is waiting in a blocking operation
c: connection to be closed after writing entire reply
d: a watched keys has been modified - EXEC will fail
e: the client is excluded from the client eviction mechanism
i: the client is waiting for a VM I/O (deprecated)
M: the client is a primary
N: no specific flag set
O: the client is a client in MONITOR mode
P: the client is a Pub/Sub subscriber
r: the client is in readonly mode against a cluster node
S: the client is a replica node connection to this instance
u: the client is unblocked
U: the client is connected via a Unix domain socket
x: the client is in a MULTI/EXEC context
t: the client enabled keys tracking in order to perform client side caching
T: the client will not touch the LRU/LFU of the keys it accesses
R: the client tracking target client is invalid
B: the client enabled broadcast tracking mode
I: the client is an import source
client's capabilities can be:
r: the client can handle redirect messages
the file descriptor events can be:
r: the client socket is readable (event loop)
w: the client socket is writable (event loop)
π REPLY π
valkey-protocol(7) Bulk string reply: information and statistics about client connections. π
π COMPLEXITY π
O(N) where N is the number of client connections. yeah bestie, it scales with how many friends are in the group chat.
β ACL CATEGORIES β
@admin @connection @dangerous @slow
π§ HISTORY π§
- Available since:
2.4.0 - Changed in
2.8.12: added unique clientidfield. - Changed in
5.0.0: added optionalTYPEfilter. - Changed in
6.0.0: addeduserfield. - Changed in
6.2.0: addedargv-mem,tot-mem,laddrandredirfields and the optionalIDfilter. - Changed in
7.0.0: addedresp,multi-mem,rbsandrbpfields. - Changed in
7.0.3: addedssubfield. - Changed in
8.0.0: replacedmasterTYPEwithprimary.masterstill supported for backward compatibility. - Changed in
8.1.0: added filtersUSER,ADDR,LADDR,SKIPME, andMAXAGE. - Changed in
9.0.0: added filtersNAME,IDLE,FLAGS,LIB-NAME,LIB-VER,DB,CAPA, andIP. and negative filtersNOT-ID,NOT-TYPE,NOT-ADDR,NOT-LADDR,NOT-USER,NOT-FLAGS,NOT-NAME,NOT-LIB-NAME,NOT-LIB-VER,NOT-DB,NOT-CAPA,NOT-IP.
π EXAMPLES π
CLIENT LIST TYPE normal USER admin MAXAGE 5000 ID 1234 5678
id=1234 addr=127.0.0.1:64000 laddr=127.0.0.1:6379 fd=5 name= age=600 idle=300 flags= db=0 sub=0 psub=0 ssub=0 multi=-1 watch=0 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 tot-mem=1024 events=r cmd=client|list user=default redir=-1 resp=2 lib-name= lib-ver=
id=5678 addr=127.0.0.1:64001 laddr=127.0.0.1:6379 fd=6 name= age=900 idle=450 flags= db=0 sub=0 psub=0 ssub=0 multi=-1 watch=0 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 tot-mem=2048 events=r cmd=client|list user=default redir=-1 resp=2 lib-name= lib-ver=
π NOTES π
new fields are regularly added for debugging purpose. some could be removed in the future. so a version safe Valkey client using this command should parse the output accordingly β meaning handle missing fields gracefully and skip unknown fields. don't be rigid, bestie, be flexible. π«Ά
πΈ SEE ALSO πΈ
auth(3valkey), client(3valkey), client-caching(3valkey), client-capa(3valkey), client-getname(3valkey), client-getredir(3valkey), client-help(3valkey), client-id(3valkey), client-import-source(3valkey), client-info(3valkey), client-kill(3valkey), client-no-evict(3valkey), client-no-touch(3valkey), client-pause(3valkey), client-reply(3valkey), client-setinfo(3valkey), client-setname(3valkey), client-tracking(3valkey), client-trackinginfo(3valkey), client-unblock(3valkey), client-unpause(3valkey), echo(3valkey), hello(3valkey), ping(3valkey), quit(3valkey), reset(3valkey), select(3valkey)
and that's a wrap, gorgeous π this was CLIENT-LIST(3valkey) from Valkey 9.0.0, dated 2025-10-21 β now go forth and list those connections, main character. β¨π
π¦ where this page comes from
- fedora 44: valkey-doc 9.0.3-2.fc44 Β· CC-BY-SA-4.0
- fedora 44: valkey-doc 9.0.6-1.fc44 Β· CC-BY-SA-4.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms