¿Cómo instalar Valkey en Rocky Linux 10 y Alma Linux 10?

Valkey es una base de datos en memoria de alto rendimiento diseñada para funcionar como sistema de caché, gestor de sesiones, almacén de estructuras de datos, limitador de peticiones y plataforma de mensajería ligera.

Es totalmente compatible con Redis a nivel de protocolo, comandos y formatos de almacenamiento, lo que permite migrar aplicaciones existentes sin modificaciones significativas.

En Rocky Linux 10 y AlmaLinux 10 existen tres métodos principales para instalar Valkey:

  • Utilizar los repositorios oficiales mediante DNF.
  • Ejecutarlo en un contenedor con Podman.
  • Compilarlo desde el código fuente.

Cada método ofrece ventajas distintas según los requisitos de estabilidad, facilidad de mantenimiento o necesidad de utilizar la versión más reciente.

Requisitos previos

Antes de comenzar, asegúrate de disponer de:

  • Un servidor Rocky Linux 10 o AlmaLinux 10.
  • Acceso administrativo mediante sudo.
  • Conectividad a Internet para descargar paquetes o imágenes.
  • SELinux habilitado en modo Enforcing.

Puedes comprobar el estado de SELinux con:

getenforce

La salida debería mostrar:

Enforcing

No es recomendable desactivar SELinux. Todos los procedimientos descritos en esta guía funcionan correctamente con SELinux activado.

¿Cómo elegir un método de instalación?

MétodoVersiónRecomendado para
DNF (AppStream)Serie 8.xEntornos estables y soportados por la distribución
PodmanÚltima versión 9.xDesarrollo y despliegues rápidos
Código fuenteÚltima versión 9.xPersonalización avanzada y soporte TLS nativo

Los tres métodos son alternativas independientes. Solo necesitas utilizar uno de ellos.


¿Cómo instalar Valkey desde AppStream con DNF?

La forma más sencilla de instalar Valkey consiste en utilizar los repositorios oficiales incluidos en Rocky Linux y AlmaLinux.

Instala el paquete:

sudo dnf install -y valkey

A diferencia de otras distribuciones, Rocky Linux y AlmaLinux utilizan un único paquete denominado valkey, que incluye tanto el servidor como las herramientas cliente.

Una vez instalado, habilita e inicia el servicio:

sudo systemctl enable --now valkey

Comprueba la versión instalada:

valkey-server --version

Verifica la conectividad:

valkey-cli ping

Si todo funciona correctamente, obtendrás:

PONG

Ubicaciones importantes

Servicio systemd:

valkey

Archivo de configuración:

/etc/valkey/valkey.conf

Binarios principales:

/usr/bin/valkey-server
/usr/bin/valkey-cli

Consultar el estado del servicio:

systemctl status valkey

¿Cómo ejecutar Valkey con Podman?

Podman es la alternativa nativa a Docker en sistemas basados en RHEL.

Instala Podman:

sudo dnf install -y podman

Ejecuta el contenedor oficial:

sudo podman run -d \
  --name valkey \
  -p 6379:6379 \
  docker.io/valkey/valkey:9.1

Es importante utilizar el nombre completo de la imagen:

docker.io/valkey/valkey:9.1

De lo contrario, Podman puede no localizar correctamente el repositorio.

Verifica que el contenedor está en ejecución:

sudo podman ps

Comprueba la versión:

sudo podman exec valkey valkey-server --version

Accede al cliente interactivo:

sudo podman exec -it valkey valkey-cli

Administración básica del contenedor

Detener:

sudo podman stop valkey

Iniciar:

sudo podman start valkey

Reiniciar:

sudo podman restart valkey

Eliminar:

sudo podman rm -f valkey

¿Cómo compilar Valkey desde el código fuente?

La compilación manual proporciona acceso a las versiones más recientes y permite habilitar características avanzadas como TLS y soporte completo para systemd.

Instalar dependencias

Instala las herramientas de compilación:

sudo dnf groupinstall -y "Development Tools"

Instala las bibliotecas necesarias:

sudo dnf install -y openssl-devel systemd-devel curl

Descargar la última versión

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}"

Compilar con TLS y systemd

sudo make BUILD_TLS=yes USE_SYSTEMD=yes -j"$(nproc)"

Instalar

sudo make install

Comprobar la instalación:

valkey-server --version

Importancia de systemd-devel

Si se compila con soporte para systemd, la librería systemd-devel es obligatoria.

Sin ella, el servidor puede arrancar correctamente, pero systemd no recibirá la notificación de disponibilidad y terminará finalizando el servicio por tiempo de espera.


Gestión del servicio con systemd

Iniciar:

sudo systemctl start valkey

Detener:

sudo systemctl stop valkey

Reiniciar:

sudo systemctl restart valkey

Habilitar al arranque:

sudo systemctl enable valkey

Deshabilitar:

sudo systemctl disable valkey

Consultar registros:

journalctl -u valkey -f

Configuración básica de seguridad

Una instalación recién creada suele aceptar conexiones locales sin autenticación.

Antes de utilizar Valkey en producción conviene revisar varios parámetros de seguridad.

Mantener acceso local

En el archivo:

/etc/valkey/valkey.conf

Comprueba que existen líneas similares a:

bind 127.0.0.1 -::1
protected-mode yes

Esto restringe el acceso al propio servidor y evita exposiciones accidentales.


¿Cómo configurar la autenticación?

Si necesitas acceso remoto, configura primero una contraseña.

Desde la consola:

valkey-cli CONFIG SET requirepass "ContraseñaMuySegura"

Probar autenticación:

valkey-cli -a "ContraseñaMuySegura" ping

Resultado esperado:

PONG

Haz permanente la configuración añadiendo al archivo de configuración:

requirepass ContraseñaMuySegura

Posteriormente reinicia el servicio:

sudo systemctl restart valkey

¿Cómo configurar SELinux para puertos personalizados?

Valkey utiliza por defecto el puerto TCP 6379.

Si deseas cambiarlo:

port 6380

SELinux bloqueará el nuevo puerto hasta que se registre correctamente.

Asignar el contexto adecuado:

sudo semanage port -a -t redis_port_t -p tcp 6380

Comprobar puertos registrados:

sudo semanage port -l | grep redis

No es recomendable desactivar SELinux para solucionar este problema.


¿Cómo configurar el firewall?

Si Valkey debe ser accesible desde otro servidor, limita el acceso únicamente a la dirección IP necesaria.

Ejemplo:

sudo firewall-cmd --permanent \
--add-rich-rule='rule family="ipv4" source address="10.0.1.20" port port="6379" protocol="tcp" accept'

Aplicar cambios:

sudo firewall-cmd --reload

Evita abrir el puerto a toda la red salvo que sea estrictamente necesario.


¿Cómo configurar la memoria?

Es recomendable limitar el uso de memoria para evitar que un cliente o una aplicación defectuosa agoten los recursos del sistema.

Ejemplo:

maxmemory 2gb

Política de expulsión:

maxmemory-policy allkeys-lru

Opciones habituales:

PolíticaDescripción
noevictionNo elimina claves
allkeys-lruElimina las menos utilizadas
allkeys-randomElimina claves aleatoriamente
volatile-lruSolo elimina claves con expiración
volatile-randomElimina claves temporales aleatoriamente

¿Cómo habilitar el TLS?

Para cifrar todas las comunicaciones entre clientes y servidor, configura TLS.

Ejemplo básico:

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

Conexión TLS:

valkey-cli --tls \
  --cacert /etc/valkey/tls/ca.crt

Con autenticación mediante certificados de cliente:

valkey-cli \
  --tls \
  --cert cliente.crt \
  --key cliente.key \
  --cacert ca.crt

Comandos básicos de administración

Comprobar conectividad:

valkey-cli ping

Guardar una clave:

valkey-cli set usuario "Carlos"

Leer una clave:

valkey-cli get usuario

Crear una clave temporal:

valkey-cli set token abc123 ex 60

Consultar expiración:

valkey-cli ttl token

Incrementar contador:

valkey-cli incr visitas

Ver estadísticas:

valkey-cli info

Información de memoria:

valkey-cli info memory

Número total de claves:

valkey-cli dbsize

Monitorizar actividad:

valkey-cli monitor

Eliminar una clave:

valkey-cli del usuario

Vaciar la base actual:

valkey-cli flushdb

Vaciar todas las bases:

valkey-cli flushall

Lista de comprobación de seguridad

Antes de utilizar Valkey en producción, verifica los siguientes puntos:

  • El servidor escucha únicamente en localhost o en una red privada.
  • protected-mode está activado.
  • Existe una contraseña segura o ACL configuradas.
  • SELinux permanece en modo Enforcing.
  • Los puertos personalizados están etiquetados correctamente mediante semanage.
  • El firewall solo permite conexiones desde hosts autorizados.
  • Existe un límite de memoria configurado.
  • Se ha definido una política de expulsión adecuada.
  • TLS está habilitado si el servicio se expone fuera del servidor.

Completar esta lista reduce considerablemente el riesgo de exponer una instancia abierta o sin protección en la red.

Vistas: 0