Interactuar con Redis en Python suele implicar lidiar con comandos en texto crudo, retornos sin tipado estricto, riesgos de concurrencia multihilo y reinventar decoradores de caché o bloqueos distribuidos en cada servicio.
WRedis v1.0.0 LTS es una librería Python de grado empresarial probada en batalla, diseñada con soporte real para async/await, decoradores declarativos de caché, alta disponibilidad con Sentinel/Cluster y más del 95% de cobertura en tests.
Capacidades Arquitectónicas Principales
-
APIs Síncrona y Asíncrona Nativas: Ejecución real con
asynciosin hilos de fondo innecesarios. -
Decoradores Declarativos de Caché:
@cachey@async_cachecon telemetría de aciertos/fallos (hit/miss ratio) y políticas de TTL configurables. - Alta Disponibilidad de Fábrica: Soporte nativo y transparente para conmutación por error en Redis Sentinel y topologías Redis Cluster.
-
Seguridad de Tipos: Tipado 100% estricto compatible con las configuraciones más exigentes de
mypy. - 12 Estructuras de Datos Integradas: Bitmaps, Hashes, Sets, SortedSets, Streams, Queues, Pub/Sub, Geo, HyperLogLog, Pipelines y Transacciones Atómicas.
- Suite de Pruebas Rigurosa: Más de 800 pruebas unitarias, 38 pruebas de integración sobre clústeres Redis reales y 19 pruebas de estrés por concurrencia.
Implementación Práctica: Gestión Limpia de Hashes con Serialización JSON
from wredis.hash import RedisHashManager
# Conexión al servidor Redis
hash_mgr = RedisHashManager(host="localhost", port=6379, db=0)
# Escritura estructurada con serialización automática a JSON
hash_mgr.create_hash(
hash_name="user_session:1001",
key="profile",
value={"name": "Alice", "role": "admin", "active": True},
ttl=3600
)
# Lectura directa con deserialización transparente
profile = hash_mgr.read_hash("user_session:1001", "profile")
print(f"Usuario: {profile['name']} ({profile['role']})")
Implementación Práctica: Analítica en Tiempo Real con Bitmaps
from wredis.bitmap import RedisBitmapManager
bitmap = RedisBitmapManager(host="localhost")
# Marcar actividad de usuario (por ejemplo, el usuario con ID 42 inició sesión)
bitmap.set_bit(key="active_users:2026-09-19", offset=42, value=1, ttl=86400)
# Conteo ultra rápido O(1) en memoria
total_active = bitmap.count_bits("active_users:2026-09-19")
print(f"Total usuarios activos hoy: {total_active}")
Instalación y Código Fuente
pip install wredis
Autor: William Steve Rodríguez Villamizar (Wisrovi)
Top comments (0)