En esta entrada vamos a ver cómo instalar Redis en CentOS 7 paso a paso, de modo que al final de esta guía puedas montar esta veloz base de datos clave/valor en memoria para las aplicaciones web de tu servidor o VPS CentOS.
Contenido
Antes de instalar Redis en CentOS 7
Si te interesa seguir esta guía de instalación de Redis en CentOS 7 al menos deberías satisfacer estos requisitos antes de continuar:
- Un sistema CentOS 7 actualizado.
- Una cuenta de usuario con permisos de sudo, o acceso como root.
- Conexión a Internet.
Cómo instalar Redis en CentOS 7
Para instalar Redis en CentOS 7 debemos valernos de repositorios auxiliares, ya que no encontraremos paquetes en el repositorio de la distribución, y los paquetes del repositorio EPEL están obsoletos.
Instalaremos el repositorio Remi en un instante para tener paquetes de Redis actualizados:
~$ sudo yum install -y epel-release yum-utils ~$ sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm ~$ sudo yum-config-manager --enable remi ~$ sudo yum update -y
Ahora ya disponemos de una versión estable y reciente de Redis. El paquete que buscamos se llama igual, redis, así que vamos a instalarlo con yum:
~$ sudo yum install -y redis
Tras la descarga e instalación de Redis en CentOS 7 se crea un nuevo servicio llamado redis.service o redis. Por defecto el servicio Redis no está en ejecución y tampoco está habilitado para iniciar automáticamente junto a CentOS 7.
Para iniciar el servicio redis utilizaremos el comando systemctl:
~$ sudo systemctl start redis
Si además queremos que Redis arranque en cada inicio de CentOS 7 debemos también habilitar el servicio:
~$ sudo systemctl enable redis
Podemos comprobar en cualquier momento el estado del nuevo servicio Redis con el comando systemctl status redis
:
En la información del estado del servidor Redis podemos comprobar que está a la escucha en el puerto 6379 de la interfaz loopback.
Versión instalada
En cualquier momento puedes consultar la versión del servicio Redis instalado en CentOS 7 con el comando redis-server:
~$ redis-server -v Redis server v=6.0.4 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=290e694a4c1db7f3
Instalar el cliente
En CentOS 7 el paquete redis incluye tanto el servidor como el cliente de consola redis-cli. Si sólo necesitas el cliente, puedes instalar el paquete redis pero no activar el servicio.
Cómo conectar a Redis en CentOS 7
Para probar las conexiones a Redis empezaremos probando localmente con el cliente de consola redis-cli sin necesidad de argumentos.
~$ redis-cli
Inmediatamente cambiará el prompt indicando la dirección IP y el puerto al que estamos conectados, y podremos probar la conectividad:
127.0.0.1:6379> ping PONG 127.0.0.1:6379> set nieve snow OK 127.0.0.1:6379> exit ~$
Funciona perfectamente.
Cómo configurar Redis en CentOS 7
Para configurar Redis en CentOS 7 debemos editar su archivo de configuración, redis.conf, que se encuentra como es de esperar en la carpeta /etc/.
Establecer una contraseña de acceso
En las pruebas anteriores hemos visto que el servicio es accesible sin ningún tipo de autenticación. Es posible que te interese establecer el acceso mediante contraseña. Para ello editamos redis.conf:
~$ sudo nano /etc/redis.conf
La directiva que debemos buscar es requirepass:
... # requirepass foobared ...
Hay que recordar que Redis es un servicio en memoria, por lo que debido a la velocidad de acceso un ataque por fuerza bruta tendrá éxito rápidamente si la fuerza de la clave es mediocre. Dicho esto, descomentamos la directiva y le asignamos el valor adecuado:
... requirepass XXXXXXXX ...
Guardados los cambios, reiniciamos el servicio:
~$ sudo systemctl restart redis
Ahora, aunque podemos conectar al servicio, no es posible trabajar sin autenticación:
~$ redis-cli 127.0.0.1:6379> get nieve (error) NOAUTH Authentication required. 127.0.0.1:6379>
Para autenticarnos, enviamos el comando auth junto con la contraseña de acceso:
127.0.0.1:6379> auth XXXXXXXX OK 127.0.0.1:6379> get nieve "snow" 127.0.0.1:6379>
Permitir conexiones remotas
Acabamos de ver que Redis por defecto sólo atiende conexiones en la interfaz de bucle o loopback, por lo que si queremos permitir conexiones desde la red necesitaremos habilitarlas en la configuración.
Para ello editaremos el archivo redis.conf y en esta ocasión buscaremos la directiva bind, que se encarga de especificar en qué interfaces espera conexiones Redis:
... bind 127.0.0.1 ...
Tal como se podía imaginar está configurada para la dirección 127.0.0.1 de la interfaz loopback. Puedes añadir a continuación la dirección IP de la interfaz con la que CentOS 7 conecta a la red:
... bind 127.0.0.1 192.168.0.102 ...
Tras guardar los cambios y cerrar el archivo hay que reiniciar el servicio redis para aplicar estos ajustes de configuración:
~$ sudo systemctl restart redis
Configuración del firewall de CentOS 7 para Redis
Si queremos permitir conexiones externas a Redis, además de la configuración del propio servicio debemos realizar la del firewall de CentOS 7.
Tenemos que permitir las conexiones al puerto 6379 TCP, así que añadiremos la excepción correspondiente a la configuración del firewall. Como no suele tratarse de un servicio de ámbito general, sino más bien restringido, podemos crear su propia zona e ir añadiendo las direcciones de clientes que deseemos que puedan conectar:
~$ sudo firewall-cmd --permanent --new-zone=redis
Añadiremos el puerto de Redis en la nueva zona:
~$ sudo firewall-cmd --permanent --zone=redis --add-port=6379/tcp
Y sólo queda añadir las direcciones IP de las máquinas a las que se permita la conexión:
~$ sudo firewall-cmd --permanent --zone=redis --add-source=XXX.XXX.XXX.XXX
Una vez que terminemos de añadir las direcciones, deberemos recargar la configuración del firewall para que haga efecto:
~$ sudo firewall-cmd --reload
Conexiones remotas
Con la configuración adecuada de Redis y del firewall de CentOS 7, conectaremos desde otra máquina con el cliente Redis instalado. Pero esta vez el comando redis-cli debe llevar el parámetro -h para indicar la dirección IP o dominio del servidor CentOS 7 en el que hemos instalado el servicio Redis:
~$ redis-cli -h centos7.local.lan
Hemos usado el dominio del servidor CentOS 7, por lo que al cambiar el prompt aparecerá este dominio y el puerto de conexión. Ahora podemos comprobar la respuesta del servidor e incluso recuperar la clave que creamos antes:
centos7.local.lan:6379> auth XXXXXXXX OK centos7.local.lan:6379> ping PONG centos7.local.lan:6379> get nieve "snow" centos7.local.lan:6379> exit ~$
Y funciona tal y como cabría desear.
Conclusión
Ahora que ya sabes cómo instalar y configurar Redis en CentOS 7 puedes incoporar este rápido motor de bases de datos en memoria para tus desarrollos o aplicaciones que lo requieran en tu servidor o VPS CentOS.
En caso de dudas, preguntas, sugerencias, etc. puedes dejar un comentario (si es para anunciar algún tipo de fármaco para hombre, ahórratelo, ya que todavía estamos en edad de no necesitarlos).
¡Apoya comoinstalar.me!
¿Has conseguido montar tu propio servicio gracias a esta pequeña guía de instalación y configuración? ¡Estupendo! Si además quieres agradecérnoslo, cualquier mínima contribución con el mantenimiento del sitio y elaboración de más guías y tutoriales es bien recibida.
Puedes ayudarnos dejando una propina de tan sólo 1 $ en PayPal:
O, si te sientes especialmente agradecido, puedes invitarnos a un café:
¡Gracias!