Sincronización maestro-esclavo de la solución de alta disponibilidad de Redis
Prefacio
Este entorno se basa en el sistema Centos 7.8 para crear un entorno de aprendizaje de Redis. Para
una construcción específica, consulte Redis-5.0.9 Implementación del entorno
Redis viene con una función de sincronización maestro-esclavo para resolver el problema de la redundancia de la base de datos, y la configuración es relativamente simple. A continuación te presentaré en detalle
El papel de la replicación maestro-esclavo
- Redundancia de datos: la replicación maestro-esclavo realiza una copia de seguridad en caliente de los datos, que es un método de redundancia de datos además de la persistencia.
- Recuperación de fallas: cuando el nodo maestro tiene un problema, el nodo esclavo puede proporcionar servicios para lograr una recuperación rápida de fallas; de hecho, es una especie de redundancia de servicio.
- Equilibrio de carga: sobre la base de la replicación maestro-esclavo, con la separación de lectura y escritura, el nodo maestro puede proporcionar el servicio de escritura y el nodo esclavo proporciona el servicio de lectura (es decir, la aplicación se conecta al nodo maestro al escribir Redis datos y la aplicación se conecta al nodo esclavo al leer datos de Redis), comparta la carga del servidor; especialmente en el escenario de escribir menos y leer más, compartir la carga de lectura entre varios nodos esclavos puede aumentar en gran medida la simultaneidad del servidor Redis.
- Separación de lectura y escritura: se puede utilizar para realizar la separación de lectura y escritura. La biblioteca principal escribe y lee de la biblioteca. La separación de lectura y escritura no solo puede aumentar la capacidad de carga del servidor, sino también cambiar el número de bibliotecas esclavas según cambios en la demanda;
- La piedra angular de la alta disponibilidad: además de las funciones anteriores, la replicación maestro-esclavo también es la base para la implementación de centinelas y clústeres, por lo que la replicación maestro-esclavo es la base para la alta disponibilidad de Redis.
Proceso de replicación maestro-esclavo
Proceso de replicación maestro-esclavo de Redis:
- El esclavo establece conexión con el maestro y envía un comando de sincronización
- El maestro iniciará un proceso en segundo plano para guardar la instantánea de la base de datos en un archivo, y el proceso maestro maestro comenzará a recopilar nuevos comandos de escritura y almacenarlos en caché.
- Después de guardar en segundo plano, envíe este archivo al esclavo
- El esclavo guarda este archivo en el disco duro
Proceso completo de sincronización de datos maestro-esclavo
Un maestro puede tener varios esclavos y un esclavo puede tener varios esclavos. De esta manera, se forma una poderosa arquitectura de clúster de servidores multinivel
Preparación ambiental
papel | nodo | ip | Versión Redis |
---|---|---|---|
Servidor principal | reids-yum | 192.168.5.11 | Redis-5.0.9 |
Servidor esclavo | reids_source_code | 192.168.5.12 | Redis-5.0.9 |
Configuración del servidor principal
[root@reids-yum ~]# vim /etc/redis.conf
bind 192.168.5.11
[root@reids-yum ~]# systemctl restart redis
Configurar desde el servidor
[root@reids_source_code ~]# vim /etc/redis/redis.conf
bind 192.168.5.12
replicaof 192.168.5.11 6379
[root@reids_source_code ~]# systemctl restart redis
Ver estado de sincronización maestro-esclavo
Master-
esclavo
prueba el efecto de sincronización maestro-esclavo
# 主写入数据
192.168.5.11:6379> set name wan
OK
192.168.5.11:6379> set age 20
OK
192.168.5.11:6379> get gender
"man"
# 从查看写入
192.168.5.12:6379> keys *
1) "gender"
2) "age"
3) "name"
192.168.5.12:6379> mget name age gender
1) "wan"
2) "20"
3) "man"
# 主删除数据
192.168.5.11:6379> del age
(integer) 1
# 从查看数据
192.168.5.12:6379> keys *
1) "gender"
2) "name"
¡La configuración de sincronización maestro-esclavo es exitosa! ! !