Skip to content

Redis

Pro-tier engine. Quay treats Redis as Redis: key tree, type-aware editors per value type (string / list / set / sorted set / hash / stream), pub/sub tail, native JSONL dump.

FieldNotes
Hostlocalhost, redis.example.com, …
Port6379 (default)
Username · PasswordOptional; ACL auth supported (Redis 6+)
Database0–15 (SELECT n)
TLSOptional; certificate paths if cert-based
SSH tunnelOptional

For Redis Cluster: connect to any node; Quay discovers the slot map + topology automatically. Slot-misses get retried transparently against the right shard.

The left rail shows keys in a tree, split by : separators (the de facto Redis convention). users:1234:profile becomes a 3-level nesting. Counts at each level. Search is glob-aware (KEYS pattern) with a SCAN fallback for big keyspaces (>10k keys triggers SCAN mode automatically — no KEYS * blocking the engine).

Each Redis type gets its own grid:

  • String — single-cell editor with TTL field
  • List — ordered grid; LPUSH / RPUSH from the bottom toolbar
  • Hash — field/value pairs in a 2-column grid
  • Set — unordered grid + add/remove
  • Sorted set — score + member columns; sortable by score
  • Stream — entries in append order; XADD from the toolbar; the consumer groups panel surfaces pending entries
  • JSON (RedisJSON module) — auto-detected; renders the JSON in the BSON editor + dot-path editing
  • Bitmap / HyperLogLog / Geo — read-only display + PFCOUNT / GEORADIUS helper buttons

Edit-as-draft works across types — multiple SET / HSET / LPUSH ops stage together, ⌘S commits via pipelined commands.

SUBSCRIBE or PSUBSCRIBE from the deep panel; live tail of messages:

  • Channel filter (single channel or pattern)
  • Pretty-printed payload
  • Publish form below the tail for quick send

The connection used for SUBSCRIBE is dedicated (Redis pubsub clients can’t run regular commands while subscribed); Quay opens a separate pool client for it so the main session stays usable.

Walks the keyspace via SCAN, dumps every key with its type-aware representation as JSONL:

{"key":"users:1234:profile","type":"hash","value":{"name":"Ada","plan":"pro"}}
{"key":"users:1234:cart","type":"list","value":["sku-1","sku-2"]}

Optional pattern (pattern: "users:*") for partial dumps. The restore path reads the same JSONL and runs the right command per type.

For production-grade backups of Redis use the upstream RDB / AOF mechanism — BGSAVE plus copying the .rdb file. Quay’s JSONL dump is for exports, fixtures, and snapshots that need to be human-readable. The scheduled-backups CLI can fire redis_dump_keys on a cron, but for a master replication solution use Redis’s own.

Every grid shows the per-key TTL in a column; setting / clearing it is a one-cell edit. The dump includes TTL state per key ({"key":"…","ttl":3600}); restore re-applies via EXPIRE.

  • Cluster: covered above — auto-discover topology
  • Sentinel: connect to a Sentinel host with the sentinel:// scheme; Quay queries Sentinel for the current master + reconnects on failover. The active-master indicator is on the connection chip.
  • Modules: RedisJSON, RedisGraph, RedisTimeSeries — partial support (browser shows the values; native commands work via the raw command runner; type-aware editors only for JSON). Other modules: file a request via Settings → Feedback.
  • Lua script management: scripts run, but there’s no “manage saved scripts” surface yet.