Modo maestro-esclavo y centinela de Redis

Modo maestro-esclavo

Aunque Redis lee y escribe muy rápido, también produce una situación en la que la presión de lectura es extremadamente alta. Para compartir la presión de lectura, aunque Redis lee y escribe muy rápido, también produce una situación en la que la presión de lectura es extremadamente alta. Para compartir la presión de lectura, la arquitectura puede adoptar una estructura maestro-esclavo múltiple o en cascada. La replicación maestro-esclavo de Redis se puede dividir en sincronización completa y sincronización incremental según esté completa.

El propósito de la replicación maestro-esclavo

Para copiar los datos en la base de datos primaria a la base de datos secundaria, para asegurar la consistencia de la base de datos primaria y la base de datos secundaria, de modo que el cliente lea indistintamente de las bases de datos primaria y secundaria, lo que puede ayudar a la base de datos primaria a reducir la presión de carga y resuelva el punto único de falla.

Sincronización completa

La replicación completa de Redis generalmente ocurre en la fase de inicialización del esclavo, en este momento el esclavo necesita copiar todos los datos en el maestro. Los pasos específicos son los siguientes:

El servidor esclavo se conecta al servidor maestro y envía el comando de sincronización como,
después de recibir el nombre de SYNC, el servidor maestro comienza a ejecutar el comando BGSAVE para generar el archivo RDB y utiliza la memoria intermedia para registrar todos los comandos de escritura ejecutados a partir de entonces Después de la.
Servidor maestro BGSAVE se ha ejecutado, envía el archivo de instantánea a todos los servidores esclavos, y continúa registrando los comandos de escritura ejecutados durante el envío;
descarta todos los datos antiguos después de recibir el archivo de instantánea del servidor y carga la instantánea recibida; el
servidor maestro comienza a enviar los comandos de escritura en el búfer al servidor esclavo después de que se envía la instantánea;
el servidor esclavo termina de cargar la instantánea, comienza a recibir solicitudes de comando y ejecuta el comando de escritura desde el búfer del servidor maestro.

Sincronización incremental

La replicación incremental de Redis se refiere al proceso de sincronizar las operaciones de escritura desde el servidor maestro al servidor esclavo cuando el esclavo se inicializa y comienza a funcionar normalmente.

El proceso de replicación incremental consiste principalmente en que el servidor maestro envía el mismo comando de escritura al servidor esclavo cada vez que ejecuta un comando de escritura, y el servidor esclavo recibe y ejecuta el comando de escritura recibido.

Despliegue maestro-esclavo

Inserte la descripción de la imagen aquí
1. Apague el firewall

systemctl stop firewalld  
setenforce 0

2. Cargue el paquete de instalación redis-5.0.4.tar.gz
3. Descomprima, configure e instale

tar zxvf redis-5.0.4.tar.gz   
cd redis-5.0.4/
make
make DREFIX=/usr/local/redis install

4. Crea un vínculo

ln -s /usr/local/redis/bin/* /usr/local/bin/

5. Ejecute el script

cd redis-5.0.4/utils/
./install_server.sh

6. Modifique el archivo de configuración

vi /etc/redis/6379.conf 

(Es necesario modificar los nodos maestro y esclavo)

Número de líneas contenido Descripción
69 0.0.0.0 Dirección de escucha
136 demonizar sí Inicie el demonio
171 archivo de registro /var/log/redis_6379.log Modificar el directorio del archivo de registro
263 dir / var / lib / redis / 6379 Modificar directorio de trabajo
699 solo si Habilitar la función de persistencia AOF

(nodo esclavo)
línea 287

replicaof 20.0.0.11 6379

Inserte la descripción de la imagen aquí
Reiniciar

/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start

Ver registro

tail -20 /var/log/redis_6379.log

Inserte la descripción de la imagen aquí
Verifique el nodo esclavo
Inserte la descripción de la imagen aquí
en el maestro Establezca un número en el maestro para
Inserte la descripción de la imagen aquí
verlo en el esclavo.
Inserte la descripción de la imagen aquí

Modo centinela

Principios del modo centinela

El centinela es un sistema distribuido que se utiliza para monitorear cada servidor en la estructura maestro-esclavo.Cuando ocurre una falla, se selecciona un nuevo maestro a través de un mecanismo de votación y todos los esclavos se conectan al nuevo maestro. Por lo tanto, el número de centinelas en ejecución del clúster completo no debe ser inferior a 3 nodos.

El papel del modo centinela
① Supervisión
Compruebe continuamente si el maestro y el esclavo funcionan con normalidad.
Detección de supervivencia del maestro, detección del estado de funcionamiento del maestro y del esclavo

② Notificación (recordatorio)
Cuando hay un problema con el servidor monitoreado, envíe una notificación a otro (sala centinela, cliente).

③ Conmutación por error automática
Desconecte el maestro y el esclavo, seleccione un esclavo como maestro, conecte otros esclavos al nuevo maestro e informe al cliente de la nueva dirección del servidor

El centinela también es un servidor redis, pero no proporciona servicios de datos
. El inicio del centinela depende del modo maestro-esclavo, por lo que el modo centinela debe instalarse después de instalar el modo maestro-esclavo. El modo centinela debe ser implementado en todos los nodos. El modo centinela supervisará si todos los nodos de redis en funcionamiento son normales. Cuando hay un problema con el maestro, porque otros nodos pierden contacto con el nodo maestro, votarán. Después de más de la mitad de la votación, se considera que hay un problema con el maestro, y luego se notificará a la sala de centinelas, y luego se seleccionará entre los esclavos Uno como el nuevo maestro

Implementación del modo centinela

Implementar sobre una base maestro-esclavo

Modificar el sentinel.confarchivo de configuración

vi redis-5.0.4/sentinel.conf
Número de líneas antes de arreglar Después de la modificación Descripción
17 # modo protegido no modo protegido no Desactivar el modo de protección
26 demonizar no demonizar sí Especificar centinela para comenzar en segundo plano
36 archivo de registro "" archivo de registro "/var/log/sentinel.log" Archivo de registro
sesenta y cinco dir / tmp dir / var / lib / redis / 6379 Ruta de datos

Al menos algunos centinelas en la línea 84 detectan que el servidor principal está defectuoso y luego se realizará la conmutación por error.

sentinel monitor mymaster 20.0.0.11 6379 2 

La línea 113 determina el período de tiempo en el que el servidor está inactivo, el valor predeterminado es 30000 milisegundos (30 segundos)

sentinel down-after-milliseconds mymaster 3000

El tiempo de espera máximo para la sección de falla en la línea 146 es 180000 (180 segundos)

sentinel failover-timeout mymaster 100000

Copie el archivo de configuración de arriba

scp redis-5.0.4/sentinel.conf [email protected]:/root/redis-5.0.4
scp redis-5.0.4/sentinel.conf [email protected]:/root/redis-5.0.4

Empezar maestro primero, luego esclavo

redis-sentinel redis-5.0.4/sentinel.conf &

Ver información centinela

redis-cli -h 20.0.0.11 -p 26379 info Sentinel

Inserte la descripción de la imagen aquí
Ver archivos de registro
Inserte la descripción de la imagen aquí

Prueba del modo centinela

ps -ef | grep redis

Inserte la descripción de la imagen aquí
Elimine el ID de proceso del servidor de redis en el maestro

Inserte la descripción de la imagen aquí
Ver información centinela

redis-cli -h 20.0.0.11 -p 26379 info Sentinel

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_50345511/article/details/111355151
Recomendado
Clasificación