Valkey es el fork comunitario de Redis y funciona como un reemplazo directo, compartiendo protocolo, comandos y formato de datos en gran medida.
En Debian 13, Valkey ya está disponible en los repositorios principales, mientras que en Debian 12 suele requerir backports o métodos alternativos como Docker o compilación desde código fuente.
¿Qué es Valkey?
Valkey es un almacén de datos en memoria orientado a usos como caché, colas, limitación de tasa (rate limiting) y almacenamiento temporal de estructuras de datos de alto rendimiento.
Su soporte TLS es opcional y puede activarse durante la compilación, permitiendo implementar servicios seguros mediante certificados digitales.
Métodos de instalación
Existen tres formas prácticas de instalar Valkey en Debian:
- Desde los repositorios APT.
- Mediante Docker.
- Compilándolo desde el código fuente.
La elección dependerá de si priorizas facilidad de instalación, acceso a la versión más reciente o una integración nativa con soporte TLS y systemd.
1. ¿Cómo instalar Valkey desde APT?
En Debian 13, la forma más sencilla es instalarlo directamente desde los repositorios oficiales. En Debian 12 puede ser necesario habilitar los repositorios backports.
sudo apt update
sudo apt install -y valkey-server valkey-tools
Después de la instalación, el servicio suele iniciarse automáticamente y quedar habilitado para arrancar junto al sistema.
Comprueba que todo funciona correctamente:
valkey-server --version
systemctl is-active valkey-server
valkey-cli ping
Si la instalación es correcta, el comando:
valkey-cli ping
Esto devolverá:
PONG
Normalmente, el archivo de configuración se encuentra en:
/etc/valkey/valkey.conf
2. ¿Cómo ejecutar la versión más reciente con Docker?
Si necesitas una versión más actual sin compilar nada, Docker es una excelente alternativa.
Instala Docker:
sudo apt install -y docker.io
Descarga y ejecuta Valkey:
sudo docker run -d --name valkey -p 6379:6379 valkey/valkey:9.1
Comprueba la versión instalada:
sudo docker exec valkey valkey-server --version
Este método resulta ideal para:
- Entornos de desarrollo.
- Laboratorios de pruebas.
- Despliegues rápidos.
- Contenedores reproducibles.
Si deseas utilizar TLS en producción, deberás configurar explícitamente certificados y parámetros adicionales.
3. ¿Cómo compilar Valkey desde el código fuente?
La compilación desde fuente ofrece mayor control sobre la instalación y permite habilitar características como TLS y soporte completo para systemd.
Instalar dependencias
sudo apt install -y build-essential pkg-config libssl-dev libsystemd-dev curl
Descargar y compilar
VER=$(curl -fsSL https://api.github.com/repos/valkey-io/valkey/releases/latest | grep -oP '"tag_name":\s*"\K[^"]+')
cd /usr/local/src
sudo curl -fsSL "https://github.com/valkey-io/valkey/archive/refs/tags/${VER}.tar.gz" -o "valkey-${VER}.tar.gz"
sudo tar xzf "valkey-${VER}.tar.gz"
cd "valkey-${VER}"
sudo make BUILD_TLS=yes USE_SYSTEMD=yes -j"$(nproc)"
sudo make install
Es importante mantener instalada la librería:
libsystemd-dev
ya que permite la integración correcta con systemd y evita problemas durante el arranque del servicio.
Configuración básica segura
Antes de exponer Valkey a una red, conviene aplicar una configuración mínima de seguridad.
Configuración recomendada:
bind 127.0.0.1
protected-mode yes
Estas opciones limitan el acceso al propio servidor y activan protecciones básicas.
Para reforzar la seguridad también puedes:
- Configurar autenticación mediante contraseña.
- Utilizar sockets Unix en lugar de TCP.
- Habilitar TLS.
- Restringir el acceso mediante firewall.
TLS en Valkey
Si Valkey ha sido compilado con soporte TLS, es posible deshabilitar el puerto estándar y utilizar únicamente conexiones cifradas.
Ejemplo de configuración:
port 0
tls-port 6379
tls-cert-file /path/to/valkey.crt
tls-key-file /path/to/valkey.key
tls-ca-cert-file /path/to/ca.crt
Conexión mediante TLS
valkey-cli --tls \
--cert /path/to/client.crt \
--key /path/to/client.key \
--cacert /path/to/ca.crt
Esto garantiza que todas las comunicaciones entre cliente y servidor viajen cifradas.
Comandos básicos de valkey-cli
valkey-cli es la herramienta principal para administrar y probar el servidor.
| Comando | Descripción |
|---|---|
| valkey-cli ping | Comprueba la conectividad con el servidor. |
| valkey-cli set key value | Guarda un valor. |
| valkey-cli get key | Recupera un valor almacenado. |
| valkey-cli set key value ex 60 | Guarda un valor con expiración de 60 segundos. |
| valkey-cli ttl key | Muestra el tiempo restante antes de expirar. |
| valkey-cli incr counter | Incrementa un contador de forma atómica. |
| valkey-cli info memory | Muestra información sobre el uso de memoria. |
| valkey-cli dbsize | Devuelve el número total de claves. |
| valkey-cli monitor | Muestra en tiempo real los comandos ejecutados. |
| valkey-cli flushall | Elimina todas las claves de todas las bases de datos. |
Opciones de conexión
Conectarse a un host específico:
valkey-cli -h 127.0.0.1 -p 6379
Autenticarse:
valkey-cli -a tu_password
Seleccionar base de datos:
valkey-cli -n 2
Conectar a un clúster:
valkey-cli -c
Verificación final
Tras la instalación, verifica los siguientes puntos:
Estado del servicio
systemctl status valkey-server
Respuesta del servidor
valkey-cli ping
Versión instalada
valkey-server --version
Si utilizas Docker, las comprobaciones deberán realizarse dentro del contenedor o mediante comandos Docker equivalentes.
En instalaciones compiladas desde código fuente, también conviene verificar:
- La ubicación de los binarios.
- Los permisos de ejecución.
- La correcta integración con systemd.
Uso recomendado
Instalación mediante APT
Adecuada para:
- Equipos personales.
- Laboratorios.
- Entornos de prueba.
- Servidores con requisitos estándar.
Instalación mediante Docker
Recomendada para:
- Desarrollo.
- CI/CD.
- Entornos efímeros.
- Despliegues reproducibles.
Compilación desde código fuente
Ideal cuando necesitas:
- La última versión disponible.
- Soporte TLS personalizado.
- Integración completa con systemd.
- Máximo control sobre la configuración.
Valkey es una solución versátil que puede utilizarse como caché de aplicaciones, almacenamiento temporal de sesiones, limitador de peticiones, sistema de colas o incluso como reemplazo directo de Redis en numerosos entornos de producción.
