Instalación y configuración de Redis en Centos 7

Sin duda Redis es uno de los productos más populares en lo que respecta a servicios de caché. Pero es mucho más. A nivel técnico podemos decir que es un proyecto de estructura de datos en memoria, que sigue la filosofía del código abierto. Implementa una base de datos distribuida de clave valor en memoria, con durabilidad opcional.

Redis admite diferentes tipos de estructura de datos abstracta, como cadenas, listas, mapas, conjuntos, conjuntos ordenados, mapas de bits, etcétera.

El proyecto está liderado por el desarrollador Salvatore Sanfilippo. Actualmente está patrocinado por Redis Labs y utiliza una licencia BSD

Instalación de Redis en Centos 7

Para el artículo vamos a utilizar Centos en su versión 7

En el artículo nos vamos a distanciar de otros tutoriales al uso y vamos a instalar la última versión estable, descangándola de la web oficial, que a fecha de hoy es la versión 5.0

Pero antes de nada actualizaremos el sistema e instalaremos las herramientas necesarias para poder compilar (recordar que en su día ya os hablé del grupo de paquetes llamado build-essential)

  1. sudo yum update
  2. sudo yum groupinstall "Development Tools"

La podéis descargar desde este enlace.

Y seguimos las instrucciones:

  1. $ wget http://download.redis.io/releases/redis-5.0.0.tar.gz
  2. $ tar xvf redis-5.0.0.tar.gz
  3. $ cd redis-5.0.0
  4. $ make
  5. $ make test
  6. $ sudo make install

Accedemos la carpeta «utils», para así ejecutar el script de instalación para Ubuntu:

  1. $cd utils
  2. $sudo ./install_server.sh

Los binarios los tenemos compilados en el directorio «src»

  1. src/redis-server

Una vez finalizado el proceso de instalación, el servicio queda con el nombre de «redis_6379«,el número se refiere al puerto que hemos definidio para el servicio.

Podemos comprobar su estado:

  1. [root@servcentos2 ~]# systemctl status redis_6379
  2. ● redis_6379.service - LSB: start and stop redis_6379
  3.    Loaded: loaded (/etc/rc.d/init.d/redis_6379; bad; vendor preset: disabled)
  4.    Active: active (running) since lun 2018-11-25 8:41:44 CET; 3min 6s ago
  5.      Docs: man:systemd-sysv-generator(8)
  6.   Process: 941 ExecStart=/etc/rc.d/init.d/redis_6379 start (code=exited, status=0/SUCCESS)
  7.     Tasks: 4
  8.    Memory: 7.8M
  9.    CGroup: /system.slice/redis_6379.service
  10.            └─975 /usr/local/bin/redis-server 127.0.0.1:6379
  11.  
  12. nov 26 08:41:44 servcentos1 redis_6379[941]: Starting Redis server...
  13. nov 26 08:41:44 servcentos1 systemd[1]: Starting LSB: start and stop redis_6....
  14. nov 26 08:41:44 servcentos1 systemd[1]: Started LSB: start and stop redis_6379.
  15. Hint: Some lines were ellipsized, use -l to show in full.

Podemos comprobar que efectivamente se encuentra escuchando por el puerto correspondiente:

  1. [root@servcentos1 ~]# lsof -i :6379
  2. COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
  3. redis-ser 975 root    6u  IPv4  25664      0t0  TCP localhost:6379 (LISTEN)

Configurar el servidor Redis para acceso remoto

Por defecto no está habilitado para escuchar las peticiones de servidores remotos. Para cambiar esto debemos modificar el fichero de configuración «/etc/redis/6379.conf» y modificar la siguiente línea:

  1. # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
  2. # JUST COMMENT THE FOLLOWING LINE.
  3. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4. bind 127.0.0.1 ip-que-queramos-añadir

Una vez hecho esto sólo guardamos los cambios y salimos.

Para que estos cambios sean efectivos debemos reiniciar el servicio:

  1. systemctl restart redis_6379

Si tenemos el cortafuegos habilitado en el host debemos abrir dicho puerto:

  1. firewall-cmd --permanent --add-port=6379/tcp
  2. firewall-cmd --reload

Si no tenemos el cortafuegos habilitado podemos obviar esta parte.

Espero que esta entrada os pueda ser de utilidad en algún momento.

Nos vamos leyendo.