Cómo configurar la replicación Redis (con modo de clúster en discapacitado) en CentOS 8 - Parte 1

Cómo configurar la replicación Redis (con modo de clúster en discapacitado) en CentOS 8 - Parte 1

Rehacer (Servidor de diccionario remoto) es un código abierto muy popular y ampliamente utilizado, servidor de datos de datos de valor de clave rápida, distribuida y eficiente en memoria.

Ofrece un rico conjunto de características que lo hacen efectivo para una amplia gama de casos de uso: como base de datos, capa de almacenamiento en caché, corredor de mensajes o cola; aplicable en aplicaciones web, aplicaciones de chat y mensajería, juegos, análisis de datos en tiempo real y mucho más.

Admite estructuras de datos flexibles, replicación asíncrona maestra de esclavo para escalar el rendimiento de lectura y proteger contra la pérdida de datos, fragmentación del lado del cliente para escalar el rendimiento de escritura, dos formas de persistencia para escribir datos en memoria en el disco en un formato compacto, agrupar, y y fraccionamiento. También presenta fallas automáticas para la implementación de alta disponibilidad a través de Redis Sentinel, Lua Scripting, actas, y muchos más.

Ser un Sin SQL o base de datos no relacional, Rehacer ofrece algunos beneficios de rendimiento sobre los sistemas de bases de datos tradicionales (como Mysql/mariadb, Postgresql, etc.), porque todos sus datos residen o se almacenan en la memoria, lo que lo hace fácilmente accesible para una aplicación, mientras que las bases de datos tradicionales tienen que escribir todos los datos o leer desde el disco o una fuente externa.

Rehacer se ha convertido en una opción cada vez más frecuente para el almacenamiento en caché, lo que permite la reutilización de los datos en caché (almacenados dentro del espacio de memoria principal de una aplicación) en lugar de consultar siempre una base de datos para datos utilizados con frecuencia. Entonces es un compañero fantástico de RDMS (Sistemas de gestión de bases de datos relacionales) para mejorar el rendimiento de la aplicación.

En esta tres partes Rehacer Serie tutorial, cubriremos cómo configurar y usar algunas de las características clave de Redis que son replicación, alta disponibilidad utilizando Redis Sentinel y Racimo de redis, Los artículos son:

Parte 1: Cómo configurar la replicación Redis (con modo de clúster en discapacitado) en CentOS 8 Parte 2: Cómo configurar Redis para alta disponibilidad con Sentinel en Centos 8 Parte 3: Cómo configurar un clúster redis (con modo de clúster habilitado) en CentOS 8

Esta guía muestra cómo configurar Replicación de Redis (con Modo de clúster discapacitado) en Centos 8 Linux, incluyendo cómo instalar redis, configurar el maestro y las réplicas, y probar la replicación.

Importante: A Racimo de redis (i.E A Clúster de replicación) con el modo de clúster deshabilitado tiene un solo grupo de nodos (e.G A maestro y una o dos réplicas) donde un clúster redis con modo de clúster habilitado puede constar de dos o más grupos de nodos (E.g tres maestros cada uno con esclavos o dos).

Prerrequisitos:

  1. Servidores con instalación de CentOS 8

Configuración del entorno de prueba

Redis Master Server: 10.42.0.247 Redis Replica1/Slave1: 10.42.0.21 Redis Replica2/Slave2: 10.42.0.34 
Representación lógica del diagrama de replicación de Redis

Con la configuración anterior (que tiene un solo nodo primario/maestro de lectura/escritura y 2 nodos de réplica de solo lectura), tenemos un grupo de nodo único que contiene todos los datos del clúster en cada nodo. Una vez que un esclavo se conecta a un maestro, recibe una copia inicial de la base de datos completa y cualquier dato que existiera previamente en el esclavo se descartará.

Además, un cliente solo puede escribir al maestro pero leer desde cualquier nodo en el clúster. Y como se realizan escrituras en el maestro, se propagaron a todos los esclavos conectados para actualizar los conjuntos de datos de esclavos en tiempo real.

Paso 1: Instalar redis en Centos 8

1. Para empezar, inicie sesión en todo el Centos 8 nodos a través de SSH, luego instale el Rehacer Paquete en todos los nodos (maestro y réplicas) utilizando el administrador del paquete DNF como se muestra.

# instalación dnf @redis 

2. Al finalizar el Rehacer Instalación de paquetes, inicie el Rehacer servicio, habilite que comience automáticamente en cada arranque del sistema y verifique si está en funcionamiento de la siguiente manera.

# SystemCTL Start Redis # SystemCTL Habilitar Redis # SystemCTL Status Redis 

3. También puedes confirmar que el Rehacer El servidor está en funcionamiento revisando los puertos de escucha utilizando el comando SS, de la siguiente manera.

# ss -ltpn | GREP REDIS-SERVER 
Confirmar los puertos del servidor Redis

Paso 2: Configuración de Redis Master Server

4. Redis está configurado utilizando el /etc/redis.confusión Archivo de configuración, un archivo de configuración de ejemplo autodocumentado. Primero, cree una copia de seguridad del archivo original, luego ábralo para editar usando su editor de línea de comandos de elección.

# CP /ETC /REDIS.conf /etc /redis.confusión.org # VI /etc /Redis.confusión 

5. Por defecto, un Rehacer La instancia está configurada para escuchar y aceptar conexiones en el bucleza interfaz, utilizando la directiva de enlace. Para comunicarse con las réplicas, el maestro debe configurarse para escuchar en el IPv4 Dirección de backback y su dirección IP de LAN I.mi 10.42.0.247.

atar 127.0.0.1 10.42.0.247 

6. A continuación, configure el parámetro de modo protegido en No para permitir la comunicación con las réplicas como se muestra.

Modo protegido NO 

Además, Redis escucha en el puerto 6379 que se establece usando el puerto directiva. Este es el puerto de datos para comunicarse con API de aplicaciones o clientes CLI.

Puerto 6379 
Configuración de Redis Master Server

7. Para asegurar opcionalmente el maestro-replica comunicaciones, podemos proteger al maestro usando el requería Directiva, para que los clientes/réplicas tengan que emitir una contraseña de autenticación antes de ejecutar cualquier comando o comenzar un proceso de sincronización de replicación, de lo contrario, el maestro rechazará la solicitud del cliente/réplica (recuerde establecer una contraseña segura).

Usaremos la siguiente opción para fines de demostración, para mostrar cómo funciona.

RequastEpass [correo electrónico protegido] 
Establecer contraseña de autenticación

8. Además, los registros de Redis se almacenan en el /var/log/redis/redis.registro archivo, esto se establece utilizando el archivo de registro Directiva y el nivel de verbosidad del servidor predeterminado es aviso, definido usando el nivel de registro parámetro.

Loglevel Aviso logFile/var/log/redis/redis.registro 
Establecer el archivo de registro de Redis y el nivel de registro

9. Desde system es el sistema predeterminado y el administrador de servicios en Centos 8, puedes configurar Rehacer interactuar con el system Árbol de supervisión estableciendo el supervisado parámetro system.

Systemd supervisado 
Establecer el supervisor de Redis en Systemd

10. Después de hacer todas las configuraciones necesarias, guárdelo y cierre. Luego reinicie el Rehacer Servicio para aplicar los nuevos cambios.

# SystemCTL Daemon-Reload # SystemCTL Reiniciar Redis 

11. Para acceder al Rehacer servidor, necesitamos usar el redis-cli (una interfaz de línea de comandos para el servidor redis). Por defecto, se conecta al servidor en el hostil (en 127.0.0.1 puerto 6379). Tenga en cuenta que debido a que el servidor está asegurado de los clientes que usan una contraseña, ejecutar un comando antes de que la autenticación debería fallar.

Utilizar el auténtico Comando para proporcionar la contraseña de autenticación como se muestra en la siguiente captura de pantalla.

# Redis-Cli 127.0.0.1: 6379> Lista de clientes 127.0.0.1: 6379> Auth [correo electrónico protegido] 127.0.0.1: 6379> Lista de clientes 
Access Redis Server a través de Redis CLI

12. Para conectarse a un réplica (Después de configurarlos como se describe en la siguiente sección), use el -H y -pag opciones para especificar la réplica de dirección IP/nombre de host y puerto respectivamente (no es que el puerto 6379 Debe estar abierto en el firewall de la réplica).

# redis -cli -h 10.42.0.21 -P 6379 

13. A continuación, abra el Rehacer puerto de datos del servidor en el firewall para permitir conexiones entrantes al maestro, y posteriormente recargar las reglas de firewall utilizando el comando firewall-cmd como se muestra.

# firewall-cmd --zone = public --permanent --add-port = 6379/tcp # firewall-cmd--Reload 

Paso 3: Configuración de los servidores de réplica/esclavo de Redis

14. Para establecer rápidamente un Rehacer instancia como réplica sobre la marcha, use el redis-cli utilidad y llamar al Réplica comando como se muestra.

# réplica de redis-cli 10.42.0.247 6379 o # Redis-Cli 127.0.0.1: 6379> réplica de 10.42.0.247 6379 
Conéctese a una instancia Master Redis

15. Para que una conexión de replicación sea permanente, debe hacer los siguientes cambios en el archivo de configuración. Comience por hacer una copia de seguridad del archivo original, luego ábralo para editar.

# CP /ETC /REDIS.conf /etc /redis.confusión.org # VI /etc /Redis.confusión 

dieciséis. Para permitir que los clientes se conecten a la réplica para leer datos, agregue la dirección IP de réplica a la Directiva BIND.

# réplica1 Bind 127.0.0.1 10.42.0.21 # replica2 bind 127.0.0.1 10.42.0.34 

Establecer una instancia de Redis como réplica

17. Para configurar una instancia de Redis como un réplica, utilizar el réplica parámetro y establecer la dirección IP del nodo maestro (o nombre de host) y el puerto como valores.

réplica de 10.42.0.247 6379 

Configuración de la réplica para autenticar al maestro

18. A continuación, dado que nuestra instancia maestra está protegida utilizando una contraseña, necesitamos establecer la contraseña en la configuración de la réplica para habilitarla maestro parámetro.

Masterauth [correo electrónico protegido] 

19. Además, cuando una réplica pierde su conexión con el maestro, o cuando la replicación está en marcha, la réplica está configurada para responder a las solicitudes del cliente, posiblemente con "fuera de plazo" datos. Pero para si es la primera sincronización, entonces el conjunto de datos puede estar vacío. Este comportamiento está controlado por el datos de réplica parámetro.

Y desde Redis 2.6 Por defecto, las réplicas son de solo lectura, esto está controlado por el réplica de solo lectura parámetro. Puede hacer otros ajustes de configuración de réplica para satisfacer las necesidades de su aplicación.

20. Una vez que haya realizado todos los cambios necesarios, reinicie el servicio Redis en todas las réplicas.

# SystemCTL reiniciar Redis 

21. Además, puerto abierto 6379 en el firewall para permitir las conexiones del maestro y los clientes a las réplicas, y recargar las reglas del firewall.

# firewall-cmd --zone = public --permanenent --add-port = 6379/tcp # firewall-cmd--Reload 

Paso 4: Verifique el estado de replicación maestra-replica

22. Una vez el maestro-replica La configuración de replicación está completa, podemos verificar si la configuración funciona bien de la siguiente manera.

En el maestro, ejecute los siguientes comandos.

# Redis-Cli 127.0.0.1: 6379> Auth [correo electrónico protegido] 127.0.0.1: 6379> Replicación de información 
Consulte la información de reubicación de Redis sobre el maestro

23. Además, verifique el estado de replicación en las réplicas/esclavos de la siguiente manera.

# Redis-Cli 127.0.0.1: 6379> Replicación de información 
Verifique la información de replicación de Redis sobre la réplica de Redis 1 Verifique la información de replicación de Redis sobre Redis Réplica 2

23. Ahora probemos la replicación mediante configuración un valor clave En la instancia maestra y verifique si los datos se sincronizan con las réplicas.

En el maestro, haz esto:

# Redis-Cli 127.0.0.1: 6379> Auth [correo electrónico protegido] 127.0.0.1: 6379> establecer dominio 'www.tecmenta.com ' 
Establecer el valor de la clave en la instancia maestra

24. Luego verifique si los datos se han sincronizado con las réplicas como se muestra.

# Redis-Cli 127.0.0.1: 6379> Obtener dominio 
Verifique el estado de sincronización de datos en réplicas

Proteger la instancia maestra contra el riesgo de perder algunas escrituras

25. Redis tiene una característica que permite que una instancia maestra limite el riesgo de perder algunas escrituras en caso de que no hay suficientes réplicas disponibles, a un número específico de segundos.

Esto significa que un maestro puede dejar de aceptar escrituras si hay menos de norte réplicas conectadas, tener un retraso menos o igual que METRO segundos, controlado por el min-replicas a escritura y min-replicas-max-lag opciones respectivamente.

Para establecerlos, desencadenarlos y establecer los valores de acuerdo con sus requisitos de configuración en /etc/redis.confusión, Como se muestra en la siguiente captura de pantalla. Esta configuración significa que, desde el último ping hasta réplicas, después de 10 segundos, si hay menos de 2 réplicas en línea, el maestro dejará de aceptar escrituras.

min-replicas-a-write 2 min-replicas-max-lag 10 
Proteger al maestro de Redis contra la pérdida de escritura

Puede encontrar más opciones en el resto del /etc/redis.confusión Archivo de configuración y para obtener más detalle lee sobre la replicación en la documentación de Redis.

En el próximo artículo, cubriremos cómo configurar Redis para alta disponibilidad con Sentinel en Centos 8. Hasta entonces, manténgase bloqueado y recuerde compartir sus preguntas y preguntas utilizando nuestro formulario de comentarios a continuación está ahí para que se comunique con nosotros.