Awesome-omni-skill valkey
Valkey (Redis-compatible) in-memory data store for caching, session storage, pub/sub, queues, and distributed locks. Use when configuring Valkey or Redis-compatible caching, choosing eviction policies, implementing rate limiting, setting up pub/sub or streams, writing Docker Compose services, migrating from Redis, or tuning performance. Use for valkey, redis, cache, session, pub/sub, streams, distributed-lock, rate-limit, sorted-set.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/valkey" ~/.claude/skills/diegosouzapw-awesome-omni-skill-valkey && rm -rf "$T"
skills/devops/valkey/SKILL.mdValkey
Open-source, Redis-compatible in-memory data store maintained by the Linux Foundation. Forked from Redis OSS 7.2.4 (BSD 3-Clause license). Drop-in replacement for Redis OSS 2.x through 7.2.x — same protocol, commands, and data formats.
When to use: Caching, session storage, rate limiting, pub/sub messaging, task queues, leaderboards, distributed locks, real-time counters, or any workload requiring sub-millisecond key-value operations.
When NOT to use: Primary relational data store, large object storage (>512 MB values), workloads requiring strong ACID transactions across multiple keys without Lua scripting.
Quick Reference
| Task | Approach | Key Point |
|---|---|---|
| Cache-aside | -> miss -> DB read -> | Always set a TTL, even a long one |
| Session storage | + | Sliding TTL on each request |
| Rate limiting | + (fixed window) or sorted set (sliding) | Sorted set for precision |
| Distributed lock | | Always set expiry to prevent deadlocks |
| Queue (simple) | + | Blocking pop with timeout |
| Queue (reliable) | Streams + + | Consumer groups for at-least-once |
| Pub/Sub | / | Fire-and-forget, no persistence |
| Streams | + | Persistent, replayable, consumer groups |
| Leaderboard | Sorted set: / | O(log N) rank operations |
| Unique count | + (HyperLogLog) | ~12 KB memory, 0.81% error |
| Eviction policy | | Best default for most workloads |
| Docker setup | | Health check: |
| Persistence | AOF () + RDB snapshots | AOF for durability, RDB for backups |
| Client library | or (official fork) | All Redis clients work unchanged |
| Migrate from Redis | Swap binary, keep data files | RDB/AOF compatible through Redis 7.2 |
Common Mistakes
| Mistake | Correct Pattern |
|---|---|
Using in production | Use with cursor for iteration |
| No TTL on cache keys | Always set TTL — unbounded growth causes OOM |
on large keys blocking server | Use for async deletion |
| Pub/Sub for durable messaging | Use Streams with consumer groups for persistence |
| Same TTL on all keys (thundering herd) | Add jitter: |
No set in production | Set + eviction policy explicitly |
Using for locking | Use for distributed locks |
| Storing large blobs (>1 MB values) | Store references; keep values small |
| No health check in Docker Compose | Add health check |
Ignoring in production | Always set authentication + ACLs |
Delegation
- Discover caching patterns and data model review: Use
agentExplore - Plan migration strategy from Redis to Valkey: Use
agentPlan - Implement full caching layer with tests: Use
agentTask
If the
skill is available, delegate Compose networking and multi-stage build patterns to it. If thedockerskill is available, delegate application-level caching strategy to it. If theperformance-optimizerskill is available, delegate ACL and TLS configuration review to it.database-security
References
- Data structures and commands -- Strings, hashes, lists, sets, sorted sets, streams, HyperLogLog, bitmaps, geospatial
- Caching patterns -- Cache-aside, write-through, TTL strategies, eviction policies, client-side caching, invalidation
- Common patterns -- Rate limiting, distributed locks, queues, session storage, pub/sub, streams, leaderboards
- Docker and deployment -- Compose setup, persistence, replication, Sentinel, Cluster, security, migration from Redis