Introducción
Redis es un almacén de datos en memoria de alto rendimiento, utilizado como caché, bróker de mensajes, base de datos o cola. Soporta diversas estructuras de datos: strings, listas, conjuntos, hashes y más. Para Python, existe el cliente oficial redis-py, que proporciona una interfaz cómoda para acceder a toda la funcionalidad de Redis.
Redis-py es el cliente más popular y fiable para trabajar con Redis en aplicaciones Python. La biblioteca se desarrolla activamente y cuenta con el respaldo de la comunidad, ofreciendo una API simple e intuitiva para interactuar con el servidor Redis.
¿Qué es la biblioteca redis-py?
Redis-py es la biblioteca oficial de Python para trabajar con Redis, que ofrece soporte completo para todas las funcionalidades de Redis. Está escrita en Python puro y proporciona tanto una interfaz síncrona como asíncrona para trabajar con Redis.
Principales funcionalidades de redis-py
La biblioteca ofrece un conjunto completo de funciones para trabajar con Redis:
- Soporte para todos los tipos de datos de Redis
- Trabajo con transacciones y pipelines
- Funcionalidad Pub/Sub
- Soporte para Redis Sentinel y clústeres
- Operaciones asíncronas mediante redis.asyncio
- Pool de conexiones para optimizar el rendimiento
- Reconexión automática ante cortes de conexión
Instalación y conexión
Instalación de la biblioteca
pip install redis
Para instalar con dependencias adicionales:
pip install redis[hiredis] # Para mejor rendimiento
Conexión a Redis
Conexión básica a Redis (por defecto en el puerto 6379):
import redis
# Conexión a Redis local
cliente = redis.Redis(host='localhost', port=6379, db=0)
# Conexión con contraseña
cliente = redis.Redis(host='localhost', port=6379, password='tucontraseña', db=0)
# Conexión mediante URL
cliente = redis.from_url('redis://localhost:6379/0')
Verificación de la conexión
try:
respuesta = cliente.ping()
print(f"Conexión establecida: {respuesta}") # True
except redis.ConnectionError:
print("Error de conexión a Redis")
Fundamentos de Redis y tipos de datos clave
Redis soporta cinco tipos de datos principales, cada uno con sus propias características y métodos:
Strings (Cadenas)
El tipo de datos más básico en Redis. Puede almacenar texto, números y datos binarios.
Lists (Listas)
Colecciones ordenadas de strings. Permiten agregar elementos al inicio y al final.
Sets (Conjuntos)
Colecciones no ordenadas de strings únicos. Soportan operaciones de intersección y unión.
Hashes (Hash)
Mapas entre campos y valores de tipo string. Ideales para representar objetos.
Sorted Sets (Conjuntos Ordenados)
Conjuntos con una puntuación para cada elemento. Los elementos se ordenan por su puntuación.
Comandos básicos de Redis con redis-py
Trabajo con strings
# Establecer y obtener un valor
cliente.set("usuario:nombre", "Carlos")
nombre = cliente.get("usuario:nombre").decode('utf-8')
# Establecer con TTL
cliente.setex("sesion:123", 3600, "activo") # 1 hora
# Trabajar con números
cliente.set("contador", 0)
cliente.incr("contador") # Incrementar en 1
cliente.incrby("contador", 5) # Incrementar en 5
cliente.decr("contador") # Decrementar en 1
Trabajo con listas
# Agregar elementos
cliente.lpush("tareas", "tarea1", "tarea2") # Al inicio
cliente.rpush("tareas", "tarea3", "tarea4") # Al final
# Obtener elementos
tareas = cliente.lrange("tareas", 0, -1) # Todos los elementos
primera_tarea = cliente.lpop("tareas") # Eliminar y devolver el primero
ultima_tarea = cliente. También en la biblioteca
Contenedor de Dependency Injection para C# (.NET) — guía completa
Análisis de HTML en C++: Reseña de las bibliotecas Gumbo, MyHTML y htmlcxx