Skip to main content

redis

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

Quellinformationen

Repository
ffsshhttiikk/opencode-agents-skills
Letzte Quellaktivität
28. Februar 2026 um 22:54
Erkannte Sprache von SKILL.md
Englisch
Sterne
3
Forks
2

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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 ```
Auf GitHub ansehen