redis_py_async
redis-py con soporte async nativo permite operaciones Redis no bloqueantes desde FastAPI y otros frameworks asyncio. Reemplaza al deprecado aioredis que ahora está integrado en redis-py 4.2+.
When to use
Usar en todos los agentes Python que acceden a Redis a través del cache_agent. Nunca usar el cliente síncrono en handlers async de FastAPI.
Instructions
- Instalar:
pip install redis[hiredis](hiredis para parser C de alto rendimiento). - Crear pool de conexiones async:
import redis.asyncio as aioredis pool = aioredis.ConnectionPool.from_url('redis://localhost:6379', max_connections=20) client = aioredis.Redis(connection_pool=pool) - Usar en handlers:
value = await client.get('key'). - Usar pipeline para operaciones múltiples:
async with client.pipeline() as pipe: pipe.get('key1') pipe.get('key2') results = await pipe.execute() - Cerrar pool en shutdown:
await pool.disconnect(). - Configurar
socket_timeout=2ysocket_connect_timeout=1.
Notes
hiredises 10x más rápido que el parser Python puro; siempre instalarlo.- El pool de conexiones evita el overhead de conectar/desconectar en cada operación.
aioredisstandalone está deprecado; usarredis.asynciode redis-py >= 4.2.