⚠️ Nota: La réplica maestro-esclavo no implica un clúster distribuido; Redis Cluster es una solución distinta que soporta particionamiento automático. Sin embargo, la réplica sigue siendo clave para alta disponibilidad y respaldo de datos.
Instalación manual de Redis 7.2.3
Los siguientes pasos se ejecutan idénticamente en los tres servidorse:
# 1. Descargar el código fuente oficial
curl -o ~/redis-7.2.3.tar.gz https://download.redis.io/releases/redis-7.2.3.tar.gz
# 2. Descomprimir y organizar
tar -xzf ~/redis-7.2.3.tar.gz
sudo mv ~/redis-7.2.3 /usr/local/redis-src
# 3. Verificar dependencias de compilación
if ! command -v gcc > /dev/null; then
sudo yum install -y gcc make tcl
fi
# 4. Compilar e instalar binarios
cd /usr/local/redis-src
make
sudo make PREFIX=/usr/local/redis install
# 5. Crear directorio de configuración y datos
sudo mkdir -p /etc/redis /var/lib/redis
sudo chown -R $USER:$USER /etc/redis /var/lib/redis
Configuración del nodo maestro (192.168.31.55)
Editar /etc/redis/redis-master.conf:
port 6379
bind 0.0.0.0
requirepass "Secur3P@ss"
daemonize yes
protected-mode no
tcp-backlog 511
timeout 0
tcp-keepalive 300
# Réplica: ajustes para el nodo principal
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-ping-replica-period 10
repl-timeout 60
repl-disable-tcp-nodelay no
repl-backlog-size 1mb
repl-backlog-ttl 3600
# Persistencia
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /var/lib/redis
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
Configuración de los nodos esclavos (192.168.31.56 y 192.168.31.57)
Crear /etc/redis/redis-slave.conf con los siguientes valores (idéntico en ambos esclavos):
port 6379
bind 0.0.0.0
daemonize yes
protected-mode no
tcp-backlog 511
timeout 0
tcp-keepalive 300
# Réplica: conexión al maestro
replicaof 192.168.31.55 6379
masterauth "Secur3P@ss"
replica-read-only yes
repl-diskless-sync no
repl-ping-replica-period 10
repl-timeout 60
# Persistencia (opcional, pero recomendado para resiliencia)
save 900 1
appendonly yes
appendfilename "appendonly-slave.aof"
dir /var/lib/redis
Iniciar los servicios
Ejecutar en cada servidor respectivo:
# En el maestro (192.168.31.55)
/usr/local/redis/bin/redis-server /etc/redis/redis-master.conf
# En cada esclavo (192.168.31.56 y 192.168.31.57)
/usr/local/redis/bin/redis-server /etc/redis/redis-slave.conf
Verificación de estado
Conectarse al maestro y consultar métricas de réplica:
/usr/local/redis/bin/redis-cli -h 192.168.31.55 -p 6379 -a "Secur3P@ss" \
-c INFO replication | grep -E "(role|connected_slaves|master_replid)"
Salida esperada:
role:master
connected_slaves:2
master_replid:8a1b2c3d4e5f67890...
También se puede validar desde un esclavo:
/usr/local/redis/bin/redis-cli -h 192.168.31.56 -p 6379 -a "Secur3P@ss" \
-c INFO replication | grep -E "(role|master_host|master_link_status)"
Resultado típico:
role:replica
master_host:192.168.31.55
master_link_status:up
Una vez confirmados estos estados, la topología de réplica está operativa y lista para uso en antornos prodcutivos.