Cómo instalar el servidor Redis en Rocky Linux
Redis es un popular almacén de datos clave-valor en memoria de código abierto. Soporta varias estructuras de datos como Hash, Listas, Conjuntos, Cadenas y mucho más. Redis está diseñado para ejecutarse únicamente en el entorno de confianza, y puede utilizarse como base de datos, caché y corredor de mensajes. Redis es ampliamente conocido por su amplio soporte, alto rendimiento, alta disponibilidad y flexibilidad.
Puedes instalar Redis como un sistema independiente para un despliegue pequeño. Para un despliegue grande, proporcionan componentes adicionales como Redis Sentinel para una alta disponibilidad y Redis Cluster para dividir los datos en varios servidores de nodos Redis.
En esta guía, aprenderás a instalar Redis en Rocky Linux. Para una instalación sencilla, instalarás Redis desde el repositorio de AppStream, pero si quieres obtener la última versión de Redis (que implica más funciones), puedes instalar Redis desde el código fuente compilándolo en tu sistema.
Requisitos previos
- Un sistema Linux Rocky. Asegúrate de que todos los paquetes y repositorios están actualizados a la última versión
- Un usuario root o un usuario con privilegios de root. Utilizarás este usuario para instalar nuevos paquetes y editar las configuraciones del sistema.
Instalar Redis desde el repositorio de AppStream
Si quieres instalar Redis fácilmente sin compilar, puedes instalarlo desde el repositorio AppStream proporcionado por Rocky Linux. En este momento, el repositorio AppStream de Rocky Linux proporciona la versión 5.x de Redis. Y si quieres instalar la versión 6.x de Redis, debes instalarla manualmente.
1. Para instalar Redis desde el repositorio AppStream, ejecuta el comando dnf que aparece a continuación.
sudo dnf install redis
Ahora escribe‘Y’ para instalar el paquete Redis.
2. Una vez completada la instalación, activa la ejecución de Redis al inicio del sistema mediante el comando systemctl que aparece a continuación.
sudo systemctl enable redis
3. Después, ejecuta el siguiente comando para iniciar el servicio Redis y comprobar su estado.
sudo systemctl start redis
sudo systemctl status redis
Si el servicio Redis está activo y en ejecución, verás una salida similar a la de abajo.
Para la siguiente etapa, configurarás Redis como en la sección siguiente.
Instalar Redis desde la fuente
Si quieres obtener la última versión de Redis, puedes instalarla manualmente desde el código fuente. La principal ventaja de instalar la última versión de Redis es que siempre obtienes las últimas características y paquetes. En este momento, consigue la última versión estable 6.2, y la instalarás en esta fase.
1. En primer lugar, debes instalar las dependencias de algunos paquetes antes de compilar Redis.
Añade el repositorio EPEL a tu sistema mediante el siguiente comando.
sudo dnf install epel-release -y
Instala el paquete de grupo«Herramientas de desarrollo» y algunos paquetes adicionales para compilar Redis.
sudo dnf group install "Development Tools" -y
sudo dnf install jemalloc lua hiredis linenoise -y
Después, ejecuta el siguiente comando para instalar los paquetes openssl-devel (para el soporte de TLS) y systemd-devel (para el soporte de systemd).
sudo dnf install openssl-devel systemd-devel -y
2. Una vez completada la instalación de todos los paquetes, ejecuta el siguiente comando para crear un nuevo usuario y grupo‘redis‘.
sudo adduser --system --user-group --no-create-home --shell /sbin/nologin redis
3. A continuación, crea un nuevo directorio de datos para Redis en‘/var/lib/redis‘ y cambia la propiedad de ese directorio al usuario ‘redis‘ mediante el siguiente comando.
sudo mkdir -p /var/lib/redis
sudo chown -R redis:redis /var/lib/redis
Y ya estás listo para compilar e instalar redis.
3. Cambia el directorio de trabajo a‘/usr/src‘ y descarga la última versión estable del código fuente de Redis utilizando el comando wget como se indica a continuación.
cd /usr/src/
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
Ahora extrae el código fuente de Redis y cambia el directorio al directorio ‘redis-*‘.
tar -xzvf redis-6.2.5.tar.gz
cd redis-*/
4. Compila el código fuente de Redis utilizando el siguiente comando.
sudo make BUILD_TLS=yes USE_SYSTEMD=yes
Opciones que debes conocer:
- BUILD_TLS = habilitar el soporte de TLS para Redis,
- USE_SYSTEMD = habilitar el soporte para systemd, el sistema Rocky Linux que utiliza systemd como sistema init.
Ahora ejecuta el siguiente comando.
sudo make test
Esta prueba tardará algún tiempo. Cuando todo esté completo, verás una salida similar a la de abajo.
\o/ All tests passed without errors!
Cleanup: may take some time... OK
make[1]: Leaving directory '/usr/src/redis-6.2.5/src'
Asegúrate de que todas las pruebas han pasado sin ningún error.
5. A continuación, puedes instalar redis ejecutando el siguiente comando.
sudo make PREFIX=/usr install
El comando Redis estará disponible en el directorio‘/usr/bin ‘, como especificamos en la opción‘PREFIX=‘ de la parte superior.
Puedes verificar la instalación de Redis ejecutando los siguientes comandos.
redis-server --version
redis-cli --version
Si la instalación se realiza correctamente, verás la versión de Redis 6.2 como en la siguiente captura de pantalla.
Configurar Redis
En esta etapa, configurarás la instalación de Redis. Puedes realizar esta etapa para todas las instalaciones de Redis (instalando desde el origen o instalando desde el repositorio de AppStream).
1. Si estás instalando Redis desde el código fuente, ejecuta el siguiente comando para crear un nuevo directorio de configuración de Redis.
mkdir -p /etc/redis
Ahora copia la configuración de ejemplo‘redis.conf‘ al directorio‘/etc/redis‘.
cp /usr/src/redis-*/redis.conf /etc/redis/redis.conf
2. Ejecuta el siguiente comando nano para editar el archivo de configuración ‘redis.conf’.
sudo nano /etc/redis/redis.conf
Cambia la dirección ‘bind’ por defecto por la dirección IP de tu red local.
bind 127.0.0.1
Descomenta la opción ‘daemonize’ y cambia el valor a ‘yes’ para permitir que Redis se ejecute como demonio.
daemonize yes
Descomenta la opción ‘supervised’ y cambia el valor a ‘systemd’. Esta opción permite a Redis interactuar con el árbol de supervisión del sistema.
supervised systemd
Especifica el directorio de trabajo y de datos para Redis al directorio‘/var/lib/redis‘. Todas las bases de datos de Redis estarán disponibles en este directorio.
dir /var/lib/redis
Descomenta la opción ‘requirepass’ y cambia el valor por tu contraseña, y asegúrate de utilizar una contraseña fuerte y larga. Con esta opción, todas las interacciones de los clientes requerirán una contraseña para la autenticación.
requirepass AJds9dshsd8wqejdw82389r3ej3983jk
Guarda la configuración pulsando el botón‘Ctrl+x‘, escribe‘y‘ y pulsa‘Enter‘.
Configurar el archivo de servicio para Redis
Para la instalación manual de Redis, debes configurar el archivo de servicio de Redis.
1. Ejecuta el siguiente comando para cambiar el directorio de trabajo a‘/usr/src/redis-*/utils‘ y copia el archivo de servicio systemd en ‘/etc/systemd/system‘.
cd /usr/src/redis-*/utils/
cp systemd-redis_server.service /etc/systemd/system/redis-server.service
2. Edita la configuración de‘redis-server.service‘ utilizando nano.
sudo nano /etc/systemd/system/redis-server.service
Cambia algunas opciones de la configuración como se indica a continuación.
[Unit]
...
AssertPathExists=/var/lib/redis
[Service]
...
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=alway
...
User=redis
Group=redis
WorkingDirectory=/var/lib/redis
Pulsa el botón‘Ctrl+x‘, escribe‘y‘, y pulsa‘Enter‘ para guardar y salir.
3. Ahora ejecuta el siguiente comando para recargar el systemd-manager y aplicar la nueva configuración.
sudo systemctl daemon-reload
4. Después, ejecuta el siguiente comando para que el servicio redis se ejecute automáticamente al iniciar el sistema.
sudo systemctl enable redis-server
5. Inicia el servicio redis y comprueba su estado ejecutando el siguiente comando.
sudo systemctl start redis-server
sudo systemctl status redis-server
Si tu servicio Redis está activo y en ejecución, deberías ver una salida similar a la que se muestra a continuación.
Cambiar el nombre o desactivar el comando peligroso de Redis
Redis proporciona una función de seguridad que te permite renombrar o desactivar completamente algunos comandos peligrosos. Y se puede hacer simplemente a través del archivo de configuración de redis‘redis.conf’.
1. Edita la configuración de redis ‘redis.conf’ utilizando el comando nano.
sudo nano /etc/redis/redis.conf
2. Para desactivar completamente el comando Redis, puedes definir el nombre del comando seguido de una comilla vacía como se indica a continuación.
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
3. Para renombrar los comandos de Redis, puedes definir el nombre del comando siguiendo el nuevo comando como reemplazo, como se indica a continuación.
rename-command SHUTDOWN SHUT_ME_DOWN
rename-command CONFIG CONFIG_ME_NOW
Guarda la configuración pulsando el botón‘Ctrl+x‘, escribe‘y‘, y luego pulsa‘Enter‘.
4. A continuación, ejecuta el siguiente comando para reiniciar el servicio redis y aplicar la configuración.
sudo systemctl restart redis-server
5. Para el siguiente paso, vas a verificar la autenticación de Redis para asegurarte de que funciona, luego vas a verificar utilizando algunos comandos que acabas de renombrar.
Verificar la instalación de Redis
1. En primer lugar, debes conectarte al servidor Redis utilizando el comando‘redis-cli‘ como se indica a continuación.
redis-cli
O puedes especificar el host y el puerto utilizando el comando como se indica a continuación.
redis-cli -h 127.0.0.1 -p 6379
2. A continuación, autentifícate utilizando el comando ‘auth‘ como se indica a continuación.
auth AJds9dshsd8wqejdw82389r3ej3983jk
Si tu autentificación es correcta, verás el mensaje‘OK‘.
3. Ejecuta el comando ‘ping’ que aparece a continuación. Este comando se asegurará de que la autenticación y la conexión con el servidor Redis son correctas.
ping
Si la conexión se realiza correctamente, verás el mensaje «PONG«.
4. A continuación, verifica algunos comandos que has desactivado o renombrado en la parte superior.
Ejecuta el comando‘CONFIG‘ como se indica a continuación.
CONFIG get bind
Y verás el mensaje de error‘ERR comando desconocido ‘CONFIG’‘ porque el comando ‘CONFIG’ por defecto ha sido sustituido por el ‘CONFIG_ME_NOW’.
Ahora ejecuta el comando ‘CONFIG_ME_NOW‘ como se indica a continuación.
CONFIG_ME_NOW get bind
CONFIG_ME_NOW get supervised
Si la instalación se realiza correctamente, verás una salida similar a la de la captura de pantalla siguiente.
Además, intenta ejecutar algunos comandos desactivados ‘FLUSHDB‘ y‘DEBUG‘, y obtendrás el mismo mensaje de error como‘ERR comando desconocido‘.
Conclusión
¡Enhorabuena! Ahora has instalado con éxito Redis en Rocky Linux utilizando los dos métodos, instalando desde el repositorio de AppStream o instalando desde el código fuente. Además, has aprendido a asegurar el despliegue de Redis habilitando la autenticación y renombrando y deshabilitando algunos comandos peligrosos de Redis. Para el siguiente paso, puedes explorar otra configuración de Redis, como la implementación de TLS, la configuración de alta disponibilidad mediante Redis Sentinel, etc.