Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quais são as melhores práticas para configurar o Redis Cluster


Quais são as melhores práticas para configurar o Redis Cluster


O Redis Cluster é uma solução popular para dimensionar as implantações do Redis para obter maior disponibilidade, tolerância a falhas e sharding de dados em vários nós. A configuração adequada do cluster Redis envolve várias práticas recomendadas que garantem desempenho, confiabilidade e gerenciamento ideais.

Arquitetura de cluster e configuração de nós

O cluster Redis requer pelo menos três nós mestre para operar de maneira confiável. Idealmente, um cluster de produção deve conter um mínimo de seis nós, com cada mestre tendo uma ou mais réplicas. Essa configuração garante alta disponibilidade, permitindo o failover automático, caso qualquer nó principal falhe. Cada nó é executado no modo de cluster e deve ter configurações específicas ativadas, incluindo:

- `habilitado para cluster Sim` para ativar o modo de cluster em cada instância do Redis.
-`cluster-config-fil-File` especificando o arquivo em que o estado do nó de cluster é salvo (por exemplo,` modes.conf`).
-`Cluster-node-timeout` Definindo o tempo máximo que um nó pode ser inacessível antes de ser considerado falhado (geralmente definido como 5000 a 15000 milissegundos).

O `Cluster-Config-File` é gerenciado pelo Redis automaticamente e não deve ser editado manualmente, pois mantém informações críticas do estado, como IDs de nó, mapeamentos e propriedade de slot. Cada nó atribui -se a um ID de nó exclusivo na inicialização, que persiste ao longo de sua vida útil, mesmo que IP ou porta alterem.

hardware e configuração de rede

Os nós devem ser implantados em máquinas físicas ou virtuais separadas para evitar pontos únicos de falha. A conectividade de rede entre os nós deve permitir as duas portas de comunicação do cliente (normalmente o TCP 6379 ou a porta de serviço em uso) e a porta do barramento de cluster (uma segunda porta normalmente porta de serviço TCP + 10000, por exemplo, 16379) para comunicação de cluster Internode.

Configure cuidadosamente as interfaces de rede e os firewalls para permitir esse tráfego entre nós e opcionalmente entre os clientes e os nós do cluster. Definir a diretiva `bind 'para IPS privado específico, em vez de se ligar a todas as interfaces, aprimora a segurança.

persistência e durabilidade dos dados

Habilite mecanismos de persistência, como instantâneos RDB ou AOF (APEND Somente arquivo), dependendo da durabilidade dos dados necessários e da compensação de desempenho. AOF fornece uma melhor durabilidade, registrando todas as operações de gravação, mas pode adicionar latência e sobrecarga de IO. A combinação de instantâneos RDB com AOF pode ajudar a equilibrar o desempenho e a durabilidade.

A diretiva `APENDONLY SIM` permite o modo AOF. Essas configurações devem ser cuidadosamente ajustadas de acordo com os padrões de carga de trabalho e as janelas de perda de dados aceitáveis.

Políticas de gerenciamento e despejo de memória

Configure a configuração `maxMemory` para garantir que o Redis se encaixe na memória disponível no nó. Selecione uma política de despejo apropriada usando `maxMemory-Policy`, como` Allkeys-lru`, para usar um algoritmo menos recentemente usado em todas as teclas quando os limites de memória forem atingidos. O monitoramento consistente do uso da memória e das taxas de acerto/falta é fundamental.

O cluster Redis tem um desempenho melhor quando o conjunto de dados se encaixa totalmente na memória em cada nó. Evite troca excessiva ou compensação excessiva de memória.

Gerenciamento de slot e distribuição de dados

O cluster divide o espaço de chave em 16.384 slots de hash que são distribuídos em todos os nós mestres. Ao criar o cluster, verifique se todos os slots são cobertos por um nó principal. Os clientes devem ter consciência de cluster para rotear consultas para o nó correto com base no cálculo do slot de hash.

Evite operações envolvendo várias teclas mapeadas para slots diferentes, pois requerem comandos de slot cruzado limitados ou menos eficientes.

Use ferramentas como `Redis-Cli-CLUTER CREATE` para bootstrap Clusters com atribuição adequada de alocação e réplica de slot automaticamente.

Configuração do cliente para conscientização do cluster

Configure as bibliotecas de clientes para lidar com a topologia do cluster Redis muda graciosamente. Muitas bibliotecas de clientes fornecem suporte ao cluster, incluindo descoberta automática e reconfiguração dos nós do cluster à medida que falham ou remodelam slots. Isso evita erros do cliente e melhora a confiabilidade durante failovers ou operações de escala do nó.

Os clientes devem ser configurados para tentar novamente movendo ou solicitar redirecionamentos e manter visualizações atualizadas do estado do cluster.

Considerações de segurança

Nós de cluster seguros, ativando a autenticação de senha (diretiva `requerePass`), limitando o acesso à rede por meio de regras de firewall e restringindo as interfaces expostas via configuração` bind`. Use a criptografia TLS, se possível, para proteger os dados em trânsito.

Desative o modo protegido ao executar o Redis no modo de cluster, mas verifique se as configurações de rede isolam o cluster de clientes não confiáveis.

Monitoramento e manutenção

Implemente o monitoramento abrangente da saúde do cluster, incluindo disponibilidade de nós, latência, uso de memória, atraso na replicação e alterações no estado do cluster. Ferramentas como Redis Sentinel, plataformas de monitoramento de terceiros ou soluções de fornecedor de nuvem devem fazer parte da estratégia operacional.

Teste regularmente os mecanismos de failover e execute reinicializações de nós controlados ou exercícios de escala para verificar a resiliência do cluster.

Ajuste de desempenho ###

Sintonize redis e a configuração do cluster com base nas especificações da carga de trabalho:

- Minimize os comandos de bloqueio e use scripts de pipelining ou lua para otimizar a taxa de transferência.
-Ajuste o 'cluster-timeout' de acordo com as características de latência da rede para evitar failovers falsos.
- Use hash consistente e nomeação de chaves inteligentes para otimizar as distribuições de slot.
- Evite chaves ou valores grandes e considere quebrar objetos grandes em pedaços menores.
- Utilize os mecanismos nativos do Redis Cluster para escalar horizontalmente, adicionando ou removendo nós e reequilíbrio.

backup e recuperação

As estratégias de backup de design alinhadas com a configuração do cluster. Use instantâneos rdb periódicos de nós mestre ou réplicas e armazenar backups externamente. Evite restaurar backups diretamente em um cluster ao vivo sem a sincronização adequada de slot e estado do nó.

Para recuperação, os procedimentos de uso recomendados pela Redis para reconstruir clusters de configurações e backups salvos.

Resumo

Melhores práticas para a cobertura de configuração do cluster Redis:

- Configuração de pelo menos três nós mestre com réplicas para failover.
-Garantir as diretivas de configuração relacionadas ao cluster adequadas (`` cluster-inabled`, `Cluster-Config-File`,` cluster-node-timeout`).
- Implantando nós em hardware adequado com configurações de rede corretas para comunicação de barramento de clientes e cluster.
- Permitir políticas de persistência e memória de sintonia e despejo para atender às demandas da carga de trabalho.
- Gerenciar slots de hash de maneira eficaz e garantir que os clientes tenham consciência do cluster.
- proteger o cluster com controles de autenticação e rede.
- Monitorando a saúde e o desempenho do cluster regularmente.
- Planejando o planejamento para operações de backup, recuperação e escala cuidadosamente.

A aplicação dessas práticas recomendadas garante um ambiente Redis Cluster, robusto, escalável e altamente disponível, adequado para cargas de trabalho de produção. Os tópicos acima abrangem considerações essenciais operacionais, arquitetônicas e de segurança para implantações de cluster Redis.