Skip to main content

redis

Redis in-memory data store for caching, pub/sub, and real-time features

Source facts

Repository
ffsshhttiikk/opencode-agents-skills
Last source activity
February 28, 2026 at 22:54
Detected SKILL.md language
English
Stars
3
Forks
2

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
redis
description
Redis in-memory data store for caching, pub/sub, and real-time features
license
MIT
compatibility
opencode
metadata
{"audience":"developers","category":"databases"}
## What I do - Implement caching strategies - Use Redis for session storage - Build pub/sub systems - Create rate limiters - Use sorted sets for rankings - Implement distributed locks - Work with Redis Streams ## When to use me When building high-performance caching, real-time features, or pub/sub systems. ## Strings ```bash # Set/Get SET user:1 "John" GET user:1 # With expiry SET session:abc "data" EX 3600 SETEX cache:key 300 "value" # Increment INCR views:page:1 INCRBY counter 10 # Multiple MSET key1 "val1" key2 "val2" MGET key1 key2 ``` ## Hashes ```bash # Hash operations HSET user:1 name "John" email "john@example.com" age "30" HGET user:1 name HMGET user:1 name email HGETALL user:1 # Increment HINCRBY user:1 age 1 # Delete field HDEL user:1 age ``` ## Lists ```bash # Push/Pop LPUSH queue:tasks "task1" LPUSH queue:tasks "task2" RPOP queue:tasks # Range LRANGE mylist 0 -1 # Blocking (queue) BLPOP queue:tasks 0 # Wait for item ``` ## Sets ```bash # Add/Members SADD tags:post:1 "react" "javascript" "frontend" SMEMBERS tags:post:1 # Set operations SADD users:online "alice" "bob" "charlie" SISMEMBER users:online "alice" # Intersection SINTER set1 set2 # Random SRANDMEMBER myset 3 ``` ## Sorted Sets ```bash # Leaderboard ZADD leaderboard 100 "player1" ZADD leaderboard 200 "player2" ZADD leaderboard 150 "player3" # Get rank (0 = highest) ZRANK leaderboard player2 ZREVRANK leaderboard player1 # Range ZRANGE leaderboard 0 10 WITHSCORES ZREVRANGE leaderboard 0 9 WITHSCORES ``` ## Pub/Sub ```bash # Subscribe SUBSCRIBE chat:room:1 # Publish PUBLISH chat:room:1 "Hello everyone" ``` ## Streams ```bash # Add to stream XADD mystream * field1 value1 field2 value2 # Read XRANGE mystream - + COUNT 10 XREAD COUNT 10 STREAMS mystream 0 # Consumer groups XGROUP CREATE mystream group1 0 XREADGROUP GROUP group1 consumer1 STREAMS mystream > ``` ## Python ```python import redis r = redis.Redis(host='localhost', port=6379, db=0) # String r.set('key', 'value', ex=3600) r.get('key') # Hash r.hset('user:1', mapping={'name': 'John', 'email': 'john@example.com'}) r.hgetall('user:1') # List r.lpush('queue', 'task') r.rpop('queue') # Sorted set r.zadd('leaderboard', {'player1': 100, 'player2': 200}) r.zrevrange('leaderboard', 0, 9, withscores=True) # Pub/Sub p = r.pubsub() p.subscribe('chat') for message in p.listen(): print(message) ``` ## Rate Limiter ```python def is_rate_limited(key, limit, window): now = time.time() window_start = now - window pipe = r.pipeline() pipe.zremrangebyscore(key, 0, window_start) pipe.zadd(key, {str(now): now}) pipe.zcard(key) pipe.expire(key, window) results = pipe.execute() count = results[2] return count > limit ```
View on GitHub