¿Qué puede proporcionar Redis?
Redis es una base de datos en memoria que soporta múltiples estructuras de datos. Sus principales capacidades son:
1. Cache
- ¿Qué hace?
- Almacena datos en memoria para un acceso ultrarrápido, lo que reduce la carga de la base de datos principal.
- Ejemplo de uso:
- Cachear consultas frecuentes de base de datos.
- Cachear resultados de APIs externas.
- Ventajas:
- Mejora el rendimiento.
- Reduce costos y tiempos de respuesta.
2. Colas de Mensajes
- ¿Qué hace?
- Actúa como un sistema de mensajería para gestionar tareas asincrónicas y distribuirlas entre servicios o procesos.
- Ejemplo de uso:
- Procesar facturas subidas por los usuarios con Tesseract.
- Notificaciones en segundo plano.
- Redis proporciona:
- Redis Lists: Para crear colas FIFO.
- Redis Streams: Para procesamiento de mensajes más avanzado.
3. Gestión de Sesiones y Tokens
- ¿Qué hace?
- Almacena tokens de autenticación, sesiones de usuarios y otros datos temporales.
- Ejemplo de uso:
- Almacenar JWTs con tiempos de expiración.
- Guardar datos de sesiones de usuarios autenticados.
- Ventajas:
- Puedes establecer un TTL (Time-To-Live) para datos sensibles.
- Escala bien con altas concurrencias.
4. Rate Limiting (Control de Límite de Peticiones)
- ¿Qué hace?
- Restringe el número de solicitudes que un usuario o IP puede hacer en un período de tiempo.
- Ejemplo de uso:
- Limitar la cantidad de comparaciones de facturas que un cliente puede hacer por minuto.
- Redis proporciona:
- Estructuras como
INCR
y EXPIRE
para implementar reglas de límite.
5. Pub/Sub (Publicación y Suscripción)
- ¿Qué hace?
- Permite comunicación en tiempo real entre servicios.