Skip to content

Redis Studio โ€‹

FlashORM includes a powerful Redis management interface inspired by Upstash, providing a beautiful and intuitive way to manage your Redis databases.

Table of Contents โ€‹

Quick Start โ€‹

bash
# Start Redis Studio
flash studio redis --url "redis://localhost:6379"

# With password
flash studio redis --url "redis://:password@localhost:6379"

# Custom port
flash studio redis --url "redis://localhost:6379" --port 3000

# Open without browser auto-launch
flash studio redis --url "redis://localhost:6379" --no-browser

Key Browser โ€‹

๐Ÿ—‚๏ธ Browse and Manage Keys โ€‹

  • View all keys with type indicators (STRING, LIST, SET, HASH, ZSET)
  • Search keys with pattern matching (e.g., user:*)
  • View key details including TTL, type, and value
  • Create, edit, and delete keys
  • Bulk delete multiple keys at once

Supported Data Types โ€‹

TypeViewEditCreateDelete
STRINGโœ…โœ…โœ…โœ…
LISTโœ…โœ…โœ…โœ…
SETโœ…โœ…โœ…โœ…
HASHโœ…โœ…โœ…โœ…
ZSETโœ…โœ…โœ…โœ…
STREAMโœ…--โœ…

Database Selector โ€‹

Switch between Redis databases (db0-db15):

  • Dropdown selector in the navigation bar
  • Shows key count per database
  • State persists across sessions

CLI Terminal โ€‹

๐Ÿ’ป Full Redis CLI Experience โ€‹

Interactive command-line interface with full Redis command support:

redis> SET mykey "hello"
OK
redis> GET mykey
"hello"
redis> HSET user:1 name "John" age 30
(integer) 2
redis> KEYS user:*
1) "user:1"

Features:

  • Command history with โ†‘โ†“ arrow keys
  • Tab completion for commands
  • Syntax highlighting
  • Multi-line command support
  • Command output formatting

Statistics Dashboard โ€‹

๐Ÿ“Š Server Information โ€‹

Real-time server statistics including:

  • Memory: Used memory, peak memory, RSS memory, fragmentation ratio
  • Clients: Connected clients, blocked clients
  • Keys: Total keys, keys with expiry
  • Commands: Total commands processed, commands per second
  • Server: Redis version, uptime, mode (standalone/cluster)
  • Replication: Role, connected slaves

Memory Analysis โ€‹

๐Ÿง  Per-Key Memory Usage โ€‹

Analyze memory consumption across your Redis instance:

bash
# Access via Memory tab in Redis Studio

Features:

  • Per-key memory usage analysis
  • Memory usage by type (STRING, HASH, LIST, etc.)
  • Memory overview with peak/used/RSS statistics
  • Fragmentation ratio monitoring
  • Sort keys by memory consumption
  • Pattern-based memory analysis

Memory Overview Dashboard:

MetricDescription
Used MemoryCurrent memory usage
Peak MemoryMaximum memory ever used
RSS MemoryResident Set Size
Fragmentation RatioMemory fragmentation level

Slow Log Viewer โ€‹

๐ŸŒ Query Performance Analysis โ€‹

View slow queries to identify performance bottlenecks:

Features:

  • View slow query history with timestamps
  • Duration in microseconds/milliseconds
  • Full command text
  • Client address and name
  • Clear slow log functionality

Slow Log Entry:

FieldDescription
IDUnique entry identifier
TimeWhen the query was executed
DurationHow long the query took
CommandThe Redis command that was slow
ClientClient address that issued the command

Lua Script Editor โ€‹

๐Ÿ“œ Execute and Manage Lua Scripts โ€‹

Full-featured Lua scripting environment:

Features:

  • Write and execute Lua scripts directly
  • KEYS and ARGV parameter support
  • Script loading (SCRIPT LOAD) with SHA return
  • Execute scripts by SHA (EVALSHA)
  • Script result display with duration
  • Flush all loaded scripts

Example Script:

lua
-- Return the sum of two values
local a = redis.call('GET', KEYS[1])
local b = redis.call('GET', KEYS[2])
return tonumber(a) + tonumber(b)

Usage:

  1. Enter your Lua script in the editor
  2. Add KEYS (comma-separated): key1, key2
  3. Add ARGV (comma-separated): arg1, arg2
  4. Click "Execute" to run or "Load Script" to cache

Pub/Sub Management โ€‹

๐Ÿ“ข Publish Messages and View Channels โ€‹

Manage Redis Pub/Sub functionality:

Features:

  • Publish messages to any channel
  • View all active channels
  • See subscriber counts per channel
  • Pattern subscriber count
  • Real-time channel list refresh

Publish a Message:

  1. Enter channel name
  2. Enter message content
  3. Click "Publish"
  4. See number of subscribers that received the message

Configuration Editor โ€‹

โš™๏ธ View and Modify Redis Configuration โ€‹

Manage Redis server configuration in real-time:

Features:

  • View all configuration parameters
  • Filter by pattern (e.g., max*)
  • Edit configuration values inline
  • Save individual configuration changes
  • Rewrite configuration file
  • Reset server statistics

Common Configuration Parameters:

ParameterDescription
maxmemoryMaximum memory limit
maxclientsMaximum client connections
timeoutClient timeout
tcp-keepaliveTCP keepalive interval
databasesNumber of databases

ACL Management โ€‹

๐Ÿ” Access Control Lists (Redis 6.0+) โ€‹

Manage Redis users and permissions:

Features:

  • View all ACL users with their rules
  • Create new users with custom permissions
  • Delete users
  • View ACL security log
  • Clear ACL log entries

ACL Log Entries:

FieldDescription
ReasonWhy access was denied
ContextCommand context
ObjectKey or command that was accessed
UsernameUser that attempted the action
AgeHow long ago the event occurred

WARNING

ACL features require Redis 6.0 or higher.

Cluster & Replication โ€‹

๐Ÿ”„ View Cluster and Replication Status โ€‹

Monitor your Redis deployment topology:

Replication Info:

  • Role (master/slave)
  • Connected slaves count
  • Master host and port (for replicas)
  • Master link status
  • Slave details (IP, port, state, offset)

Cluster Info (when enabled):

  • Cluster state (ok/fail)
  • Known nodes count
  • Slots status (ok, pfail, fail)
  • Cluster size
  • Node details (ID, address, flags, slots)

Export/Import โ€‹

๐Ÿ“ค Export Keys to JSON โ€‹

Export your Redis data for backup or migration:

Export Features:

  • Export by pattern (e.g., user:* or * for all)
  • Preview export data before downloading
  • Download as JSON file with timestamps
  • Includes key type, value, and TTL

Export Format:

json
{
  "keys": [
    {
      "key": "user:1",
      "type": "hash",
      "ttl": -1,
      "value": {"name": "John", "age": "30"}
    }
  ],
  "count": 1,
  "exported_at": "2024-01-15T10:30:00Z"
}

๐Ÿ“ฅ Import Keys from JSON โ€‹

Restore or migrate Redis data:

Import Features:

  • Paste JSON directly or upload file
  • Overwrite existing keys option
  • Import summary (imported/skipped counts)
  • Supports all data types

Bulk Operations โ€‹

โฐ Bulk TTL Update โ€‹

Set expiration for multiple keys at once:

bash
# Set TTL for all user keys
Pattern: user:*
TTL: 3600 (1 hour)

Features:

  • Pattern-based key selection
  • Set TTL in seconds
  • Use 0 or -1 to remove expiration
  • Shows count of updated keys

๐Ÿงน Database Purge โ€‹

Clear all keys from the current database:

  • Requires confirmation
  • Uses FLUSHDB command
  • Affects only selected database

Connection Options โ€‹

Local Redis โ€‹

bash
flash studio redis --url "redis://localhost:6379"

Remote Redis with Authentication โ€‹

bash
flash studio redis --url "redis://user:password@redis.example.com:6379"

Redis with TLS/SSL โ€‹

bash
flash studio redis --url "rediss://user:pass@redis.example.com:6379"

Specific Database โ€‹

bash
flash studio redis --url "redis://localhost:6379/1"

Keyboard Shortcuts โ€‹

ShortcutAction
โ†‘ / โ†“Navigate command history (CLI)
TabAutocomplete command (CLI)
Ctrl+LClear terminal (CLI)
Ctrl+CCancel current command (CLI)
EnterExecute command (CLI)

UI Features โ€‹

Dark Theme โ€‹

Redis Studio uses a modern dark theme optimized for long sessions.

State Persistence โ€‹

Your preferences are saved across browser sessions:

  • Selected database
  • Active tab
  • Search patterns

Responsive Design โ€‹

Works on desktop and tablet devices with adaptive layouts.

Tips & Best Practices โ€‹

Searching Keys Efficiently โ€‹

Use SCAN instead of KEYS for large databases:

redis> SCAN 0 MATCH user:* COUNT 100

Monitoring Memory โ€‹

Regular memory analysis helps identify:

  • Large keys consuming resources
  • Memory fragmentation issues
  • Keys without expiration (potential memory leaks)

Lua Script Caching โ€‹

For frequently-used scripts:

  1. Load the script once with "Load Script"
  2. Save the returned SHA
  3. Execute using EVALSHA for better performance

Security Best Practices โ€‹

  • Use ACL to restrict user permissions
  • Monitor ACL log for unauthorized access attempts
  • Set appropriate TTLs to prevent memory issues
  • Use TLS for remote connections

Released under the MIT License.