En este artículo veremos cómo instalar Redis en Centos 8 paso a paso, de modo que puedas trabajar con este estupendo motor de bases de datos NoSQL tanto en tus propios desarrollos como para base de aplicaciones de terceros, sobre tu servidor o VPS CentOS.
Contenido
Antes de instalar Redis en CentOS 8
Si quieres completar los pasos de esta pequeña guía de instalación de Redis en CentOS 8 sólo tienes que asegurarte de cumplir estos requerimientos:
- Una máquina CentOS 8 actualizada.
- Un usuario con capacidades de sudo, o el mismo root en su defecto.
- Acceso a Internet.
Cómo instalar Redis en CentOS 8
Vamos a instalar Redis en CentOS 8 directamente desde los repositorios de la distribución, por lo que conviene actualizar la información de las listas de paquetes como primer paso:
~$ sudo yum update
El paquete que necesitamos instalar es redis:
~$ sudo yum -y install redis
Tras la descarga e instalación de Redis se crea un nuevo servicio en CentOS 8, el servicio redis.service o si lo prefieres sólo redis, que no queda en ejecución ni habilitado para su inicio automático, tareas que realizaremos manualmente a continuación.
Para iniciar por vez primera el servicio redis usaremos systemctl:
~$ sudo systemctl start redis
Podemos comprobar el estado en que se encuentra el servicio con el comando systemctl status redis
:
La información que nos devuelve este comando nos revela que Redis se encuentra en funcionamiento atendiendo peticiones locales en el puerto 6379.
Si queremos que Redis inicie automáticamente con cada arranque de CentOS 8 debemos también habilitar el servicio:
~$ sudo systemctl enable redis
Versión instalada de Redis en CentOS 8
Si necesitas conocer qué versión de Redis tienes instalada en CentOS 8 bastará con lanzar el consola el comando redis-server -v
:
~$ redis-server -v Redis server v=5.0.3 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=8c0bf22bfba82c8f
Cómo instalar el cliente de Redis en CentOS 8
Si sólo necesitas instalar un cliente de Redis en CentOS 8 el paquete es el mismo que el del servidor, siendo el cliente de consola el comando redis-cli. Por tanto, en caso de querer únicamente el cliente para trabajar de forma remota con otros servidores, simplemente no configures el servicio en tu máquina local.
Cómo conectar a Redis en CentOS 8
Para conectar al servicio local Redis en CentOS 8 bastará con lanzar el cliente redis-cli desde consola:
~$ redis-cli 127.0.0.1:6379>
El prompt mostrará a qué servidor Redis estamos conectados (en este caso el servicio local en CentOS 8) y en qué puerto. Podemos probar el funcionamiento del servicio simplemente enviando un comando ping:
127.0.0.1:6379> ping PONG 127.0.0.1:6379>
El servidor responde, así que podemos ir un poco más allá, estableciendo una par clave/valor:
127.0.0.1:6379> set color azul OK 127.0.0.1:6379>
Si solicitamos el valor de la clave, deberíamos obtener el dato esperado:
127.0.0.1:6379> get color "azul" 127.0.0.1:6379>
Justo lo que esperábamos.
Configurar Redis en CentOS 8
Vamos a configurar Redis en CentOS 8 para añadir algunos ajustes básicos sobre la configuración por defecto. Para ello trabajaremos sobre el archivo principal de configuración, redis.conf que se encuentra en el directorio /etc/.
Acceso por contraseña
Hemos probado la conexión al servicio sin necesidad de ningún tipo de autenticación, pero lo habitual es establecer una contraseña principal. Para ello editaremos redis.conf:
~$ sudo nano /etc/redis.conf
Buscamos la directiva requirepass:
... # requirepass foobared ...
Activaremos esta directiva eliminando el carácter # al inicio de línea y estableceremos la contraseña que queramos:
... requirepass XXXXXXXX ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart redis
Ahora, al conectar al servicio y tratar de interactuar obtendremos un mensaje de error:
~$ redis-cli > get color (error) NOAUTH Authentication required. >
Es necesario emplear previamente el comando AUTH con la clave:
> auth XXXXXXXX OK > get color "azul" >
Una vez autenticado en el servicio, se puede continar trabajando con normalidad.
Acceso remoto a Redis en CentOS 8
La configuración por defecto no permite el acceso remoto a Redis en CentOS 8, será necesario editar redis.conf para realizar los ajustes necesarios.
~$ sudo nano /etc/redis.conf
Buscamos la directiva bind:
... bind 127.0.0.1 ...
Por defecto Redis sólo escucha peticiones en la dirección de red local, por lo que sólo se permiten conexiones locales. Podemos añadir a esta directiva una lista de direcciones desde las que esperar conexiones, normalmente bastará con la dirección IP del adaptador con el que CentOS 8 se conecta a la red:
... bind 127.0.0.1 192.168.0.113 ...
Guardamos los cambios y reiniciamos el servicio:
~$ sudo systemctl restart redis
Ahora Redis escucha tanto peticiones locales como conexiones remotas.
Configurar el firewall de CentOS 8 para Redis
Si tienes activado el firewall de CentOS 8, que es la configuración por defecto, habrá que permitir las conexiones entrantes para el servicio Redis:
~$ sudo firewall-cmd --permanent --add-service=redis
Aplicamos los cambios recargando la configuración del firewall:
~$ sudo firewall-cmd --reload
Cómo conectar remotamente
Con toda la configuración realizada, podemos comprobar el acceso remoto al servicio Redis utilizando desde otra máquina en red un cliente como redis-cli, especificando como argumento la dirección IP o nombre DNS del servidor CentOS 8:
~$ redis-cli -h centos8.local.lan centos8.local.lan:6379> auth XXXXXXXX OK centos8.local.lan:6379> get color "azul" centos8.local.lan:6379>
Obviamente, tras conectar la primera operación debería ser la de autenticación, para poder seguir trabajando con el servicio.
Conjunto Master/Replica de Redis en CentOS 8
Una posibilidad muy útil a la hora de montar servidores Redis en red es crear conjuntos Master/Replica (o Master/Slave, como se les denominaba anteriormente), de modo que un servidor secundario puede replicar toda la información que contiene un servidor principal.
En este ejemplo hemos preparado un servicio Redis sobre la máquina CentOS 8 con el nombre DNS centos8.local.lan. Ahora prepararemos otro servicio Redis sobre la máquina CentOS 8 con el nombre centos82.local.lan, de forma idéntica al anterior, sin almacenar datos. En la máquina que actuará como réplica editamos su archivo redis.conf en busca de estas dos directivas:
... # replicaof <masterip> <masterport> ... # masterauth <master-password> ...
En replicaof especificamos la dirección IP o nombre DNS del servidor principal o Master y el puerto de conexión, mientras que en masterauth especificamos la contraseña (si la tiene) de dicho servidor principal:
... replicaof centos8.local.lan 6379 ... masterauth XXXXXXXX ...
Una vez guardados los cambios, habrá que reiniciar solamente el servidor secundario o Replica, y el proceso de replicación comenzará de inmediato.
Si accedemos al servidor secundario con el cliente redis-cli, observaremos que ya se han transferido los datos existentes desde el servidor principal. Siguiendo con el ejemplo de este tutorial:
> get color "azul" >
De vuelta al servidor principal, creamos un nuevo par clave/valor:
> set ciudad "New York" OK >
Si regresamos al servidor secundario, el nuevo dato estará disponible de inmediato:
> get ciudad "New York" >
Conclusión
Ahora que sabes cómo instalar y configurar Redis en CentOS 8 ya puedes trabajar con este magnífico sistema de bases de datos de pares clave/valor en memoria, especialmente útil en el mundo del desarrollo de servicios web y de aplicaciones.
Si te ha quedado alguna duda o pregunta, tienes sugerencias para mejorar este tutorial, crees que necesita una actualización, o quieres notificar algún error, deja un comentario y lo reviso lo antes posible.
¡Apoya comoinstalar.me!
Si ya has conseguido hacer funcionar el servicio gracias a esta pequeña guía de instalación y configuración en tu propia máquina y te gustaría agradecérnoslo, puedes contribuir al mantenimiento de este sitio y la creación de más artículos y tutoriales dejando una propina de tan sólo 1 $ desde PayPal:
O, si te sientes especialmente agradecido, invitándonos a un café:
¡Gracias!