Redis Cache Inspector
Use this skill to inspect Redis cache state for debugging purposes.
Running Commands
node .claude/skills/redis-inspect/query.mjs <command> [options]
Commands
| Command | Description |
|---------|-------------|
| get <key> | Get a string value |
| keys <pattern> | Find keys matching pattern (use * as wildcard) |
| ttl <key> | Get TTL (-1 = no expiry, -2 = not found) |
| type <key> | Get the type of a key |
| exists <key> | Check if key exists |
| hgetall <key> | Get all fields from a hash |
| hget <key> <field> | Get a specific hash field |
| scard <key> | Get set cardinality (count) |
| smembers <key> | Get all set members |
| llen <key> | Get list length |
| lrange <key> | Get list elements |
| del <key> | Delete a key (requires --writable) |
| info | Get Redis server info |
Options
| Flag | Description |
|------|-------------|
| --sys | Use system cache instead of main cache |
| --writable | Allow write operations (required for del) |
| --json | Output raw JSON |
| --limit <n> | Limit results (default: 100) |
Cache Types
The project has two Redis instances:
| Cache | Flag | Env Variable | Purpose |
|-------|------|--------------|---------|
| Main Cache | (default) | REDIS_URL | Regular cache, cluster mode, can be lost |
| System Cache | --sys | REDIS_SYS_URL | Persistent system values, single node |
Main Cache (default)
Regular application cache. Data here can be regenerated if lost.
- User sessions
- Cached queries
- Temporary data
- Rate limiting counters
System Cache (--sys)
Persistent system configuration and state. More critical data.
- Feature flags
- Generation limits/status
- System permissions
- Job state
- Event configurations
Examples
# Find keys matching a pattern
node .claude/skills/redis-inspect/query.mjs keys "user:*" --limit 20
node .claude/skills/redis-inspect/query.mjs keys "packed:caches:*"
# Get a value
node .claude/skills/redis-inspect/query.mjs get "session:data2:123456"
# Check system cache values
node .claude/skills/redis-inspect/query.mjs --sys get "system:features"
node .claude/skills/redis-inspect/query.mjs --sys hgetall "system:entity-moderation"
# Check TTL
node .claude/skills/redis-inspect/query.mjs ttl "generation:count:123"
# Inspect a hash
node .claude/skills/redis-inspect/query.mjs hgetall "packed:caches:cosmetics"
node .claude/skills/redis-inspect/query.mjs hget "system:entity-moderation" "entities"
# Check set size
node .claude/skills/redis-inspect/query.mjs scard "queues:seen-images"
# Get server info
node .claude/skills/redis-inspect/query.mjs info
node .claude/skills/redis-inspect/query.mjs --sys info
Common Key Patterns
Main Cache
| Pattern | Description |
|---------|-------------|
| user:* | User data |
| session:* | Session data |
| packed:caches:* | Packed/compressed cached data |
| packed:user:* | Packed user cache |
| generation:* | Generation-related cache |
| tag:* | Tag cache |
System Cache
| Pattern | Description |
|---------|-------------|
| system:* | System configuration |
| generation:* | Generation limits/status |
| download:limits | Download limits |
| job:* | Job state |
| event:* | Event configurations |
| new-order:* | New Order game state |
| daily-challenge:* | Daily challenge config |
Debugging Tips
# Check if a user's session exists
node .claude/skills/redis-inspect/query.mjs keys "session:data2:*" --limit 10
# Check generation status
node .claude/skills/redis-inspect/query.mjs --sys get "generation:status"
# Check feature flags
node .claude/skills/redis-inspect/query.mjs --sys hgetall "system:features"
# Check cache memory usage
node .claude/skills/redis-inspect/query.mjs info
Write Operations
Write operations require --writable flag and user approval:
# Delete a specific key (requires approval)
node .claude/skills/redis-inspect/query.mjs del "some:key" --writable
IMPORTANT: Always ask the user for permission before using --writable.