Las claves en 30 segundos
- Desde Redis 7.2 o anterior, cambiar a Valkey es casi una actualización: en nuestra prueba, Valkey 9.1.3 cargó el archivo y replicó sin problemas.
- Desde Redis 8 no lo es: el archivo RDB tiene un formato que Valkey no reconoce y el servicio no arranca. La réplica tampoco funciona y
RESTORE rechaza los datos. La documentación de Valkey marca el corte en Redis 7.4.
- El camino de vuelta también está cortado: un RDB de Valkey 9 impide arrancar a Redis 8. La decisión no es tan reversible como parece.
- La licencia ya no es la de 2024: Redis 8 añadió AGPLv3, una licencia de código abierto aprobada por la OSI. Valkey sigue con BSD-3-Clause.
- El mismo «Redis» no trae lo mismo: la imagen Docker de Redis 8 incluye JSON y búsqueda; el paquete de Debian 13, no. En Valkey hay que usar
valkey-bundle.
En marzo de 2024, Redis dejó la licencia BSD y pasó a RSALv2 y SSPLv1. Pocos días después, la Linux Foundation anunció Valkey, una bifurcación de Redis 7.2.4, y durante un tiempo la decisión fue fácil: mismo protocolo, mismos archivos, misma configuración. Bastaba con cambiar el binario.
Dos años y medio después, eso sigue circulando como consejo y ya no siempre es cierto. Redis va por la 8.10.3 y Valkey por la 9.1.3, ambas publicadas el 26 de octubre de 2026, y los dos proyectos se han separado. Como nadie nos iba a contar dónde se rompe, lo hemos probado.
Qué cambió en la licencia
| Versión | Licencia | Qué supone |
|---|
| Redis hasta 7.2 | BSD-3-Clause | Permisiva, sin condiciones de uso |
| Redis 7.4 | RSALv2 o SSPLv1 | Ninguna es de código abierto según la OSI |
| Redis 8 en adelante | RSALv2, SSPLv1 o AGPLv3, a elegir | Vuelve a tener opción de código abierto |
| Valkey | BSD-3-Clause | Permisiva, bajo la Linux Foundation |
La vuelta de Redis al código abierto en mayo de 2025 cambió bastante la conversación. AGPLv3 no molesta a casi nadie que use Redis sin modificarlo dentro de su empresa. Su condición fuerte se activa si modificas el software y lo ofreces a usuarios por red, que es sobre todo el caso de quien construye un servicio con él. Aun así, hay departamentos jurídicos con una política simple de «nada de AGPL», y ahí no hay mucho que discutir. Si tienes dudas sobre tu caso, pásalo por tu asesoría legal.
Lo que no cambia es quién decide. Redis es de una empresa, que ya cambió la licencia una vez. Valkey está en una fundación con varios fabricantes detrás. Para una pieza que vas a tener diez años en producción, eso pesa tanto como el texto legal de hoy, y es el mismo razonamiento que explicamos con MinIO.
La prueba: dónde se rompe
Hemos levantado Redis 7.2.17, Redis 8.10.3 y Valkey 9.1.3 en contenedores, con datos de cada tipo, y probado cada camino:
| Prueba | Resultado |
|---|
| Valkey 9 carga un RDB de Redis 7.2 | Funciona |
| Valkey 9 como réplica de Redis 7.2 | Funciona |
| Valkey 9 carga un RDB de Redis 8 | No arranca: Can't handle RDB format version 15 |
| Valkey 9 como réplica de Redis 8 | No sincroniza: reintenta sin fin con Failed to load RDB |
RESTORE en Valkey de un DUMP de Redis 8 | Rechazado: DUMP payload version or checksum are wrong |
| Redis 8 carga un RDB de Valkey 9 | No arranca: Wrong signature trying to load DB from file |
| AOF en texto de Redis 8 reproducido en Valkey 9 | Funciona, con caducidades incluidas |
La cabecera del archivo lo explica: REDIS0011 en 7.2, REDIS0015 en 8.10 y VALKEY080 en Valkey 9. Son formatos que han seguido caminos distintos. Coincide con la guía oficial de migración de Valkey, que da por compatible hasta la 7.2 y avisa de que los archivos de Redis CE 7.4 y posteriores no lo son.
Ojo con el fallo del RDB, porque es de los malos: si el contenedor de Valkey encuentra en su volumen un dump.rdb de Redis 8, el proceso sale con error y el servicio no levanta. Es decir, un cambio de imagen en un docker-compose.yml que antes parecía inofensivo puede tirar la caché o, si la usas como almacén, dejarte sin servicio.
Lo que trae cada paquete
Aquí está la segunda sorpresa. Decir «tengo Redis 8» no aclara qué comandos tienes:
| Instalación | JSON.SET | BF.ADD | Búsqueda | Vectores |
|---|
Imagen Docker redis:8 | Sí | Sí | Sí | Sí (VADD) |
| Paquete de Debian 13 (Redis 8.0.2) | No | No probado | No probado | Módulo vectorset cargado |
Imagen valkey/valkey:9 | No | No | No | No |
Imagen valkey/valkey-bundle | Sí | Sí | Sí (FT.CREATE, con índice vectorial) | VADD no probado |
Y estas son las versiones que te llevas si instalas desde el repositorio de la distribución, comprobadas el 4 de noviembre de 2026:
| Distribución | redis-server | valkey-server |
|---|
| Debian 13 | 8.0.2 | 8.1.1 |
| Ubuntu 24.04 LTS | 7.0.15 | 7.2.13 |
| Ubuntu 26.04 LTS | 8.0.5 | 9.0.4 |
Un detalle para quien va a saltar de Ubuntu 24.04 a 26.04: redis-server pasa de 7.0 a 8.0 y, con él, cambian licencia y formato. Si piensas moverte a Valkey, hazlo antes de actualizar, porque desde 7.0 el camino es directo y desde 8.0 ya no.
Las funciones nuevas sí se han mantenido parecidas en lo básico. HEXPIRE, la caducidad por campo de un hash, funciona en ambos. Valkey sigue contestando redis_version:7.2.4 en INFO, además de su propio valkey_version:9.1.3, para que los clientes que miran la versión no se confundan. A cambio, una aplicación que decida funciones por ese número verá una versión más antigua de la real.
Cómo migrar según de dónde vengas
Desde Redis 7.2 o anterior. El método con menos parada es la réplica, que es el que describe la guía de Valkey:
# En el nuevo servidor Valkey
valkey-cli REPLICAOF redis-origen 6379
# Cuando el enlace esté arriba
valkey-cli INFO replication | grep master_link_status
# Para las escrituras en origen, promociona y cambia la aplicación
valkey-cli REPLICAOF NO ONE
En nuestra prueba, el enlace subió en unos segundos. Con pocos datos, parar, copiar el RDB y arrancar también vale.
Desde Redis 7.4 u 8. No hay atajo binario. Lo que nos ha funcionado es exportar a AOF sin el preámbulo RDB, que deja los datos como comandos, y reproducirlos:
# En Redis
redis-cli CONFIG SET aof-use-rdb-preamble no
redis-cli CONFIG SET appendonly yes
redis-cli BGREWRITEAOF
# Con la aplicación parada, en el destino
cat appendonlydir/appendonly.aof.*.base.aof | valkey-cli --pipe
Probado con cadenas, hashes, listas, conjuntos, conjuntos ordenados, streams y claves con caducidad: siete claves, cero errores y el TTL correcto. Esto tiene límites que conviene decir:
- Nuestra prueba es pequeña. Con muchos gigabytes hay que medir el tiempo y la memoria.
- Hemos usado solo el archivo base; si hay escrituras después, también está el incremental. Lo seguro es parar las escrituras antes de reescribir.
- Los tipos de módulos (JSON, vectores) no se han probado por esta vía, y
VADD no existe en la imagen base de Valkey.
- Hay herramientas de terceros de migración en línea. No las hemos probado.
Si solo es caché. La migración más barata es no migrar los datos: apagas, cambias y dejas que se rellene. Solo hay que calcular el golpe a la base de datos mientras tanto, y borrar el dump.rdb antiguo del volumen para evitar el arranque fallido.
Antes de tocar nada, en cualquiera de los casos:
redis-cli INFO server | grep redis_version
redis-cli MODULE LIST
redis-cli CONFIG GET save
redis-cli CONFIG GET appendonly
head -c 9 /var/lib/redis/dump.rdb; echo
Esas cinco líneas te dicen de qué versión vienes, qué módulos usas, si persistes y en qué formato.
Entonces, ¿cuál?
Quédate en Redis si usas sus funciones actuales (vectores nativos, módulos integrados), si AGPL no es problema o si tienes contrato con Redis. Con la opción AGPL, el motivo que llevó a mucha gente a irse ha perdido fuerza.
Elige Valkey para proyectos nuevos si quieres licencia BSD y gobierno de fundación, y si tu uso es el de siempre: caché, sesiones, colas. También si tu política interna veta AGPL, o si tu plataforma ya lo trae en la distribución.
Si estás en 7.2 o anterior, tienes una decisión con plazo. Es el momento más barato para cambiar, porque cuando subas a Redis 8 la puerta se cierra. Y esas versiones hay que moverlas igualmente: quedarse parado en una versión antigua para no decidir sale peor.
Si dependes de Redis para colas, comprueba el cliente de cada aplicación. Es el caso de n8n en modo cola y otras herramientas: el protocolo es compatible, pero el soporte oficial del fabricante puede nombrar solo a Redis.
Preguntas frecuentes
¿Valkey es un reemplazo directo de Redis?
Para Redis 7.2 y anteriores, sí en la práctica: mismo protocolo, y carga sus archivos. Para Redis 7.4 y 8, el protocolo sigue siendo compatible, pero los archivos de datos no.
¿Por qué Valkey no arranca con mi dump.rdb?
Porque viene de Redis 7.4 o posterior. Valkey sale con Can't handle RDB format version y el servicio no levanta. Hay que mover ese archivo y migrar los datos por otra vía, o rellenar la caché desde cero.
¿Redis vuelve a ser de código abierto?
Sí. Desde Redis 8 se puede elegir AGPLv3, aprobada por la OSI, junto a RSALv2 y SSPLv1. Las versiones 7.4 solo tienen las dos últimas, y hasta 7.2 era BSD.
¿Puedo volver de Valkey a Redis?
No copiando el archivo: Redis 8 rechaza un RDB de Valkey 9. Habría que hacer el mismo recorrido por comandos que en la migración inversa, así que conviene tratar el cambio como una decisión de verdad.
¿Valkey tiene JSON y búsqueda?
No en la imagen base. Sí en valkey/valkey-bundle, donde hemos comprobado los módulos json, bf, search y ldap.
¿Sirve el cliente de Redis para Valkey?
Sí. Valkey usa el protocolo RESP y, según su documentación, las bibliotecas de cliente de Redis conectan sin cambios de código. Valida igualmente las funciones concretas que uses.
Fuentes
¿Tienes Redis por debajo de varias aplicaciones y nadie sabe con qué versión ni qué persistencia? En Cloud Privado te ayudamos a inventariarlo, a planificar el cambio y a dejarlo con copias y gestión en una infraestructura pensada para ello.