Valkey es una base de datos en memoria de alto rendimiento diseñada para funcionar como sistema de caché, almacén de estructuras de datos, gestor de sesiones, cola de mensajes y limitador de peticiones.
Nació como una alternativa abierta y compatible con Redis, por lo que la mayoría de aplicaciones que utilizan Redis pueden migrarse a Valkey con pocos o ningún cambio.
En Debian, Valkey puede instalarse mediante los repositorios del sistema, ejecutarse en contenedores Docker o compilarse directamente desde el código fuente. Cada método ofrece ventajas diferentes según las necesidades del entorno.
Requisitos previos
Antes de comenzar, es recomendable actualizar el sistema:
sudo apt update && sudo apt upgrade -y
También es conveniente verificar la versión de Debian instalada:
cat /etc/os-release
¿Cómo instalar Valkey desde APT?
La forma más sencilla de instalar Valkey consiste en utilizar los repositorios de Debian.
Instala los paquetes necesarios:
sudo apt update
sudo apt install -y valkey-server valkey-tools
Una vez finalizada la instalación, el servicio suele iniciarse automáticamente.
Comprueba que está funcionando correctamente:
systemctl status valkey-server
También puedes verificar que el servicio responde mediante el cliente integrado:
valkey-cli ping
Si todo funciona correctamente, obtendrás:
PONG
Para consultar la versión instalada:
valkey-server --version
El archivo principal de configuración suele encontrarse en:
/etc/valkey/valkey.conf
Gestión del servicio con systemd
Los sistemas Debian modernos utilizan systemd para administrar servicios.
Comandos básicos:
Iniciar el servicio:
sudo systemctl start valkey-server
Detenerlo:
sudo systemctl stop valkey-server
Reiniciarlo:
sudo systemctl restart valkey-server
Recargar la configuración:
sudo systemctl reload valkey-server
Habilitar el inicio automático al arrancar el sistema:
sudo systemctl enable valkey-server
Deshabilitarlo:
sudo systemctl disable valkey-server
Consultar el estado:
sudo systemctl status valkey-server
Visualizar registros recientes:
journalctl -u valkey-server -f
¿Cómo instalar mediante Docker?
Docker permite ejecutar Valkey sin modificar el sistema anfitrión y facilita las actualizaciones.
Si Docker no está instalado:
sudo apt install -y docker.io
Habilita el servicio:
sudo systemctl enable --now docker
Descarga y ejecuta el contenedor:
sudo docker run -d \
--name valkey \
-p 6379:6379 \
valkey/valkey:latest
Comprueba que está funcionando:
sudo docker ps
Verifica la versión:
sudo docker exec valkey valkey-server --version
Accede al cliente interactivo:
sudo docker exec -it valkey valkey-cli
Detener el contenedor:
sudo docker stop valkey
Iniciarlo nuevamente:
sudo docker start valkey
Eliminarlo:
sudo docker rm -f valkey
Persistencia de datos en Docker
Para evitar la pérdida de datos al eliminar el contenedor:
mkdir -p ~/valkey-data
sudo docker run -d \
--name valkey \
-p 6379:6379 \
-v ~/valkey-data:/data \
valkey/valkey:latest
¿Cómo compilar Valkey desde el código fuente?
La compilación manual ofrece acceso a las versiones más recientes y permite habilitar características avanzadas como TLS o integración completa con systemd.
Instalar dependencias
sudo apt install -y \
build-essential \
pkg-config \
libssl-dev \
libsystemd-dev \
curl \
git
Descargar el código fuente
cd /usr/local/src
sudo git clone https://github.com/valkey-io/valkey.git
cd valkey
Compilar
sudo make BUILD_TLS=yes USE_SYSTEMD=yes -j"$(nproc)"
Instalar
sudo make install
Verifica la instalación:
valkey-server --version
Configuración básica de seguridad
Una instalación predeterminada suele ser suficiente para pruebas locales, pero en producción conviene aplicar medidas de seguridad adicionales.
Abre el archivo de configuración:
sudo nano /etc/valkey/valkey.conf
Limitar acceso a localhost
bind 127.0.0.1
Activar modo protegido
protected-mode yes
Definir contraseña
requirepass MiContraseñaSegura
Tras modificar la configuración:
sudo systemctl restart valkey-server
Conexión utilizando contraseña:
valkey-cli -a MiContraseñaSegura
Configuración de memoria
Valkey almacena los datos principalmente en memoria RAM.
Es recomendable establecer límites:
maxmemory 1gb
Política de expulsión cuando se alcance el límite:
maxmemory-policy allkeys-lru
Algunas políticas disponibles:
| Política | Descripción |
|---|---|
| noeviction | No elimina claves. |
| allkeys-lru | Elimina las menos utilizadas. |
| volatile-lru | Elimina claves con expiración. |
| allkeys-random | Elimina claves aleatoriamente. |
| volatile-random | Elimina claves temporales aleatoriamente. |
Habilitar TLS
TLS permite cifrar las comunicaciones entre clientes y servidor.
Crear directorio para certificados
sudo mkdir -p /etc/valkey/tls
Configuración básica TLS
port 0
tls-port 6379
tls-cert-file /etc/valkey/tls/server.crt
tls-key-file /etc/valkey/tls/server.key
tls-ca-cert-file /etc/valkey/tls/ca.crt
Reinicia el servicio:
sudo systemctl restart valkey-server
Conectarse usando TLS
valkey-cli \
--tls \
--cacert /etc/valkey/tls/ca.crt
Si se utilizan certificados de cliente:
valkey-cli \
--tls \
--cert cliente.crt \
--key cliente.key \
--cacert ca.crt
Comandos básicos de valkey-cli
Comprobar conectividad:
valkey-cli ping
Guardar un valor:
valkey-cli set usuario "Juan"
Leer un valor:
valkey-cli get usuario
Crear una clave con expiración:
valkey-cli set token abc123 ex 60
Consultar tiempo restante:
valkey-cli ttl token
Incrementar un contador:
valkey-cli incr visitas
Mostrar información general:
valkey-cli info
Información de memoria:
valkey-cli info memory
Número total de claves:
valkey-cli dbsize
Eliminar una clave:
valkey-cli del usuario
Vaciar la base actual:
valkey-cli flushdb
Vaciar todas las bases:
valkey-cli flushall
Monitorizar comandos en tiempo real:
valkey-cli monitor
Conexión a servidores remotos
Conectar a otro host:
valkey-cli -h 192.168.1.100
Especificar puerto:
valkey-cli -h 192.168.1.100 -p 6379
Autenticación:
valkey-cli -h 192.168.1.100 -a contraseña
Seleccionar base de datos:
valkey-cli -n 2
Modo clúster:
valkey-cli -c
Comprobaciones finales
Antes de poner el servidor en producción conviene verificar:
Estado del servicio:
systemctl is-active valkey-server
Versión instalada:
valkey-server --version
Conectividad:
valkey-cli ping
Consumo de memoria:
valkey-cli info memory
Número de claves:
valkey-cli dbsize
¿Qué método de instalación deberías elegir?
APT
Recomendado para:
- Equipos personales.
- Servidores pequeños.
- Laboratorios de pruebas.
- Instalaciones sencillas.
Docker
Adecuado para:
- Desarrollo.
- Contenedores.
- Entornos CI/CD.
- Infraestructuras reproducibles.
Código fuente
Recomendado para:
- Obtener la versión más reciente.
- Personalizar la compilación.
- Habilitar TLS de forma explícita.
- Integración avanzada con systemd.
- Entornos de producción con requisitos específicos.
Valkey es una solución extremadamente rápida y versátil para almacenamiento en memoria. Gracias a su compatibilidad con Redis, su bajo consumo de recursos y su amplio ecosistema de herramientas, resulta una excelente opción para sistemas de caché, sesiones web, colas de trabajo, almacenamiento temporal y aplicaciones que requieren acceso a datos con latencias muy reducidas.
