db-redis
Inspect Redis instances configured in .env (DB_REDIS_N_*). Use when the user asks to read keys, check cache state, list keys by pattern, or query info/dbsize on a Redis server. Picks connection by label (e.g. 'cache-dev', 'queue-prod') or numeric index. Read-only in v1 — no SET/DEL/FLUSH exposed.
Works with
---
name: db-redis
description: Inspect Redis instances configured in .env (DB_REDIS_N_*). Use when the user asks to read keys, check cache state, list keys by pattern, or query info/dbsize on a Redis server. Picks connection by label (e.g. 'cache-dev', 'queue-prod') or numeric index. Read-only in v1 — no SET/DEL/FLUSH exposed.
license: Apache-2.0
---
# db-redis
Inspect Redis instances declared in `.env`. Same numbered block pattern as every other `db-*` and `SOCIAL_*_N_*` integration.
## Setup — one-time, per instance
Add a block to `.env` (gitignored):
```env
DB_REDIS_1_LABEL=cache-dev
DB_REDIS_1_HOST=redis.dev.internal
DB_REDIS_1_PORT=6379
DB_REDIS_1_DB=0 # numeric DB index (default 0)
# DB_REDIS_1_USERNAME= # optional (Redis 6+ ACL)
DB_REDIS_1_PASSWORD=...
# DB_REDIS_1_TLS=false # default false
# DB_REDIS_1_ALLOW_WRITE=false # default false (no write verbs in v1 anyway)
# DB_REDIS_1_QUERY_TIMEOUT=30
# DB_REDIS_1_MAX_ROWS=1000
```
Full URL alternative (wins when both are set):
```env
DB_REDIS_2_LABEL=queue-prod
DB_REDIS_2_URL=rediss://user:pw@host:6380/0
```
`LABEL` is always required.
## Usage
All commands output JSON on stdout (safe to pipe). Errors go to stderr.
### List configured connections
```bash
python3 .claude/skills/db-redis/scripts/db_client.py accounts
```
### Health-check (PING, reports RTT)
```bash
python3 .claude/skills/db-redis/scripts/db_client.py test cache-dev
```
### List keys (production-safe — uses SCAN, never KEYS *)
```bash
# All keys (up to MAX_ROWS)
python3 .claude/skills/db-redis/scripts/db_client.py keys cache-dev
# Pattern + limit
python3 .claude/skills/db-redis/scripts/db_client.py keys cache-dev 'user:*' 50
```
### Read a single key (auto-detects type)
```bash
python3 .claude/skills/db-redis/scripts/db_client.py get cache-dev user:123
```
Handles `string`, `list`, `set`, `hash`, `zset`, `stream` automatically. Includes TTL in seconds (null if persistent).
### Server info
```bash
# All sections
python3 .claude/skills/db-redis/scripts/db_client.py info cache-dev
# Specific section (memory, clients, replication, stats, persistence, ...)
python3 .claude/skills/db-redis/scripts/db_client.py info cache-dev memory
```
### Database size (number of keys)
```bash
python3 .claude/skills/db-redis/scripts/db_client.py dbsize cache-dev
```
## Output shape
`get` on a string key:
```json
{
"ok": true,
"label": "cache-dev",
"key": "user:123",
"type": "string",
"value": "alice",
"ttl_seconds": 3600
}
```
`keys`:
```json
{
"ok": true,
"query_id": "uuid-v4",
"label": "cache-dev",
"pattern": "user:*",
"keys": ["user:1", "user:2", "user:3"],
"row_count": 3,
"truncated": false,
"execution_time_ms": 8
}
```
## Guardrails
- **Read-only verbs only in v1** — GET, SCAN (via `keys`), TYPE, TTL, LRANGE/SMEMBERS/HGETALL/ZRANGE/XRANGE (via `get`), INFO, DBSIZE, PING. No SET/DEL/FLUSHDB/FLUSHALL exposed. `ALLOW_WRITE` reserved for future write commands.
- **SCAN instead of KEYS** — `keys` uses `scan_iter` with `count=200` to avoid blocking the server on production instances.
- **Result cap** — `keys` stops at `MAX_ROWS`. Collection readers (LRANGE/SMEMBERS/ZRANGE/XRANGE inside `get`) also cap at `MAX_ROWS`.
- **Decoding** — responses decoded as UTF-8 (`decode_responses=True`). Raw bytes not supported in v1; if you need binary values, store them base64-encoded or ask for a follow-up.
## Error codes
- `no_connections`, `not_found`, `ambiguous`, `config_error`, `usage` — same as other `db-*` skills
- `driver_missing` — `redis` (python) not installed
- `connection_failed` — network, auth, TLS, or timeout
- `invalid_args` — bad limit argument
## Workflow
1. `accounts` to confirm the label.
2. `dbsize` or `info memory` for a quick overview before listing.
3. `keys <label> '<pattern>'` to find what you're looking for — always use a narrow pattern on prod instances.
4. `get <label> <key>` to read individual values. TTL is included so you know if the value is ephemeral.
## Dependencies
- Python 3.10+
- `redis` (python client) — not pre-installed; `uv pip install redis` on first use. Works against Redis 5+, Redis Stack, Valkey, and managed services (Upstash, Redis Cloud, AWS ElastiCache, Google Memorystore).
## Deep-dive references
Redis isn't covered by PlanetScale's `database-skills`. Authoritative sources:
- [Redis Commands](https://redis.io/commands/)
- [SCAN vs KEYS](https://redis.io/docs/latest/commands/scan/) — why `keys` uses SCAN
- [ACL (Access Control List)](https://redis.io/docs/latest/operate/oss_and_stack/management/security/acl/) — Redis 6+ username/password
- [Memory Optimization](https://redis.io/docs/latest/operate/oss_and_stack/management/optimization/memory-optimization/)
- [Persistence (RDB vs AOF)](https://redis.io/docs/latest/operate/oss_and_stack/management/persistence/)More Database skills
prisma-mongodb-upgrade
prisma/skills
Decision and migration guide for Prisma ORM MongoDB projects on v6, which have no upgrade path to v7. Use when a MongoDB project asks about upgrading Prisma, when "upgrade to prisma 7" comes up in a project with provider = "mongodb", or when evaluating a move to Prisma Next. Triggers on "upgrade prisma mongodb", "prisma 7 mongodb", "mongodb prisma migration", "prisma next mongodb".
azure-upgrade
microsoft/azure-skills
Assess and upgrade Azure workloads between plans, tiers, or SKUs, or modernize Azure SDK dependencies in source code. WHEN: upgrade Consumption to Flex Consumption, upgrade Azure Functions plan, change hosting plan, function app SKU, migrate App Service to Container Apps, modernize legacy Azure Java SDKs (com.microsoft.azure to com.azure), migrate Azure Cache for Redis (ACR/ACRE) to Azure Managed Redis (AMR).
azure-cost-optimization
microsoft/azure-skills
Identify Azure cost savings from usage and spending data. USE FOR: optimize Azure costs, reduce Azure spending/expenses, analyze Azure costs, find cost savings, generate cost optimization report, identify orphaned resources to delete, rightsize VMs, reduce waste, optimize Redis costs, optimize storage costs, AKS cost analysis add-on, namespace cost, cost spike, anomaly, budget alert, AKS cost visibility. DO NOT USE FOR: deploying resources (use azure-deploy), general Azure diagnostics (use azure-diagnostics), security issues (use azure-security)

