GNU/Linux >> Tutoriales Linux >  >> Cent OS

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

Redis (Servidor de diccionario remoto ) es un servidor de estructura de datos/base de datos de clave-valor en memoria muy popular y ampliamente utilizado, rápido, distribuido y eficiente.

Ofrece un amplio 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é, intermediario 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 maestro-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, agrupamiento y fraccionamiento. También cuenta con conmutación por error automática para la implementación de alta disponibilidad a través de Redis Sentinel , Secuencias de comandos de Lua , transacciones y muchos más.

Ser un NO SQL o base de datos no relacional, Redis 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 los hace fácilmente accesibles para una aplicación, mientras que las bases de datos tradicionales tienen que escribir o leer todos los datos en el disco o en una fuente externa.

Redis se ha convertido en una opción cada vez más frecuente para el almacenamiento en caché, lo que permite reutilizar los datos almacenados en caché (almacenados en el espacio de memoria principal de una aplicación) en lugar de consultar siempre una base de datos para obtener datos de uso frecuente. Por lo que es un compañero fantástico de RDMS (Sistemas de gestión de bases de datos relacionales ) para mejorar en última instancia el rendimiento de la aplicación.

En este Redis de tres partes serie de tutoriales, cubriremos cómo configurar y usar algunas de las características clave de Redis, que son la replicación, alta disponibilidad usando Redis Sentinel y clúster de Redis , los artículos son:

Parte 1 :Cómo configurar la replicación de Redis (con el modo de clúster deshabilitado) 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 de Redis (con el modo de clúster habilitado) en CentOS 8

Esta guía muestra cómo configurar Replicación de Redis (con modo clúster deshabilitado ) en CentOS 8 Linux, incluido cómo instalar Redis, configurar el maestro y las réplicas, y probar la replicación.

Importante :un clúster de Redis (es decir, un clúster de replicación ) con el modo de clúster deshabilitado tiene un solo grupo de nodos (por ejemplo, un maestro y una o dos réplicas) donde un clúster de Redis con el modo de clúster habilitado puede constar de dos o más grupos de nodos (por ejemplo, tres maestros, cada uno con esclavos o dos).

Requisitos previos:

  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 solo grupo de nodos 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 será descartado.

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

Paso 1:Instalación de Redis en CentOS 8

1. Para empezar, inicie sesión en todos los CentOS 8 nodos a través de SSH, luego instale el Redis paquete en todos los nodos (maestro y réplicas) usando el administrador de paquetes DNF como se muestra.

# dnf install @redis

2. Al finalizar el Redis instalación del paquete, inicie Redis servicio, habilítelo para que se inicie automáticamente en cada arranque del sistema y verifique si está funcionando de la siguiente manera.

# systemctl start redis
# systemctl enable redis
# systemctl status redis

3. También puede confirmar que Redis el servidor está en funcionamiento al verificar los puertos de escucha usando el comando ss, de la siguiente manera.

# ss -ltpn | grep redis-server

Confirmar los puertos del servidor Redis

Paso 2:Configuración del servidor maestro de Redis

4. Redis se configura usando /etc/redis.conf archivo de configuración, un archivo de configuración de ejemplo autodocumentado. Primero, cree una copia de seguridad del archivo original, luego ábralo para editarlo usando el editor de línea de comandos de su elección.

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

5. De forma predeterminada, un Redis la instancia está configurada para escuchar y aceptar conexiones en el bucle invertido interfaz, usando la directiva bind. Para comunicarse con las réplicas, el maestro debe configurarse para escuchar en IPv4 dirección de bucle invertido y su dirección IP de LAN, es decir, 10.42.0.247 .

bind 127.0.0.1 10.42.0.247

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

protected-mode no

Además, Redis escucha en el puerto 6379 que se configura usando el port directiva. Este es el puerto de datos para comunicarse con las API de la aplicación o los clientes CLI.

port 6379

Configuración del servidor maestro de Redis

7. Para proteger opcionalmente la réplica principal comunicaciones, podemos proteger el maestro usando el requirepass directiva, de modo que los clientes/réplicas tengan que emitir una contraseña de autenticación antes de ejecutar cualquier comando o iniciar 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 con fines de demostración, para mostrar cómo funciona.

requirepass  [email protected]

Establecer contraseña de autenticación

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

loglevel  notice
logfile  /var/log/redis/redis.log

Establecer el archivo de registro y el nivel de registro de Redis

9. Desde systemd es el administrador de servicios y sistemas predeterminado en CentOS 8 , puede configurar Redis para interactuar con el systemd árbol de supervisión configurando el supervised parámetro a systemd .

supervised systemd

Establezca el supervisor de Redis en Systemd

10. Después de realizar todas las configuraciones necesarias, guarde el archivo y ciérrelo. Luego reinicie el Redis servicio para aplicar los nuevos cambios.

# systemctl daemon-reload
# systemctl restart redis

11. Para acceder a Redis 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 localhost (en 127.0.0.1 puerto 6379 ). Tenga en cuenta que debido a que el servidor está protegido de los clientes mediante una contraseña, la ejecución de un comando antes de la autenticación debería fallar.

Usa la autorización 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> client list
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379> client list

Acceda al servidor Redis a través de la CLI de Redis

12. Para conectarse a una réplica (después de configurarlos como se describe en la siguiente sección), use -h y -p opciones para especificar la dirección IP/nombre de host de la réplica y el puerto respectivamente (no ese puerto 6379 debe estar abierto en el cortafuegos de la réplica).

# redis-cli -h 10.42.0.21 -p 6379

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

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

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

14. Para establecer rápidamente un Redis instancia como una réplica sobre la marcha, use el redis-cli utilidad y llame al REPLICAOF comando como se muestra.

# redis-cli replicaof 10.42.0.247 6379
OR
# redis-cli
127.0.0.1:6379> REPLICAOF 10.42.0.247 6379

Conéctese a una instancia maestra de Redis

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

# cp /etc/redis.conf /etc/redis.conf.org
# vi /etc/redis.conf

16. Para permitir que los clientes se conecten a la réplica para leer datos, agregue la dirección IP de la réplica a la directiva de enlace.

# replica1
bind 127.0.0.1 10.42.0.21

# replica2
bind 127.0.0.1 10.42.0.34

Configuración de una instancia de Redis como réplica

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

replicaof 10.42.0.247 6379

Configurar la réplica para que se autentique con el maestro

18. A continuación, dado que nuestra instancia maestra está protegida con una contraseña, debemos establecer la contraseña en la configuración de la réplica para permitirle autenticarse ante el maestro, usando masterauth parámetro.

masterauth [email protected]

19. Además, cuando una réplica pierde su conexión con el maestro, o cuando la replicación está en curso, la réplica se configura para responder a las solicitudes de los clientes, posiblemente con "desactualizado " datos. Pero si es la primera sincronización, entonces el conjunto de datos puede estar vacío. Este comportamiento está controlado por replica-serve-stale-data parámetro.

Y, desde Redis 2.6 por defecto, las réplicas son de solo lectura, esto está controlado por replica-read-only parámetro. Puede realizar 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 restart redis

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

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

Paso 4:comprobar el estado de replicación principal-réplica

22. Una vez que la réplica maestra 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 [email protected]
127.0.0.1:6379> info replication

Verifique la información de reubicación de Redis en 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> info replication

Comprobar la información de replicación de Redis en la réplica 1 de Redis

Verifique la información de replicación de Redis en Redis Replica 2

23. Ahora probemos la replicación configurando un valor-clave en la instancia principal y verifique si los datos están sincronizados con las réplicas.

En el maestro, haz esto:

# redis-cli
127.0.0.1:6379> AUTH [email protected]
127.0.0.1:6379> set domain 'www.tecmint.com'

Establecer valor clave en 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> get domain

Comprobar el estado de sincronización de datos en las réplicas

Protección de 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 haya suficientes réplicas disponibles, a una cantidad específica de segundos.

Esto significa que un maestro puede dejar de aceptar escrituras si hay menos de N réplicas conectadas, con un retraso menor o igual a M segundos, según lo controlado por min-replicas-to-write y min-replicas-max-lag opciones respectivamente.

Para establecerlos, descoméntelos y establezca los valores de acuerdo con sus requisitos de configuración en /etc/redis.conf , como se muestra en la siguiente captura de pantalla. Esta configuración significa que, desde el último ping a las 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-to-write 2
min-replicas-max-lag 10

Protección del maestro de Redis contra la pérdida de escritura

Puede encontrar más opciones en el resto de /etc/redis.conf archivo de configuración y para obtener más detalles, lea acerca de 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 pensamientos y preguntas utilizando nuestro formulario de comentarios a continuación para que se comunique con nosotros.

Compartir es cuidar…
Compartir en FacebookCompartir en TwitterCompartir en LinkedinCompartir en Reddit
Cent OS
  1. Cómo configurar un servidor FTP con VSFTPD en CentOS 7

  2. Cómo configurar un servidor FTP con VSFTPD en CentOS 8

  3. Cómo instalar y configurar Varnish Cache 6 con Nginx en CentOS 8

  4. Cómo configurar Pure-FTPD con MySQL en CentOS y RedHat

  5. Cómo configurar la replicación de MySQL en CentOS

Cómo configurar MariaDB Galera Cluster con HAproxy en CentOS 7

Cómo configurar la replicación de MySQL en RHEL/Centos

Cómo instalar Redis en CentOS 6

Cómo instalar Redis en CentOS 7

Cómo configurar Redis para alta disponibilidad con Sentinel en CentOS 8 – Parte 2

Cómo configurar un clúster de Redis en CentOS 8 - Parte 3