Redis, Valkey y DragonflyDB: Guía moderna de bases de datos en memoria
Las bases de datos en memoria se han vuelto un bloque fundamental en arquitecturas modernas: sirven como caché, cola de mensajes ligera, almacén de sesiones, soporte para series temporales e incluso como motor para búsqueda vectorial.
El cambio de licencia de Redis en 2024 abrió la puerta a dos alternativas muy fuertes: Valkey y DragonflyDB, que mantienen compatibilidad con el protocolo de Redis, pero con enfoques distintos sobre rendimiento, licenciamiento y uso de hardware.
En esta nota veremos sus diferencias clave y cómo aprovecharlas en proyectos con Spring Boot sin cambiar tu forma de programar.
Redis: estándar de la industria
Redis ha sido durante más de una década el estándar de facto en bases de datos en memoria. Se usa en todo tipo de proyectos: desde pequeños side projects hasta plataformas de alto tráfico.
Aunque su núcleo de procesamiento sigue siendo monohilo (single‑threaded) para garantizar operaciones atómicas simples, las versiones recientes incorporan hilos auxiliares para operaciones de E/S y tareas de background.
- Estado actual: Redis 8.0 integra de forma nativa lo que antes era "Redis Stack":
- JSON
- series temporales
- búsqueda vectorial (Vector Sets)
- Licenciamiento: actualmente utiliza un modelo de triple licencia RSALv2, SSPLv1 o AGPLv3. Esto significa que ya no es software de código abierto aprobado por la OSI, y hay que revisar cuidadosamente su uso en productos comerciales o servicios administrados.
Redis sigue siendo una excelente opción cuando necesitas:
- un ecosistema maduro, con clientes en casi cualquier lenguaje;
- soporte empresarial oficial;
- y una combinación de módulos avanzados (IA, búsqueda, JSON, etc.).
Valkey: sucesor comunitario y 100% abierto
Valkey nace como un fork de la última versión de Redis con licencia BSD (7.2.4). Está impulsado por la comunidad y respaldado por la Linux Foundation, con el apoyo de empresas como AWS y Google.
Su objetivo es claro: ofrecer un Redis completamente abierto, manteniendo compatibilidad de comandos y protocolo, pero con mejoras internas.
- Código abierto real: se mantiene bajo una licencia tipo BSD, alineada con la definición de open source de la OSI.
- Innovación clave en memoria: rediseñó su tabla hash interna para ser más amigable con la caché de CPU, reduciendo el uso de memoria en alrededor de 20 bytes por par clave‑valor.
- Valkey 9.0: introduce Migración Atómica de Slots, permitiendo reequilibrar datos en clúster hasta 9 veces más rápido, sin errores visibles para el cliente.
Valkey es especialmente atractivo cuando:
- vienes de Redis y quieres mantener compatibilidad casi total;
- necesitas seguir en un ecosistema 100% open source;
- y buscas optimizar costos en la nube a través de menores consumos de memoria.
DragonflyDB: pensado para la era de la nube
DragonflyDB no es un fork de Redis; es un motor nuevo, diseñado desde cero para exprimir el hardware moderno con múltiples núcleos.
- Arquitectura: usa un diseño "shared‑nothing", donde cada hilo gestiona su propio shard de datos. Esto reduce los cuellos de botella y permite escalar verticalmente de forma agresiva en una sola máquina.
- Eficiencia de memoria: su estructura "Dashtable" puede ahorrar entre 30% y 60% de memoria respecto a Redis tradicional, dependiendo del patrón de claves.
- Rendimiento: en muchos escenarios reporta ser hasta 25x más rápido que un despliegue clásico de Redis, especialmente en cargas intensivas de lectura y escritura.
- Licencia: utiliza una licencia BSL (Business Source License); es gratuita en muchos escenarios, pero no es OSI y tiene restricciones para servicios competidores.
DragonflyDB brilla cuando:
- manejas terabytes de datos en memoria;
- necesitas millones de operaciones por segundo en un solo nodo;
- buscas reducir el número de instancias necesarias para soportar tu carga.
Comparación práctica
| Característica | Redis 8.0 | Valkey 9.0 | DragonflyDB |
|---|---|---|---|
| Ecosistema | El más maduro, gran cantidad de clientes y herramientas. | En rápido crecimiento, muy compatible con el ecosistema Redis. | Más joven, con foco fuerte en alto rendimiento. |
| Licencia | RSALv2, SSPLv1 o AGPLv3 (no OSI). | BSD, open source real. | BSL, gratuita con restricciones. |
| Threading | Núcleo monohilo + E/S multihilo. | Monohilo con E/S asíncrona mejorada. | Multihilo real con diseño shared‑nothing. |
| Uso típico | Aplicaciones críticas con soporte empresarial y módulos avanzados. | Migraciones desde Redis buscando seguir en open source y reducir costos. | Cargas masivas (TB de datos, millones de ops/s) en un solo nodo. |
| Memoria | Eficiente, pero limitada por diseño original. | Ahorro de ~20 bytes por clave‑valor. | Ahorro del 30–60% frente a Redis en muchos casos. |
Integración con Spring Boot
La gran ventaja es que los tres motores hablan el mismo protocolo que Redis, así que desde Spring Boot la integración es prácticamente idéntica.
En tu pom.xml basta con la dependencia estándar:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>Y en application.properties (o application.yml) solo apuntas al host adecuado:
# Funciona igual para Redis, Valkey y DragonflyDB
spring.data.redis.host=localhost
spring.data.redis.port=6379Un servicio de caché sencillo se ve exactamente igual para los tres motores:
@Service
public class CacheService {
@Autowired
private StringRedisTemplate redisTemplate;
public void guardarDato(String llave, String valor) {
// Operación atómica en Redis, Valkey y DragonflyDB
redisTemplate.opsForValue().set(llave, valor);
}
}Mientras tu cliente use el protocolo de Redis, cambiar de Redis a Valkey o DragonflyDB suele ser cuestión de apuntar a otra URL y ajustar parámetros de despliegue (memoria, CPU, persistencia, etc.).
¿Cuál deberías elegir?
Una forma práctica de decidir es pensar en estos ejes:
- Licenciamiento y política de la empresa:
- Si tu organización exige open source aprobado por OSI, Valkey suele ser la opción preferida.
- Si ya tienes acuerdos comerciales o soporte con Redis, puede seguir siendo la opción más cómoda.
- Si buscas el máximo rendimiento y aceptas una licencia tipo BSL, DragonflyDB es muy atractivo.
- Patrón de carga:
- Para cargas moderadas y ecosistema estable, Redis sigue siendo suficiente.
- Para entornos donde el costo por GB en memoria es crítico, Valkey y DragonflyDB pueden reducir factura.
- Para cargas extremas en un solo nodo, DragonflyDB suele ser el candidato principal.
- Estrategia de nube:
- Verifica qué servicios administrados ofrece tu cloud provider para cada motor.
- Evalúa el costo total: instancias, soporte, almacenamiento y tráfico de red.
Una metáfora para entenderlos
Imagina que estas bases de datos son restaurantes:
- Redis es un restaurante de lujo con más de 15 años de prestigio; tiene el menú más completo y todo el mundo lo conoce, pero a veces hay fila porque un solo chef principal (el hilo de ejecución) debe coordinar los platos clave.
- Valkey es una cooperativa creada por los chefs originales; usan recetas muy similares, han reorganizado la cocina para que sea más eficiente y prometen que la entrada seguirá siendo gratuita y abierta.
- DragonflyDB es una cocina industrial de última generación; tiene múltiples estaciones independientes funcionando en paralelo, preparada para alimentar a toda una ciudad desde un solo edificio sin despeinarse.
Si piensas tus necesidades en términos de presupuesto, volumen de comensales (carga) y tipo de servicio (soporte, open source, rendimiento extremo), elegir entre Redis, Valkey y DragonflyDB se vuelve mucho más sencillo.