mcpField
V
valkey

valkey

github.com/oakossData & databases20131 installsUpdated 10w ago
Repository

About valkey

A skill for using Valkey, an open-source, Redis-compatible in-memory data store maintained by the Linux Foundation. It covers common data patterns, operational practices, and migration guidance for Redis-compatible workloads.

Key features

  1. 01Caching and session storage patterns
  2. 02Rate limiting and distributed locks
  3. 03Queues, pub/sub, and streams
  4. 04Sorted-set leaderboards and counters
  5. 05Persistence, deployment, and migration guidance

Use cases

  1. 01Applying cache-aside with expiration
  2. 02Building queues or pub/sub workflows
  3. 03Storing sessions and enforcing rate limits
  4. 04Planning migration from Redis to Valkey

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/oakoss/agent-skills --skill valkey

After installing, type/valkeyin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
caching-patterns.md
common-patterns.md
data-structures.md
docker-and-deployment.md

Details

From the project README

Valkey

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

TaskApproachKey Point
Cache-asideGET -> miss -> DB read -> SET key val EX ttlAlways set a TTL, even a long one
Session storageHSET session:{id} field val + EXPIRESliding TTL on each request
Rate limitingINCR + EXPIRE (fixed window) or sorted set (sliding)Sorted set for precision
Distributed lockSET lock:{res} token NX PX 30000Always set expiry to prevent deadlocks
Queue (simple)LPUSH + BRPOPBlocking pop with timeout
Queue (reliable)Streams + XGROUP + XACKConsumer groups for at-least-once
Pub/SubSUBSCRIBE / PUBLISHFire-and-forget, no persistence
StreamsXADD + XREADGROUPPersistent, replayable, consumer groups
LeaderboardSorted set: ZADD / ZREVRANGEO(log N) rank operations
Unique countPFADD + PFCOUNT (HyperLogLog)~12 KB memory, 0.81% error
Eviction policymaxmemory-policy allkeys-lruBest default for most workloads
Docker setupvalkey/valkey:8.1-alpineHealth check: valkey-cli ping
PersistenceAOF (appendonly yes) + RDB snapshotsAOF for durability, RDB for backups
Client libraryioredis or iovalkey (official fork)All Redis clients work unchanged
Migrate from RedisSwap binary, keep data filesRDB/AOF compatible through Redis 7.2

Common Mistakes

MistakeCorrect Pattern
Using KEYS * in productionUse SCAN with cursor for iteration
No TTL on cache keysAlways set TTL — unbounded growth causes OOM
DEL on large keys blocking serverUse UNLINK for async deletion
Pub/Sub for durable messagingUse Streams with consumer groups for persistence
Same TTL on all keys (thundering herd)Add jitter: EX (base + random(0, spread))
No maxmemory set in productionSet maxmemory + eviction policy explicitly
Using MULTI/EXEC for lockingUse SET ... NX PX for distributed locks
Storing large blobs (>1 MB values)Store references; keep values small
No health check in Docker ComposeAdd valkey-cli ping health check
Ignoring requirepass in productionAlways set authentication + ACLs

Delegation

  • Discover caching patterns and data model review: Use Explore agent
  • Plan migration strategy from Redis to Valkey: Use Plan agent
  • Implement full caching layer with tests: Use Task agent

If the docker skill is available, delegate Compose networking and multi-stage build patterns to it. If the performance-optimizer skill is available, delegate application-level caching strategy to it. If the database-security skill is available, delegate ACL and TLS configuration review to it.

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

Comments

Markdown supported