Como configurar a replicação Redis (com o modo de cluster desativado) no CentOS 8 - Parte 1

Como configurar a replicação Redis (com o modo de cluster desativado) no CentOS 8 - Parte 1

Redis (Servidor de dicionário remoto) é um código aberto muito popular e amplamente utilizado, rápido, distribuído e eficiente, banco de dados de valor-chave/servidor de estrutura de dados.

Ele oferece um rico conjunto de recursos que o tornam eficaz para uma ampla gama de casos de uso: como um banco de dados, camada de cache, corretor de mensagens ou fila; Aplicável em aplicativos da web, aplicativos de bate-papo e mensagens, jogos, análise de dados em tempo real e muito mais.

Ele suporta estruturas de dados flexíveis, replicação assíncrona-escrava mestre para escalar o desempenho de leitura e proteger contra a perda de dados, o sharding do cliente para escalar o desempenho de gravação, duas formas de persistência para escrever dados na memória em disco em um formato compacto, agrupamento e agrupamento e agrupamento e partição. Ele também apresenta failovers automáticos para implantação de alta disponibilidade via Redis Sentinel, Lua script, transações, e muitos mais.

Começar um Sem sql ou banco de dados não relacional, Redis oferece alguns benefícios de desempenho em relação aos sistemas de banco de dados tradicionais (como Mysql/mariadb, PostGresql, etc.), porque todos os seus dados residem ou são armazenados na memória, tornando -os facilmente acessíveis a um aplicativo, enquanto os bancos de dados tradicionais precisam escrever todos os dados ou ler em disco ou uma fonte externa.

Redis tornou -se uma escolha cada vez mais prevalente para o cache, que permite a reutilização de dados em cache (armazenados no espaço principal de um aplicativo) em vez de sempre consultar um banco de dados para dados usados ​​com frequência. Então é um companheiro fantástico de Rdms (Sistemas de gerenciamento de banco de dados relacionais) para melhorar o desempenho do aplicativo.

Nesta parte de três partes Redis Série tutorial, abordaremos como configurar e usar alguns dos principais recursos do Redis que são replicação, alta disponibilidade usando Redis Sentinel e Cluster Redis, Os artigos são:

Parte 1: Como configurar a replicação Redis (com o modo de cluster desativado) no CentOS 8 Parte 2: Como configurar Redis para alta disponibilidade com o Sentinel no CentOS 8 Parte 3: Como configurar um cluster Redis (com modo de cluster ativado) no CentOS 8

Este guia mostra como configurar REPLICAÇÃO REDIS (com Modo de cluster desativado) em CENTOS 8 Linux, incluindo como instalar Redis, configurar o mestre e réplicas e testar a replicação.

Importante: A Cluster Redis (eu.e a Cluster de replicação) com o modo de cluster desativado tem um único grupo de nós (e.g a mestre e uma ou duas réplicas) onde um cluster redis com modo de cluster ativado pode consistir em dois ou mais grupos de nó (e.g três mestres cada um com escravos ou dois).

Pré -requisitos:

  1. Servidores com instalação do CentOS 8

Configuração do ambiente de teste

Servidor mestre Redis: 10.42.0.247 RELA RELISE1/SLAVE1: 10.42.0.21 RELA RELISE2/SLAVE2: 10.42.0.34 
Representação lógica do diagrama de replicação Redis

Com a configuração acima (que possui um único nó de leitura/gravação Primary/Master e 2 nós de réplica somente leitura), temos um único grupo de nós que contém todos os dados do cluster em cada nó. Uma vez que um escravo se conecta a um mestre, ele recebe uma cópia inicial do banco de dados completo e todos os dados que existiam anteriormente no escravo serão descartados.

Além disso, um cliente pode escrever apenas para o mestre, mas lê em qualquer nó no cluster. E, como as gravações são realizadas no mestre, elas se propagaram para todos os escravos conectados para atualizar os conjuntos de dados de escravos em tempo real.

Etapa 1: Instalando Redis no CentOS 8

1. Para começar, faça login em todos os CENTOS 8 nós via ssh, depois instale o Redis Pacote em todos os nós (mestre e réplicas) usando o gerenciador de pacotes DNF, conforme mostrado.

# dnf install @redis 

2. Após a conclusão do Redis Instalação do pacote, inicie o Redis Serviço, ative -o para iniciar automaticamente em cada inicialização e verifique se está em funcionamento e funcionamento da seguinte forma.

# SystemCtl START Redis # SystemCtl Ativar Redis # Systemctl Status Redis 

3. Você também pode confirmar que o Redis O servidor está em funcionamento verificando as portas de escuta usando o comando SS, como segue.

# ss -ltpn | Grep Redis-Server 
Confirme as portas do servidor Redis

Etapa 2: Configurando o Redis Master Server

4. Redis está configurado usando o /etc/redis.conf Arquivo de configuração, um arquivo de configuração de exemplo autocumentado. Primeiro, crie um backup do arquivo original e depois abri-o para edição usando seu editor de linha de comando de escolha.

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

5. Por padrão, um Redis a instância está configurada para ouvir e aceitar conexões no loopback interface, usando a diretiva de ligação. Para se comunicar com as réplicas, o mestre deve ser configurado para ouvir no IPv4 endereço de loopback e seu endereço IP da LAN I.e 10.42.0.247.

vincular 127.0.0.1 10.42.0.247 

6. Em seguida, defina o parâmetro de modo protegido como não para permitir a comunicação com as réplicas como mostrado.

modo protegido no 

Além disso, Redis ouve na porta 6379 que é definido usando o porta diretivo. Esta é a porta de dados para se comunicar com APIs de aplicativos ou clientes da CLI.

Porta 6379 
Configurando o Redis Master Server

7. Para proteger opcionalmente o Mestre-Replica comunicações, podemos proteger o mestre usando o requerePass Diretiva, para que os clientes/réplicas precisem emitir uma senha de autenticação antes de executar qualquer comandos ou iniciar um processo de sincronização de replicação, caso contrário, o mestre recusará a solicitação do cliente/réplica (lembre -se de definir uma senha segura).

Usaremos a seguinte opção para fins de demonstração, para mostrar como funciona.

requerePass [e -mail protegido] 
Defina senha de autenticação

8. Além disso, os registros Redis são armazenados no /var/log/redis/redis.registro arquivo, isso é definido usando o arquivo de log a diretiva e o nível de verbosidade do servidor padrão é perceber, definido usando o Loglevel parâmetro.

Loglevel Aviso LogFile/Var/Log/Redis/Redis.registro 
Defina o arquivo de log Redis e o nível de log

9. Desde Systemd é o sistema padrão e gerente de serviços em CENTOS 8, você pode configurar Redis para interagir com o Systemd árvore de supervisão definindo o supervisionado parâmetro para Systemd.

Systemd supervisionado 
Defina o supervisor Redis como Systemd

10. Depois de fazer todas as configurações necessárias, salve o arquivo e feche -o. Em seguida, reinicie o Redis Serviço para aplicar as novas mudanças.

# Systemctl Daemon-Reload # SystemCtl Redis Redis 

11. Para acessar o Redis servidor, precisamos usar o Redis-cli (Uma interface da linha de comando para o Redis-Server). Por padrão, ele se conecta ao servidor no LocalHost (no 127.0.0.1 porta 6379). Observe que, como o servidor está protegido dos clientes usando uma senha, executando um comando antes que a autenticação deve falhar.

Use o Auth comando para fornecer a senha de autenticação, como mostrado na captura de tela a seguir.

# Redis-cli 127.0.0.1: 6379> Lista de clientes 127.0.0.1: 6379> Auth [email protegido] 127.0.0.1: 6379> Lista de clientes 
Access Redis Server via Redis CLI

12. Para se conectar a um réplica (depois de configurá -los como descrito na próxima seção), use o -h e -p Opções para especificar o endereço IP da réplica/nome de host e porta, respectivamente (não essa porta 6379 deve estar aberto no firewall da réplica).

# redis -cli -h 10.42.0.21 -P 6379 

13. Em seguida, abra o Redis Porta de dados do servidor no firewall para permitir conexões de entrada ao mestre e, posteriormente, recarregue as regras do firewall usando o comando firewall-cmd, conforme mostrado.

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

Etapa 3: Configurando réplica Redis/servidores de escravos

14. Para definir rapidamente um Redis instância como uma réplica em tempo real, use o Redis-cli utilidade e chame o Réplica de comando como mostrado.

# REDIS-CLI REPLICAOF 10.42.0.247 6379 ou # Redis-cli 127.0.0.1: 6379> réplica de 10.42.0.247 6379 
Conecte -se a uma instância de mestre Redis

15. Para tornar uma conexão de replicação permanente, você precisa fazer as seguintes alterações no arquivo de configuração. Comece fazendo backup do arquivo original e abra -o para edição.

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

16. Para permitir que os clientes se conectem à réplica para ler dados, adicione o endereço IP da réplica à diretiva de ligação.

# réplica1 Bind 127.0.0.1 10.42.0.21 # réplica2 Bind 127.0.0.1 10.42.0.34 

Definindo uma instância Redis como uma réplica

17. Para configurar uma instância Redis como um réplica, use o réplica de parâmetro e defina o endereço IP do nó mestre (ou nome de host) e a porta como valores.

réplica de 10.42.0.247 6379 

Definir réplica para autenticar para o mestre

18. Em seguida, como nossa instância mestre está protegida usando uma senha, precisamos definir a senha na configuração da réplica para permitir que ela se autentique ao mestre, usando o MasterAuth parâmetro.

MasterAuth [e -mail protegido] 

19. Além disso, quando uma réplica perde sua conexão com o mestre ou quando a replicação está em andamento, a réplica é configurada para responder às solicitações do cliente, possivelmente com “desatualizado" dados. Mas, se for a primeira sincronização, o conjunto de dados pode estar vazio. Este comportamento é controlado pelo Réplica-serve-Stale-Data parâmetro.

E desde Redis 2.6 Por padrão, réplicas são somente leitura, isso é controlado pelo somente leitura de réplica parâmetro. Você pode fazer outros ajustes de configuração de réplica para atender às necessidades do seu aplicativo.

20. Depois de fazer todas as alterações necessárias, reinicie o serviço Redis em todas as réplicas.

# SystemCtl Reinicie Redis 

21. Além disso, porta aberta 6379 No firewall para permitir conexões do mestre e clientes às réplicas e recarregue as regras do firewall.

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

Etapa 4: Verifique o status de replicação mestre-replica

22. Uma vez o Mestre-Replica A configuração de replicação está concluída, podemos verificar se a configuração está funcionando bem da seguinte forma.

No mestre, execute os seguintes comandos.

# Redis-cli 127.0.0.1: 6379> Auth [email protegido] 127.0.0.1: 6379> Replicação de informações 
Verifique as informações de realocação do Redis no mestre

23. Além disso, verifique o status de replicação nas réplicas/escravos da seguinte forma.

# Redis-cli 127.0.0.1: 6379> Replicação de informações 
Verifique as informações de replicação Redis na réplica Redis 1 Verifique as informações de replicação Redis na REDIS REPLICA 2

23. Agora vamos testar a replicação por configurações de um valor chave na instância mestre e verifique se os dados são sincronizados com as réplicas.

No mestre, faça isso:

# Redis-cli 127.0.0.1: 6379> Auth [email protegido] 127.0.0.1: 6379> Definir domínio 'www.Tecmint.com ' 
Defina o valor da chave na instância mestre

24. Então verifique se os dados foram sincronizados com as réplicas, como mostrado.

# Redis-cli 127.0.0.1: 6379> Obter domínio 
Verifique o status de sincronização de dados em réplicas

Protegendo a instância mestre contra o risco de perder algumas gravações

25. Redis possui um recurso que permite que uma instância mestre limite o risco de perder algumas gravações, caso não estejam disponíveis réplicas suficientes, a um número especificado de segundos.

Isso significa que um mestre pode parar de aceitar gravações se houver menos do que N réplicas conectadas, tendo um atraso menor ou igual que M segundos, como controlado pelo Min-replicas-to-write e minreplicas-max-lag opções respectivamente.

Para defini -los, descompanham -os e defina os valores de acordo com seus requisitos de configuração em /etc/redis.conf, como mostrado na captura de tela a seguir. Esta configuração significa que, desde o último ping até réplicas, após 10 segundos, se houver menos de 2 réplicas online, o mestre parará de aceitar gravações.

Min-replicas-to-write 2 min-replicas-max-lag 10 
Protegendo o mestre Redis contra a perda de gravação

Você pode encontrar mais opções no resto do /etc/redis.conf Arquivo de configuração e para mais detalhes Leia sobre a replicação na documentação Redis.

No próximo artigo, abordaremos como configurar Redis para alta disponibilidade com o Sentinel em CENTOS 8. Até então, fique trancado e lembre -se de compartilhar seus jarros e perguntas usando nosso formulário de comentário abaixo está lá para você nos alcançar.