Replicación maestro-esclavo de Redis y documentación de compilación del modo centinela

Una, replicación maestro-esclavo

Replicación maestro-esclavo: la replicación maestro-esclavo es la base de Redis de alta disponibilidad. Sentinel y los clústeres se basan en la replicación maestro-esclavo para lograr una alta disponibilidad. La replicación maestro-esclavo implementa principalmente la copia de seguridad de datos de varias máquinas, así como el equilibrio de carga y la recuperación de fallas simple para operaciones de lectura. Defectos: la recuperación de errores no se puede automatizar: las operaciones de escritura no se pueden equilibrar la carga; la capacidad de almacenamiento está limitada por una sola máquina.

Anfitrión dirección IP Paquete de software
Nodo maestro 192.168.199.40 redis-5.0.7.tar.gz
Nodo esclavo1 192.168.199.50 redis-5.0.7.tar.gz
Nodo esclavo2 192.168.199.60 redis-5.0.7.tar.gz
systemctl stop firewalld
setenforce 0

Instalar Redis

[Configuración y optimización de NoSQL Redis]

Modificar el archivo de configuración de Redis (nodo maestro)

vim /etc/redis/6379.conf
bind 0.0.0.0                        #70,修改监听地址为0.0.0.0
daemonize yes                       #137行,开启守护进程
logfile /var/ log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379             #264行,指定工作目录
appendonly yes                      #700行,修改为yes开启AOF持久化功能

/etc/init.d/redis_6379 restart

Modificar el archivo de configuración de Redis (nodo esclavo)

vim /etc/redis/6379.conf
bind 0.0.0.0                       #70行,修改监听地址为0.0.0.0
daemonize yes                      #137行,开启守护进程
logfile /var/log/redis_6379.log    #172行,指定日志文件目录
dir /var/lib/redis/6379            #264行,指定工作目录
replicaof 192.168.199.40 6379      #288行,指定要同步的Master节点IP和端口
appendonly yes                     #700行,开启AOF持久化功能

/etc/init.d/redis_6379 restart

Verificar el efecto maestro-esclavo

Mire el registro en el nodo maestro

tail -f /var/log/redis_6379.log 

Inserte la descripción de la imagen aquí

Verifique el nodo esclavo en el nodo maestro

redis-cli info replication

Inserte la descripción de la imagen aquí

En segundo lugar, construye el modo centinela de Redis

El inicio del centinela depende del modo maestro-esclavo, por lo que debe instalar el modo maestro-esclavo antes de pasar al modo centinela. Todos los nodos deben implementar el modo centinela. El modo centinela controlará si todos los nodos de trabajo de Redis son normales . Cuando aparece el Maestro Cuando hay un problema, porque otros nodos han perdido el contacto con el nodo maestro, votarán. Más de la mitad de los votos se considera que hay un problema con este Maestro, y luego la sala de guardia será notificado, y luego uno de los esclavos será seleccionado como el nuevo maestro.

systemctl stop firewalld
setenforce 0

Modificar el archivo de configuración del modo centinela de Redis (todos los nodos)

vim /opt/redis-5.0.7/sentinel.conf
protected-mode no                                    #17行,关闭保护模式
port 26379                                           #21行,Redis哨兵默认的监听端口
daemonize yes                                        #26行,指定sentinel为后台启动
logfile "/var/1og/sentinel.log"                      #36行,指定日志存放路径
dir "/var/lib/redis/6379"                            #65行,指定数据库存放路径
sentinel monitor mymaster 192. 168.199.40 6379 2     #84行,修改,指定该哨兵节点监控192.168.199.40:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2
个哨兵节点同意,才能判定主节点故障并进行故障转移
sentinel down-after-milliseconds mymaster 3000       #113行,判定服务器down掉的时间周期,默认30000毫秒(30 )
sentinel failover-timeout mymaster 180000            #146行,故障节点的最大超时时间为180000 (180)

Activar el modo centinela

Empezar maestro primero, luego esclavo

cd /opt/redis-5.0.7/ 
redis-sentinel sentinel.conf &

Inserte la descripción de la imagen aquí

Ver información centinela

redis-cli -p 26379 info sentinel

Inserte la descripción de la imagen aquí

Simulación de fallas

Ver el número de proceso del servidor de redis

ps -ef | grep redis

Inserte la descripción de la imagen aquí

Elimine el ID de proceso del servidor redis en el nodo maestro

kill -9 8503     #Master节点上redis-server的进程号

Inserte la descripción de la imagen aquí

redis-cli -p 26379 info sentinel

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Tres, crea un clúster de Redis

En términos generales, un clúster de redis requiere 6 nodos, 3 maestros y 3 esclavos.
Para mayor comodidad, aquí todos los nodos se simulan en el mismo servidor: se
distinguen por números de puerto:
3 números de puerto de nodo maestro: 6000/6001/6002, y los números de puerto de nodo esclavo correspondientes: 6004/6003/6005.

cd /etc/redis/
mkdir -p redis-cluster/redis600{
    
    0..5}

for w in {
    
    0..5}
do
cp /opt/redis-5.0.7/redis.conf  /etc/redis/redis-cluster/redis600$w
cp /opt/redis-5.0.7/src/redis-cli /opt/redis-5.0.7/src/redis-server /etc/redis/redis-cluster/redis600$w
done

Inserte la descripción de la imagen aquí

Encienda la función de clúster

其他5个文件夹的配置文件以此类推修改,注意6个端口都要不一样。
vim /etc/redis/redis-cluster/redis6000/redis.conf

#bind 127.0.0.1                       #69行,注释掉bind项,默认监听所有网卡
protected-mode no                     #88行,修改,关闭保护模式
port 6000                             #92行,修改,redis 监听端口,
daemonize yes                         #136行,开启守护进程,以独立进程启动
appendonly yes                        #700行,修改,开启AOF持久化
cluster -enabled yes                  #832行,取消注释,开启群集功能
cluster-config-file nodes-6379.conf   #840行,取消注释,群集名称文件设置
cluster-node-timeout 15000            #846行,取消注释群集超时时间设置

Inserte la descripción de la imagen aquí

Inicie el nodo redis

分别进入那六个文件夹,执行命令: redis-server redis.conf,来启动redis节点
cd /etc/redis/redis-cluster/redis6000
redis-server redis.conf
(或使用for循环来启动)
for i in {
    
    0..5}
do
cd /etc/redis/redis-cluster/redis600$i
redis-server redis.conf
done

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

ps -ef | grep redis

Iniciar el clúster

redis-cli --cluster create 127.0.0.1:6000 127.0.0.1:6001 127.0.0.1:6002 127.0.0.1:6002 127.0.0.1:6003 127.0.0.1:6004 127.0.0.1:6005 --cluster-replicas 1

# Las seis instancias se dividen en tres grupos, cada grupo tiene un maestro y un esclavo, el frente es el nodo maestro y la parte posterior es el nodo esclavo. Debe ingresar sí para crear la siguiente interacción.
-Replicas 1 significa que cada nodo maestro tiene 1 nodo esclavo.

Inserte la descripción de la imagen aquí

redis-cli -p 6000 -c         #加-c参数,节点之间就可以互相跳转	
cluster slots			     #查看节点的哈希槽编号范围

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_51614581/article/details/114581884
Recomendado
Clasificación