← ClaudeAtlas

redis-patternslisted

Redis patterns for Python — caching, sessions, pub/sub, rate limiting, distributed locks, and integration with Django/FastAPI.
Izangi2714/claude-code-python-stack · ★ 0 · API & Backend · score 65
Install: claude install-skill Izangi2714/claude-code-python-stack
# Redis Patterns for Python Redis usage patterns for caching, sessions, queues, and distributed systems. ## When to Activate - Implementing caching layer - Setting up session storage - Building pub/sub messaging - Implementing rate limiting - Using distributed locks ## Connection Setup ### redis-py (Sync) ```python import redis pool = redis.ConnectionPool( host="localhost", port=6379, db=0, max_connections=20, decode_responses=True, ) r = redis.Redis(connection_pool=pool) ``` ### redis-py (Async) ```python import redis.asyncio as aioredis pool = aioredis.ConnectionPool.from_url( "redis://localhost:6379/0", max_connections=20, decode_responses=True, ) redis_client = aioredis.Redis(connection_pool=pool) # Usage async def get_cached(key: str) -> str | None: return await redis_client.get(key) ``` ## Caching Patterns ### Simple Cache ```python import json from datetime import timedelta async def get_user(user_id: int) -> dict: cache_key = f"user:{user_id}" # Try cache first cached = await redis_client.get(cache_key) if cached: return json.loads(cached) # Fetch from DB user = await db.get_user(user_id) if user: await redis_client.setex(cache_key, timedelta(minutes=15), json.dumps(user)) return user ``` ### Cache Invalidation ```python async def update_user(user_id: int, data: dict) -> dict: user = await db.update_user(user_id, data) # Invalidate cache await redis_client.dele