Por qué el debate Redis/Valkey vuelve en 2026
En marzo de 2024, Redis Ltd. anunció que a partir de Redis 7.4 el código se publicaría bajo doble licencia RSALv2 y SSPLv1, dos licencias no aprobadas por la OSI. La reacción fue inmediata: la Linux Foundation lanzó Valkey con el apoyo de AWS, Google Cloud, Oracle, Ericsson y Snap. El fork partió de Redis 7.2.4 bajo licencia BSD. En mayo de 2025, Redis 8 añadió AGPLv3, licencia aprobada por la OSI, como opción junto a las otras dos — una señal positiva, pero AGPLv3 es un copyleft fuerte: quien modifica Redis y lo ofrece a usuarios a través de una red debe publicar el código fuente de esas modificaciones, lo que plantea dudas reales a los proveedores de hosting revendedor y a los editores de software comercial. Mientras tanto, Fedora sustituyó Redis por Valkey desde Fedora 41, y Debian 13 y Ubuntu 24.04 ofrecen un paquete valkey-server en sus repositorios oficiales.
Redis vs Valkey: diferencias clave en 2026
Desplace la tabla
| Criterio | Redis 8 (AGPLv3, RSALv2 o SSPLv1) | Valkey 9.1 (BSD) |
|---|---|---|
| Licencia | AGPLv3 como opción — copyleft fuerte; RSALv2 y SSPLv1 restringen la oferta como servicio gestionado | BSD de 3 cláusulas — permisiva, uso comercial libre |
| Rendimiento | Referencia histórica | Comparable — mídelo en tu carga con `valkey-benchmark` |
| Compatibilidad protocolo | 100% protocolo Redis | 100% protocolo Redis — sustitución transparente |
| Soporte distros | Paquete `redis-server` en Debian y Ubuntu | Sustituye a Redis en Fedora 41+; paquete `valkey-server` en Debian 13 y Ubuntu 24.04 |
| Módulos | JSON, búsqueda, series temporales y tipos probabilísticos integrados en Redis 8 | API de módulos compatible; módulos oficiales valkey-json, valkey-bloom, valkey-search |
| Adopción cloud | Redis Cloud, la oferta gestionada del editor | Ofrecido por AWS ElastiCache y Google Cloud Memorystore |
| Ideal para | Proyectos existentes que dependen de módulos Redis Stack | Nuevos proyectos, proveedores de hosting, stacks soberanos, distros modernas |
Compatibilidad de protocolo: RESP2 y RESP3
La pregunta más frecuente antes de una migración es la del protocolo. Valkey implementa al 100% el Redis Serialization Protocol en sus dos versiones.
RESP2 (el protocolo histórico) está completamente soportado. Todas tus bibliotecas clientes existentes — ioredis, Predis, redis-py, Jedis, StackExchange.Redis — se comunican con Valkey sin ninguna modificación de código o configuración.
RESP3 (introducido con Redis 6.0) también está soportado por Valkey 9.1. Este protocolo aporta tipos de respuesta enriquecidos — maps, sets, doubles, booleanos, atributos — que permiten a los clientes modernos reducir las idas y venidas de análisis. Las bibliotecas que activan RESP3 por defecto (ioredis 6, redis-py 8) funcionan sin modificación con Valkey.
Formatos de datos: RDB y AOF compatibles hasta Redis 7.2
El formato de los archivos de persistencia es el otro punto crítico de una migración, y aquí cuenta tu versión de partida. Valkey es compatible con Redis OSS 7.2 y todas las versiones open source anteriores; a partir de Redis 7.4, los archivos de datos ya no lo son.
RDB: Valkey lee los archivos RDB hasta la versión 11, la de Redis 7.2. Un archivo dump.rdb producido por Redis 7.2 o anterior se importa directamente en Valkey 9.1 colocándolo en el directorio dir de Valkey antes del arranque. Redis 7.4 y Redis 8 escriben RDB de versión 12 o superior, que Valkey rechaza por defecto; la opción rdb-version-check relaxed intenta una carga a medias, interrumpida en cuanto aparece un dato desconocido. Desde esas versiones, usa una migración clave por clave (MIGRATE o una herramienta dedicada) o deja que la caché se reconstruya.
AOF: hasta Redis 7.2, el formato de diario AOF es el mismo que el de Valkey. Si usas persistencia AOF o modo mixto (aof-use-rdb-preamble yes) en esas versiones, tus archivos existentes son leídos por Valkey sin modificación.
Formato de datos en memoria: las estructuras de datos de Valkey — strings, hashes, lists, sets, sorted sets, streams, HyperLogLog, bitmaps, geospatial — son las mismas que las de Redis; sus codificaciones internas pueden evolucionar de una versión a otra sin efecto para el cliente.
API de comandos: qué es idéntico, qué difiere
El conjunto completo de comandos de Redis 7.2 está soportado por Valkey. Las categorías principales — strings, hashes, lists, sets, sorted sets, streams, pub/sub, transacciones, scripting Lua, notificaciones de keyspace, cluster — funcionan de forma idéntica.
Scripting Lua: Valkey soporta EVAL, EVALSHA y SCRIPT LOAD. Los scripts Lua escritos para Redis se ejecutan sin modificación en Valkey. La función redis.call() está disponible, con un matiz: Valkey ha añadido el espacio de nombres server (server.call()) para nuevos scripts, pero redis.call() sigue funcionando.
Cluster: el protocolo Gossip y los comandos de gestión de cluster (CLUSTER INFO, CLUSTER NODES…) son idénticos.
ACL: el formato de reglas ACL es idéntico. Un aclfile exportado desde Redis puede recargarse en Valkey.
Notificaciones de keyspace: la configuración notify-keyspace-events y los patrones de suscripción son idénticos.
Qué difiere: los módulos Redis Stack — RedisJSON, RediSearch, RedisTimeSeries, RedisBloom —, integrados en Redis 8, no vienen con Valkey. Valkey publica sus propios módulos oficiales: valkey-json (JSON.*), valkey-bloom (BF.*) y valkey-search (FT.*, búsqueda vectorial), pero la API no está garantizada idéntica y ningún módulo oficial sustituye a RedisTimeSeries. Si tu código llama a comandos como JSON.SET, FT.SEARCH o TS.ADD, prueba cada uno antes de migrar.
Configuración: parámetros a verificar al cambiar
La sintaxis de valkey.conf es idéntica a la de redis.conf. Puedes copiar tu archivo de configuración existente sin reescritura. Algunos puntos requieren verificación específica.
Rutas predeterminadas: Valkey usa /etc/valkey/valkey.conf y /var/lib/valkey/ en lugar de /etc/redis/. Si copias tu configuración, actualiza las directivas dir, logfile, pidfile y aclfile.
Nombre del servicio systemd: el servicio se llama valkey-server en Debian y Ubuntu (con el alias valkey) y valkey en Fedora. Los comandos son systemctl start valkey-server o systemctl enable valkey.
TLS: Valkey soporta TLS en conexiones de cliente de forma idéntica a Redis 6+.
maxmemory y políticas de expulsión: las políticas de expulsión (allkeys-lru, volatile-lru…) son idénticas.
Bibliotecas cliente: lo que no cambias
Esta es una de las fortalezas de Valkey: ninguna biblioteca cliente requiere modificación para conectarse a Valkey. Al ser el protocolo idéntico, el cliente no sabe si está hablando con Redis o con Valkey.
JavaScript / Node.js: ioredis, node-redis, redis — todas funcionan. Cambia solo el host y el puerto.
Python: redis-py y su cliente asíncrono redis.asyncio, que sustituye a aioredis — compatibles. La conexión Redis(host='valkey-host', port=6379) funciona sin más cambios.
PHP: phpredis, Predis — compatibles. Sin cambios de código.
Java: Jedis, Lettuce, Redisson — compatibles.
.NET: StackExchange.Redis — compatible.
Go: go-redis, rueidis — compatibles.
Si usas Laravel Cache, Django django-redis, Spring Data Redis o Symfony Cache, estas capas de abstracción se reconectan a Valkey sin cambios de código — solo cambia el DSN de conexión.
Cuándo elegir Valkey en lugar de Redis
Valkey se impone naturalmente en varios contextos. Los proveedores de hosting y revendedores son los más afectados: la AGPLv3 de Redis obliga a publicar las modificaciones hechas a Redis en cuanto se ofrece a través de una red, y sus otras dos licencias (RSALv2, SSPLv1) restringen ofrecer Redis como servicio gestionado — restricciones difíciles de conciliar con la mayoría de las ofertas comerciales. Los nuevos proyectos que no necesitan los módulos de Redis 8 tienen pocas razones para empezar con Redis: Valkey está disponible en los repositorios de las distribuciones recientes y su licencia BSD no tiene restricciones. Los stacks de RGPD y soberanía también se benefician de la gobernanza de la Linux Foundation. Finalmente, si partes de Redis 7.2 o anterior y no usas los módulos Redis Stack, la migración es transparente.
Migrar de Redis a Valkey en 4 pasos
Verificar la compatibilidad
Ejecuta
redis-cli INFO server | grep redis_versionpara identificar tu versión actual. Lista tus dependencias y confirma que ninguna usa módulos Redis Stack (RedisJSON, RediSearch, RedisTimeSeries). Si es así, la migración directa aún no está recomendada. Más allá de Redis 7.2 (7.4, 8.x), Valkey no puede leer tus archivos RDB y AOF: prevé una migración clave por clave. Verifica también tus scripts Lua:redis.call()sigue siendo compatible.Instalar Valkey
En Ubuntu 24.04+ y Debian 13, Valkey está disponible en los repositorios nativos:
apt install valkey-server(Ubuntu 24.04 ofrece la rama 7.2, Debian 13 la rama 8.1). En Fedora 41+,dnf install valkey. Para una versión más reciente, usa los binarios oficiales o la imagen Dockervalkey/valkeypublicados en valkey.io.Copiar configuración y datos
La sintaxis de configuración es idéntica. Copia tu archivo y actualiza las rutas:
cp /etc/redis/redis.conf /etc/valkey/valkey.conf, luego adaptadir,logfile,pidfilepara apuntar a/var/lib/valkey/. Exporta tus datos Redis mediante un snapshot RDB (redis-cli --rdb /tmp/dump.rdb) y coloca el archivo en el directoriodirde Valkey. Si el AOF está activado en la configuración de Valkey, desactívalo (appendonly no) en el primer arranque; si no, el RDB no se importa. Para evitar el corte, haz de Valkey una réplica de Redis (REPLICAOF <ip-redis> 6379, conmasterauthsi Redis exige contraseña) y luegoREPLICAOF NO ONE.Arrancar Valkey y validar
Arranca el servicio (
systemctl start valkey-server, ovalkeyen Fedora), luego valida convalkey-cli ping— debes obtenerPONG. Verifica que tus datos están presentes convalkey-cli DBSIZEy compara con el número de claves de tu antigua instancia Redis. Todas tus bibliotecas cliente (ioredis, Predis, redis-py) son compatibles sin modificación — cambia solo el host de conexión.
Valkey incluye valkey-benchmark, funcionalmente idéntico a redis-benchmark. Antes de cualquier migración en producción, valida el rendimiento en tu hardware con valkey-benchmark -n 100000 -q. Este comando envía 100.000 solicitudes y muestra el resumen de ops/seg para cada tipo de comando. Compara las cifras con las de tu antigua instancia Redis en el mismo servidor. Para probar el pipelining o RESP3, añade la opción -P 16 o -3.
Lo que no cambia en una migración Redis → Valkey
- Todas tus bibliotecas cliente (ioredis, redis-py, Predis, Jedis, StackExchange.Redis, go-redis) — sin cambios de código
- El protocolo de comunicación: RESP2 y RESP3 están completamente soportados
- Tus archivos de persistencia RDB y AOF, si vienen de Redis 7.2 o anterior — legibles por Valkey sin conversión
- La sintaxis de
redis.conf— copia el archivo y actualiza las rutas - Tus scripts Lua —
redis.call()funciona,server.call()está disponible adicionalmente - Tus reglas ACL exportadas desde Redis — recargadas directamente en Valkey
- La configuración TLS, las políticas de expulsión de memoria y las notificaciones de keyspace
- Los comandos habituales de
redis-cli—valkey-clilos acepta todos
¿Y tus otras bases de datos en VPS?
Valkey es solo una pieza de tu stack de datos. Si también alojas una base de datos relacional, consulta nuestra guía sobre MariaDB en VPS: configuración, rendimiento y replicación. Para el motor de búsqueda full-text, nuestra guía de Elasticsearch en VPS cubre la instalación, el ajuste de memoria y los índices en producción. Cada componente merece una configuración adaptada a tu carga — nuestros VPS Cloud te dan el control completo de tu entorno.