Skip to main content

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.

소스 정보

저장소
evolution-foundation/evo-nexus
최근 소스 활동
2026년 4월 23일 00:17
감지된 SKILL.md 언어
영어
스타
544
포크
183

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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.
metadata
{"openclaw":{"requires":{"env":"[Truncated]","bins":"[Truncated]"},"primaryEnv":"DB_REDIS_1_LABEL","files":["scripts/*","references/*"]}}
# 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/)
GitHub에서 보기