BROKABROKA
Sign inDownload CommunityRequest a demo
RedisFully supported

A keyspace and a stream, not just a cache.

Instances, clusters and Sentinel groups with the keyspace explored by type, ACL users and their security log first-class, memory and eviction made legible, and full Redis Streams depth — entries, consumer groups, the pending entries list and a live tail — under the same permissions and audit trail as every other broker.

Scope
Instances and clusters
Depth
Keyspace and Streams
Safety
Environment policy
Redis station — streams and keyspaceOne operational surface
Compact in-memory structures beside a stream branching into consumer groups. The branch is where pending entries gather until something acknowledges them.
01What a Redis operator gets

Both halves of Redis, at equal depth.

01

Instances and clusters

Standalone instances, Sentinel-monitored primaries and OSS Cluster shards connect the same way, with the topology stated rather than guessed.

standalone · sentinel · cluster · replicas
02

Keyspace exploration

Cursor-based browsing that never blocks the server, in whichever logical database you switch to, a sampled analysis that groups the keyspace by your own key delimiter — and the query engine’s search indexes, with their schema, a query and its execution plan.

scan · databases · sampled analysis · search indexes
03

Key inspection

Every key opens as the type it actually is — string, hash, list, set, sorted set, stream, JSON where the deployment provides it — with TTL, memory and encoding beside it, and a new key of any of those types created with its first content and an optional TTL.

type · ttl · memory · encoding · add key · copy to database
04

Redis Streams

Entries in range, the last generated id, and a live tail — all read without consuming anything a real client is waiting for.

entries · ranges · live tail · trim
05

Consumer groups and PEL

Group lag against the stream head, per-consumer assignment, and the pending entries list with idle time and delivery counts — claimed, acknowledged, or returned to the group unacknowledged.

groups · consumers · pending · return to group
06

Memory and health

Used and peak memory, fragmentation, eviction policy, hit rate, replication link state and persistence status in one read — beside the server’s own latency monitor and memory doctor, and on Redis 8.6 the keys that cost it the most CPU and network.

memory · latency · memory doctor · hot keys
07

Live key activity

Pub/Sub channels and shard channels with their subscribers, counted apart, publish and sharded publish as separate actions, and keyspace notifications followed live.

channels · shard channels · spublish · notifications
08

ACL users and the security log

Users with command categories and key and channel patterns — and the security log naming who was refused, for which of Redis’s four reasons: a command, a key, a channel or a failed login.

users · rules · auth / key / channel / command denials
09

Cluster, replication and tools

All 16,384 slots written out and the busiest ranked, every node’s own view of the cluster, coordinated failover, Sentinel’s groups with its quorum check — and slow log, clients, config and command activity beside them.

slots · slot stats · sentinel · slowlog · config
02Keyspace and memory

Types survive the trip to the screen.

A hash is not a string with commas in it. The explorer browses by cursor rather than blocking the server, keeps every key's real type, and puts TTL and memory footprint where you are already looking — so a keyspace problem and a memory problem stop looking alike.

KEYSPACE · db0 · 1,482,904 keyssession:*hash · ttl 30m · 902k keys · 410 MiBcatalogue:*string · no ttl · 18k keys · 1.4 GiBleaderboard:*zset · no ttl · 240 keys · 96 MiBMAXMEMORY 4 GiBused 2.4 GiBpolicy allkeys-lru · evictions 0 · fragmentation 1.18 · hit rate 96.4%
Blocks are sized by memory footprint, not key count — which is how a namespace with eighteen thousand keys turns out to be the one filling the instance.
KeyTypeTTLMemory
session:9f21c4hash28m512 B
catalogue:sku:88401string—84 KiB
leaderboard:weeklyzset—11 MiB
events:ingeststream—240 MiB
Browsing never uses KEYS

Every listing is cursor-based, so opening the explorer on a production instance with a million keys does not block the server for anyone else. Delete-by-pattern offers a dry run — the match count before anything goes — and reports what it actually removed.

Keyspace and key operations in the docs
03Streams, consumer groups and the PEL

Delivered is not the same as acknowledged.

A Redis Stream keeps a pending entries list per consumer group: everything handed to a consumer that has not been acknowledged yet. It is the only place a stuck consumer becomes visible, so it gets its own view rather than a number on a dashboard.

STREAM · events:ingest · length 84,102last id 1754-3group: analyticslag 12 · pending 0 · 4 consumersgroup: archiverPEL · 3,140 pendingoldest idle 42mconsumer c-2 · delivered 4×delivered → not acknowledged → still owned by c-2 · XAUTOCLAIM reassigns it once someone runs it past the idle threshold
Two groups reading one stream. Lag says how far behind a group is; the pending list says whether anything is actually stuck — and which consumer is holding it. When Redis cannot compute lag, the console says unknown, because 0 would mean caught up.
ConsumerPendingIdleDeliveries
c-102s1
c-23,14042m4
c-301s1
Claiming is a guarded operation

Reassigning pending entries to another consumer changes who is responsible for work in flight. It needs operate rights on the environment, names the entries and the target consumer in the confirmation, and lands in the audit timeline — and its idle-time threshold is an interlock, not a filter: nothing recently touched moves.

Redis Streams in production — the guide
04Inside the console
redis / dev-redis / keys
BROKA Redis keys screen: the eight keys matching broka:*, walked with SCAN — string, hash, set, zset, list, stream and ReJSON-RL side by side, each with length, memory, TTL and encoding — under the header "Walked with SCAN, never KEYS" with Add key beside Delete by pattern, and a footer saying the scan is complete.BROKA Redis keys screen: the eight keys matching broka:*, walked with SCAN — string, hash, set, zset, list, stream and ReJSON-RL side by side, each with length, memory, TTL and encoding — under the header "Walked with SCAN, never KEYS" with Add key beside Delete by pattern, and a footer saying the scan is complete.
Keyspace explorer. Cursor-based browsing with type, TTL, memory and encoding on every row — and a footer that says when the scan is complete.
redis / broka:orders / pending
BROKA pending entries screen for the fulfilment group on broka:orders: ten entries split five and five across two consumers, picker-1 and picker-2, each row showing owner, idle time and delivery count, with one entry flagged at five deliveries — under Sweep to a consumer and the minimum-idle box that filters the list.BROKA pending entries screen for the fulfilment group on broka:orders: ten entries split five and five across two consumers, picker-1 and picker-2, each row showing owner, idle time and delivery count, with one entry flagged at five deliveries — under Sweep to a consumer and the minimum-idle box that filters the list.
Pending entries. Everything delivered and never acknowledged: per-entry owner, idle time and delivery count — with one entry delivered five times flagged as the poison-message signal.
Request a demo
05Access and safety

The destructive commands are the ones worth gating.

Redis has no separate admin API — management is the data protocol, so the same connection that reads a key can delete it. And on a single-threaded server a read can be an outage, which is why the console itself never runs KEYS, ships no FLUSH route at all, and replaced live MONITOR with cumulative command activity. The two-layer check matters more here than anywhere else: BROKA's scoped permission first, then whatever the connection's own ACL user is permitted to run.

  • 01Give the browsing connection an ACL user without FLUSHDB, FLUSHALL or KEYS
  • 02Delete-by-pattern offers a dry run, and reports what it actually removed — not what the pattern was meant to cover
  • 03Add key refuses a name that exists — it never overwrites, and the refusal names the key
  • 04Dropping a search index asks for a reason, and deleting the documents it indexed is a separate box that starts unticked
  • 05Claiming pending entries needs operate rights and names the target consumer
  • 06CONFIG SET is administrative and records the previous value alongside the new one
  • 07In Commercial, the parts of a value a data masking rule covers are masked wherever the console shows it, and every unmasked read is recorded
  • 08TLS verifies the peer and the hostname as two separate switches, and certificate material never touches disk
Audit entry
actor      deniz@northwind-bank.example
session    b7e04f            ip: 10.20.6.18
env        staging
broker     redis             instance: cache-eu-01
resource   keys session:*    matched: 1,284
action     delete-by-pattern
outcome    accepted          after a dry-run preview

Redis keeps no history — once a key is gone, the audit entry is often the only surviving record that it held something else. Same entry shape as Kafka, RabbitMQ and Apache Artemis (formerly ActiveMQ Artemis): one trail across the estate, one export instead of one per broker.

Audit and accountability →
Get the Security overview

Redis documentation and guides

All pages →
DocsKeysWhat a key says about itself, and what each type editor allows.DocsRedis StreamsEntries paged by id, a live tail that consumes nothing, and trimming.DocsPending entriesWhat an unacknowledged entry is, and what claiming one does.DocsMemoryFragmentation, eviction policy and hit rate, read together.
Get started

Point it at an instance and open the keyspace.

Community covers Kafka and Kafka-compatible brokers — Redis ships in Commercial. Connect a standalone instance, a Sentinel group or a cluster, browse the keyspace by type, and follow a stream into its consumer groups.

Contact salesRequest a demoCommercial — join the waitlistCompare broker capabilities →