Valkey vs Redis – Explicación simple y practica
Source: Dev.to

🔑 ¿Qué es Valkey?
Valkey es un fork open‑source de Redis, creado en 2024, totalmente compatible y respaldado por la Linux Foundation. Surge como respuesta al cambio de licencia de Redis (≥ 7.4), que dejó de ser open source bajo los estándares de la OSI.
👉 Objetivo de Valkey
- Mantener un Redis 100 % open source
- Compatibilidad total con Redis (comandos, protocolo, clientes)
- Gobernanza comunitaria y neutral
- Sin vendor lock‑in
En la práctica: Valkey es Redis, pero con licencia abierta y desarrollo comunitario.
🧠 ¿Para qué sirve Valkey?
Exactamente los mismos casos de uso que Redis:
- Cache in‑memory
- Session store
- Pub/Sub
- Rate limiting
- Distributed locks
- Streams
- Leaderboards
- Replication
- Persistence (RDB / AOF)
- Redis Cluster
⚖️ Valkey vs Redis (comparación rápida)
| Característica | Valkey | Redis (≥ 7.4) |
|---|---|---|
| Licencia | ✅ Open Source (BSD/Apache‑style) | ❌ RSAL / SSPL |
| Gobernanza | Linux Foundation | Redis Inc |
| Compatibilidad | 100 % Redis | Nativa |
| Uso comercial | ✅ Libre | ⚠️ Restricciones |
| Vendor lock‑in | ❌ Bajo | ⚠️ Mayor |
| Cloud friendly | ✅ Sí | ⚠️ Limitado |
| Soporte K8s | ✅ Excelente | ✅ |
🧾 La licencia: el punto clave
Redis hoy
- Licencia RSAL / SSPL
- No considerada open source por la OSI
- Restricciones para SaaS y cloud providers
Valkey
- Open source real
- Uso comercial sin restricciones
- Ideal para empresas, educación y gobiernos
Por eso AWS, Google, Oracle y otros proveedores apoyan Valkey.
🧪 Demo 1 – Valkey local con Docker
docker run -d --name valkey -p 6379:6379 valkey/valkey:latest

Prueba rápida
redis-cli ping
# PONG
redis-cli set demo "hola valkey"
redis-cli get demo
# "hola valkey"

🧪 Demo 2 – Pub/Sub
Terminal A
redis-cli subscribe events

Terminal B
redis-cli publish events "mensaje desde valkey"

Resultado en Terminal A

☸️ Demo 3 – Valkey en Kubernetes
Crear el archivo valkey.yaml:
apiVersion: v1
kind: Namespace
metadata:
name: demo
---
apiVersion: v1
kind: Service
metadata:
name: valkey
namespace: demo
labels:
app: valkey
spec:
# Headless Service required by StatefulSet
clusterIP: None
selector:
app: valkey
ports:
- name: redis
port: 6379
targetPort: 6379
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: valkey
namespace: demo
spec:
serviceName: valkey
replicas: 1
selector:
matchLabels:
app: valkey
template:
metadata:
labels:
app: valkey
spec:
containers:
- name: valkey
image: valkey/valkey:latest
ports:
- name: redis
containerPort: 6379
volumeMounts:
- name: data
mountPath: /data
readinessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 5
volumes:
- name: data
emptyDir: {}
Aplica el manifiesto:
kubectl apply -f valkey.yaml
Fin del documento.
periodSeconds: 5
livenessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 15
periodSeconds: 10
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Desplegar
kubectl apply -f valkey.yaml
Acceso desde un pod
kubectl run -it --rm vcli -n demo --image=redis:7 -- bash
Ejecuta el ping para validar la conexión:
redis-cli -h valkey.demo.svc.cluster.local ping
PONG
Código fuente: k8s-valkey-demo
🔄 ¿Tengo que cambiar código si vengo de Redis?
No.
- Mismos comandos
- Mismo protocolo RESP
- Mismos clientes (
redis-cli,node-redis,ioredis, etc.)
Solo cambia la imagen:
image: valkey/valkey
🚀 Conclusión
Si estás construyendo:
- Kubernetes
- SaaS
- Plataformas cloud
- Proyectos open source
Valkey es la opción recomendada hoy.
