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 ,
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 8Esta 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:
- 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
# dnf install @redis
# systemctl start redis # systemctl enable redis # systemctl status redis
# ss -ltpn | grep redis-server
Confirmar los puertos del servidor Redis
Paso 2:Configuración del servidor maestro de Redis
# cp /etc/redis.conf /etc/redis.conf.org # vi /etc/redis.conf
bind 127.0.0.1 10.42.0.247
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
Usaremos la siguiente opción con fines de demostración, para mostrar cómo funciona.
requirepass [email protected]
Establecer contraseña de autenticación
loglevel notice logfile /var/log/redis/redis.log
Establecer el archivo de registro y el nivel de registro de Redis
supervised systemd
Establezca el supervisor de Redis en Systemd
# systemctl daemon-reload # systemctl restart redis
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
-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
# firewall-cmd --zone=public --permanent --add-port=6379/tcp # firewall-cmd --reload
Paso 3:Configuración de servidores réplica/esclavos de Redis
# 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
# cp /etc/redis.conf /etc/redis.conf.org # vi /etc/redis.conf
# 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
replicaof 10.42.0.247 6379
Configurar la réplica para que se autentique con el maestro
masterauth [email protected]
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.
# systemctl restart redis
# firewall-cmd --zone=public --permanenent --add-port=6379/tcp # firewall-cmd --reload
Paso 4:comprobar el estado de replicación principal-réplica
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
# 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
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
# 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
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