Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/evolution-foundation-db-redis/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 164% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 109% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -28% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 14% | 0% |
Inspect Redis instances declared in .env. Same numbered block pattern as every other db-* and SOCIAL_*_N_* integration.
Add a block to .env (gitignored):
envDB_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):
envDB_REDIS_2_LABEL=queue-prod DB_REDIS_2_URL=rediss://user:pw@host:6380/0
LABEL is always required.
All commands output JSON on stdout (safe to pipe). Errors go to stderr.
bashpython3 .claude/skills/db-redis/scripts/db_client.py accounts
bashpython3 .claude/skills/db-redis/scripts/db_client.py test cache-dev
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
bashpython3 .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).
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
bashpython3 .claude/skills/db-redis/scripts/db_client.py dbsize cache-dev
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 }
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.keys uses scan_iter with count=200 to avoid blocking the server on production instances.keys stops at MAX_ROWS. Collection readers (LRANGE/SMEMBERS/ZRANGE/XRANGE inside get) also cap at MAX_ROWS.decode_responses=True). Raw bytes not supported in v1; if you need binary values, store them base64-encoded or ask for a follow-up.no_connections, not_found, ambiguous, config_error, usage — same as other db-* skillsdriver_missing — redis (python) not installedconnection_failed — network, auth, TLS, or timeoutinvalid_args — bad limit argumentaccounts to confirm the label.dbsize or info memory for a quick overview before listing.keys <label> '<pattern>' to find what you're looking for — always use a narrow pattern on prod instances.get <label> <key> to read individual values. TTL is included so you know if the value is ephemeral.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).Redis isn't covered by PlanetScale's database-skills. Authoritative sources:
keys uses SCAN| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,922 | 4,731 | -4% | 1 | 1 | 0% | 901 | 1,754 | +95% | 0 | 0 | — |
case-02 | fail→fail | 5,180 | 4,270 | -18% | 1 | 1 | 0% | 847 | 1,659 | +96% | 0 | 0 | — |
case-03 | fail→fail | 5,529 | 4,597 | -17% | 1 | 1 | 0% | 890 | 1,654 | +86% | 0 | 0 | — |
case-08 | fail→pass | 6,015 | 1,751 | -71% | 1 | 1 | 0% | 981 | 1,714 | +75% | 0 | 0 | — |
case-04 | fail→pass | 4,100 | 1,168 | -72% | 1 | 1 | 0% | 614 | 1,623 | +164% | 0 | 0 | — |
case-05 | fail→pass | 5,157 | 1,717 | -67% | 1 | 1 | 0% | 844 | 1,760 | +109% | 0 | 0 | — |
case-06 | fail→pass | 14,802 | 1,756 | -88% | 1 | 1 | 0% | 2,461 | 1,762 | -28% | 0 | 0 | — |
case-07 | fail→pass | 8,278 | 1,931 | -77% | 1 | 1 | 0% | 1,552 | 1,776 | +14% | 0 | 0 | — |
case-09 | pass→fail | 6,683 | 1,938 | -71% | 1 | 1 | 0% | 1,250 | 1,703 | +36% | 0 | 0 | — |
case-10 | fail→pass | 6,551 | 1,716 | -74% | 1 | 1 | 0% | 1,148 | 1,667 | +45% | 0 | 0 | — |
case-11 | pass→pass | 7,795 | 6,017 | -23% | 1 | 1 | 0% | 1,285 | 2,439 | +90% | 0 | 0 | — |
case-12 | fail→pass | 4,835 | 4,087 | -15% | 1 | 1 | 0% | 830 | 2,184 | +163% | 0 | 0 | — |
case-13 | pass→pass | 3,095 | 1,308 | -58% | 1 | 1 | 0% | 451 | 1,636 | +263% | 0 | 0 | — |
case-14 | pass→pass | 13,022 | 3,229 | -75% | 1 | 1 | 0% | 2,020 | 2,017 | -0% | 0 | 0 | — |
case-15 | pass→pass | 2,249 | 1,129 | -50% | 1 | 1 | 0% | 273 | 1,652 | +505% | 0 | 0 | — |
case-16 | fail→pass | 12,625 | 3,335 | -74% | 1 | 1 | 0% | 2,213 | 2,061 | -7% | 0 | 0 | — |
case-17 | pass→pass | 4,764 | 1,625 | -66% | 1 | 1 | 0% | 732 | 1,647 | +125% | 0 | 0 | — |
case-18 | fail→pass | 7,475 | 1,353 | -82% | 1 | 1 | 0% | 1,149 | 1,650 | +44% | 0 | 0 | — |
case-19 | fail→pass | 8,955 | 2,280 | -75% | 1 | 1 | 0% | 1,519 | 1,796 | +18% | 0 | 0 | — |
case-20 | fail→pass | 4,957 | 4,097 | -17% | 1 | 1 | 0% | 238 | 2,220 | +833% | 0 | 0 | — |
case-21 | fail→pass | 5,538 | 4,886 | -12% | 1 | 1 | 0% | 807 | 2,265 | +181% | 0 | 0 | — |
case-22 | fail→fail | 10,413 | 5,288 | -49% | 1 | 1 | 0% | 1,831 | 1,672 | -9% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +50 percentage points is the difference between those two pass rates over the 17 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.