Redis es un almacén de estructura de datos en memoria de código abierto. Se puede usar como base de datos, caché y agente de mensajes, y admite varias estructuras de datos, como cadenas, hash, listas, conjuntos, etc. Redis proporciona alta disponibilidad a través de Redis Sentinel, incluido el monitoreo y las notificaciones. Conmutación automática por error. También proporciona particiones automáticas en varios nodos de Redis con Redis Cluster.
Este tutorial explica cómo instalar y configurar Redis en un servidor CentOS 7.
Requisitos previos #
Antes de comenzar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo.
Instalando Redis en CentOS 7 #
El paquete Redis no está incluido en los repositorios predeterminados de CentOS. Instalaremos la versión 5.0.2 de Redis desde el repositorio de Remi.
La instalación es bastante sencilla, solo siga los pasos a continuación:
-
Comience habilitando el repositorio de Remi ejecutando los siguientes comandos en su terminal SSH:
sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi
-
Instale el paquete Redis escribiendo:
sudo yum install redis
-
Una vez completada la instalación, inicie el servicio Redis y habilítelo para que se inicie automáticamente al arrancar con:
sudo systemctl start redis
sudo systemctl enable redis
Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.
Para verificar el estado del servicio ingrese el siguiente comando:
sudo systemctl status redis
Debería ver algo como lo siguiente:
● redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d └─limit.conf Active: active (running) since Sat 2018-11-24 15:21:55 PST; 40s ago Main PID: 2157 (redis-server) CGroup: /system.slice/redis.service └─2157 /usr/bin/redis-server 127.0.0.1:6379
Felicitaciones, en este momento tiene Redis instalado y ejecutándose en su servidor CentOS 7.
Configure Redis Remote Access #
De forma predeterminada, Redis no permite conexiones remotas. Puede conectarse al servidor de Redis solo desde 127.0.0.1 (host local), la máquina donde se ejecuta Redis.
Realice los siguientes pasos solo si desea conectarse a su servidor Redis desde hosts remotos. Si está utilizando una configuración de servidor único, donde la aplicación y Redis se ejecutan en la misma máquina, entonces no debe habilitar el acceso remoto.
Para configurar Redis para aceptar conexiones remotas, abra el archivo de configuración de Redis con su editor de texto:
sudo nano /etc/redis.conf
Localice la línea que comienza con bind 127.0.0.1
y agregue la dirección IP privada de su servidor después de 127.0.0.1
.
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1 192.168.121.233
Asegúrate de reemplazar 192.168.121.233
con su dirección IP. Guarde el archivo y cierre el editor.
Reinicie el servicio Redis para que los cambios surtan efecto:
sudo systemctl restart redis
Usa el siguiente ss
comando para verificar que el servidor Redis está escuchando en su interfaz privada en el puerto 6379
:
ss -an | grep 6379
Deberías ver algo como lo siguiente:
tcp LISTEN 0 128 192.168.121.233:6379 *:*
tcp LISTEN 0 128 127.0.0.1:6379 *:*
A continuación, deberá agregar una regla de firewall que habilite el tráfico de sus máquinas remotas en el puerto TCP 6379
.
Suponiendo que está utilizando FirewallD
para administrar su firewall y desea permitir el acceso desde el 192.168.121.0/24
subred, ejecutaría los siguientes comandos:
sudo firewall-cmd --new-zone=redis --permanent
sudo firewall-cmd --zone=redis --add-port=6379/tcp --permanent
sudo firewall-cmd --zone=redis --add-source=192.168.121.0/24 --permanent
sudo firewall-cmd --reload
Los comandos anteriores crean una nueva zona llamada redis
, abre el puerto 6379
y permite el acceso desde la red privada.
En este punto, el servidor Redis aceptará conexiones remotas en el puerto TCP 6379.
Asegúrese de que su firewall esté configurado para aceptar conexiones solo de rangos de IP de confianza.
Para verificar que todo esté configurado correctamente, puede intentar hacer ping al servidor Redis desde su máquina remota usando redis-cli
utilidad que proporciona una interfaz de línea de comandos a un servidor Redis:
redis-cli -h <REDIS_IP_ADDRESS> ping
El comando debe devolver una respuesta de PONG
:
PONG