Redis communications
Concept
A Redis communication is a command / reply exchange between a Redis client and a Redis server, decoded from the RESP protocol (RESP2 and RESP3).
It is a sequence of related TCP packets in a TCP session between a client and a server.
Each Redis communication is associated with:
- Source and destination IP address
- Source and destination TCP port
- The connection information (user, database, RESP protocol version…) extracted from
AUTH/SELECT/HELLO/CLIENT SETNAME - The command issued, its key and arguments
- The kind of exchange:
simple— a single command and its replypipelined— commands sent back-to-back before their replies, each paired to its own replypush— a pub/sub delivery (message/pmessage/smessage), with no client requestmulti/multi-aborted— a command queued inside aMULTI/EXECtransaction (or a discarded / aborted one)
- The reply, with its RESP reply type, status, error and values
- The value(s) carried by the command and the reply, optionally transcoded to JSON via a schema
Redis communications are extracted while parsing the TCP sessions in streaming, on the Spider backend.
Global Tab

Timing
The timing diagram shows much information at a glance:

It shows the client and server hosts, the request (green) and response (orange) shapes scaled by the packet
timestamps with per-packet markers, the identity line (user@db - command key - size), and the response summary
(status + reply type + size). The Redis server port (6379 by default) is labelled REDIS.
- The client and server hosts are shown, by order of preference:
- The short name of the Host, as extracted during integration in the backend, or as renamed by a user
- The FQDN of the Host
- The IP address, if no Host found
General
The General section shows identification information:
| Field | Description |
|---|---|
| Command | The Redis command issued (e.g. GET, SET, HSET, SUBSCRIBE) |
| Key | The key the command operates on, when it has one |
| Kind | simple, pipelined, push, multi or multi-aborted |
| Status | A computed status, made to match HTTP semantics |
Spider maps RESP replies onto HTTP-like status codes so Redis communications are comparable with HTTP and PostgreSQL
ones (e.g. 200 OK, 400 for a -ERR, 401 / 403 for NOAUTH / WRONGPASS / no-permission errors,
404 when a key is missing, 409 for an aborted transaction).
Request
The Request section shows summary information of the request part:
| Field | Description |
|---|---|
| Start | Date the request started, user's local time |
| End | Date the request ended |
| Size | Total bytes sent to the server |
Response
The Response section shows summary information of the response part:
| Field | Description |
|---|---|
| Start | Date the response started |
| End | Date the response ended |
| Duration | The difference between request start and response end |
| Reply type | The RESP reply type (+ simple string, $ bulk string, : integer, * array, - error, _ null, …) |
| Size | Total bytes received from the server |
Protocol
The Protocol section shows the connection identity, extracted from the AUTH, SELECT, HELLO and
CLIENT SETNAME commands seen in the session and carried over to every communication in that session:
| Field | Description |
|---|---|
| User | The user used to connect to Redis (default if none) |
| Database | Redis logical database the client SELECTed (0 by default) |
| RESP version | Redis wire protocol version (2 or 3) |
The request Template (a stable name for recurrent commands, e.g. GET user:*) and any extracted Tags are
configured at Whisperer level and
are searchable. See Templates.
Tags
Tags are a very powerful feature of Spider parsing process.
They are configured at Whisperer level, and allow custom extraction of the data exchanged. They allow searching and aggregating by the extracted values.
Spider parses Redis commands and replies during processing, then links commands and replies together. Tags may be set — using regular expressions — to extract any value found in the command, its key, its arguments, or in the reply (its value, reply type or error).
Tags may be enriched / decoded by a plugin.
For instance:
- To translate internal identifiers from keys into their business names
- With a link to open them in the application under observation
Transaction
When the communication is part of a MULTI / EXEC transaction, a Transaction line links all the commands of the
same transaction together through a shared transactionId, so you can follow a whole transaction at once — including
its outcome (committed, DISCARDed, or aborted on EXECABORT / a dirty WATCH).
Spider info
This section shows Spider own information:
| Field | Description |
|---|---|
| Whisperer | Name and link to the Whisperer |
| Instance | Instance of the Whisperer that captured the communication |
| Tcp session | Tcp session id and link |
| Request parsing | Parsing status of the request |
| Response parsing | Parsing status of the response |