Redis es un almacén de estructuras de datos en memoria, de código abierto, que se utiliza como base de datos, caché y agente de mensajes. Es conocido por su rapidez y flexibilidad, permitiendo almacenar pares clave-valor, listas, conjuntos, conjuntos ordenados con consultas de rango, bitmaps, hyperloglogs, y geoespaciales, entre otros tipos de datos. Redis soporta transacciones y proporciona alta disponibilidad a través de Redis Sentinel y particionamiento automático con Redis Cluster.
Características principales de Redis
1. Rendimiento excepcional
- Redis almacena la mayor parte de sus datos en la memoria, en lugar de discos, lo que proporciona tiempos de respuesta extremadamente rápidos, típicamente sub-milisegundos, lo que permite millones de solicitudes por segundo para aplicaciones en tiempo real.
2. Estructuras de datos ricas
- Soporta diversas estructuras de datos como strings, hashes, listas, sets, sorted sets con consultas de rango, bitmaps, hyperloglogs y índices geoespaciales.
3. Persistencia
- Ofrece opciones configurables de persistencia, permitiendo que los datos almacenados en memoria sean escritos en disco a intervalos específicos o antes de los comandos de modificación para garantizar que no se pierdan en caso de un fallo.
4. Replicación
- Utiliza la replicación maestro-esclavo para proporcionar redundancia de datos y escalabilidad de lectura. Los datos pueden replicarse en múltiples nodos esclavos para garantizar la disponibilidad y la distribución de la carga de lectura.
5. Soporte para transacciones
- Soporta transacciones que permiten la ejecución de un grupo de comandos de manera atómica. Redis también ofrece características como
WATCH, MULTI, y EXEC para manejar transacciones complejas.
6. Alta disponibilidad y clustering
- Redis Sentinel proporciona alta disponibilidad mediante la detección de fallos de componentes, notificación automática y conmutación por error (failover) automática.
- Redis Cluster permite la distribución automática de datos entre varios nodos y ofrece tolerancia a fallos, manteniendo el sistema operativo incluso cuando algunos nodos fallan o pierden la conexión.
7. Seguridad
- Soporta cifrado de red, autenticación y la capacidad de configurar Redis para que se ejecute en un entorno aislado.
8. Pub/Sub
- Implementa un sistema de publicación/suscripción que permite a los clientes suscribirse a canales y recibir actualizaciones en tiempo real sobre los mensajes publicados en esos canales.
Uso de Redis en AWS