redis

$npx mdskill add partme-ai/full-stack-skills/redis

Guides Redis implementation for caching, data structures, and persistence using patterns and commands.

  • Helps with implementing caching, session storage, rate limiting, queues, and data layers in Redis.
  • Integrates with Redis data structures, pub/sub, Lua scripting, and tools like redis-cli and language drivers.
  • Decides recommendations based on use cases like caching or queues, choosing appropriate data structures and commands.
  • Presents results through examples, workflows, and code snippets for execution in Redis environments.
SKILL.md
.github/skills/redisView on GitHub ↗
---
name: redis
description: "Guides Redis usage including data structures (strings, hashes, lists, sets, sorted sets), caching patterns, pub/sub, persistence (RDB/AOF), clustering, and Lua scripting. Use when the user needs to implement caching, session storage, rate limiting, queues, or any Redis-based data layer."
license: Complete terms in LICENSE.txt
---

## When to use this skill

Use this skill whenever the user wants to:
- Use Redis data structures (string, hash, list, set, sorted set) and commands
- Implement caching, session storage, rate limiting, or message queues with Redis
- Configure persistence (RDB/AOF), replication, Sentinel, or Redis Cluster
- Write Lua scripts for atomic Redis operations
- Connect via redis-cli or language drivers (connection pooling, serialization)

## How to use this skill

### Workflow

1. **Identify the use case** - Caching, session store, queue, pub/sub, or data structure
2. **Choose the data structure** - String for simple values, Hash for objects, List for queues, Sorted Set for rankings
3. **Implement with appropriate commands** - Use the patterns below
4. **Configure persistence and replication** - Based on durability requirements

### Quick-Start Example: Caching with TTL

```bash
# Set a cache entry with 5-minute TTL
redis-cli SET user:1001:profile '{"name":"Alice","role":"admin"}' EX 300

# Retrieve the cached value
redis-cli GET user:1001:profile

# Check remaining TTL
redis-cli TTL user:1001:profile
```

### Rate Limiting with Sorted Sets

```bash
# Add request timestamp to sorted set
redis-cli ZADD rate:user:1001 1710000000 "req1"

# Count requests in the last 60 seconds
redis-cli ZRANGEBYSCORE rate:user:1001 1709999940 1710000000

# Remove expired entries
redis-cli ZREMRANGEBYSCORE rate:user:1001 0 1709999940
```

## Best Practices

1. **Use namespaced keys** - Format as `service:entity:id:field` (e.g., `app:user:1001:session`)
2. **Always set TTL** - Prevent memory leaks from stale data; use `EX`/`PX` on SET
3. **Avoid large keys** - Split hashes over 1MB; use SCAN instead of KEYS in production
4. **Choose persistence wisely** - RDB for snapshots (fast restart), AOF for durability (every write)
5. **Secure production** - Require password (`requirepass`), bind to private IPs, disable `FLUSHALL`

## Keywords

redis, cache, caching, 缓存, data structures, 数据结构, pub/sub, sentinel, cluster, 主从, 集群, rate limiting, session store, Lua scripting
More from partme-ai/full-stack-skills