Cómo instalar Redis en CentOS 7

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.

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:

como instalar redis en centos 7

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!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario