Nesta página, você encontra orientação sobre o uso ideal do Memorystore para Redis. Essa página também indica possíveis problemas que devem ser evitados.
Para ver uma lista de cenários de solução de problemas, consulte Solução de problemas.
Exportação de RDB
Ao exportar um backup do RDB, siga estas orientações:
- Exporte durante um período de baixa taxa de gravação.
- Ao exportar durante um período de alta taxa de gravação, reduza a configuração de
maxmemory
temporariamente a 50% da capacidade da instância para oferecer sobrecarga suficiente para uma operação bem-sucedida.
Operações com uso intensivo de recursos
Para instâncias do Redis de nível Padrão, as seguintes operações usam memória extra durante a operação:
O upgrade, o escalonamento e o failover manual de versões usam memória extra (para instâncias do nível Padrão) devido à replicação. Essas operações seguem o processo de replicação descrito em Comportamento de upgrade da instância do nível Padrão.
As operações de importação e exportação exigem memória extra devido ao processo Redis interrompido e ao gerenciamento de dados de cópia em gravação associados a essas operações.
Para diminuir as desvantagens das operações que usam muitos recursos, é necessário:
- reduzir a configuração maxmemory para 80% da capacidade da instância durante a operação. Isso proporciona uma sobrecarga suficiente para uma operação bem-sucedida;
- monitorar a métrica de proporção de uso da memória do sistema e garantir que essa métrica seja inferior a 80% antes de executar uma dessas operações;
- executar essas operações durante períodos de baixo tráfego de instância (como durante a noite ou no final de semana etc.);
- deixar a lógica de repetição em espera exponencial antes de executar essas operações.
Operações e cenários que exigem uma nova tentativa de conexão
As operações e os cenários a seguir interrompem a conexão de rede entre sua rede e a instância do Redis:
- Upgrade da versão
- Como fazer escalonamento vertical/redução
- Importando
- Failover manual
- Manutenção do sistema
- Rotação da autoridade de certificação para instâncias do Redis que têm a criptografia em trânsito ativada
- Failover de emergência
Essas operações modificam a instância, exigindo uma interrupção de conexão temporária. A lógica de nova tentativa precisa estar em espera exponencial antes da execução dessas operações para que o aplicativo se reconecte automaticamente e continue funcionando normalmente.
Manutenção de rotina
As instâncias do Memorystore para Redis passam por manutenção periodicamente. Para mais detalhes, consulte a política de manutenção do Memorystore para Redis.
Implemente as práticas recomendadas a seguir para se preparar para manutenção de rotina:
- Defina uma janela de manutenção para quando as atualizações de manutenção possam ocorrer.
- Programe janelas de manutenção para tempos de baixo tráfego de instâncias e sobrecarga de memória suficiente. Para saber mais, consulte Impacto das atualizações de manutenção.
- Ative as notificações sobre janelas de manutenção para receber alertas sobre as próximas manutenções.
- Deixe a lógica de repetição em espera exponencial.
- Para instâncias do nível Padrão, é possível simular um evento de manutenção usando o failover manual para saber como o failover causado pela manutenção afeta seu aplicativo.
- Para instâncias do nível Básico, é possível simular o impacto de uma atualização de manutenção escalonando temporariamente a instância para um tamanho maior. Depois de observar o impacto, você pode voltar ao tamanho original.
Gerenciamento de memória
O gerenciamento de memória pode ser um desafio devido à conhecida fragmentação de memória
que ocorre com o Redis de código aberto. Recomendamos que você reduza a configuração de
maxmemory
da instância para se manter sobrecarregado no caso de
alta pressão da memória.
A melhor maneira de monitorar a pressão sobre a memória na instância do Memorystore é usar a métrica de proporção de uso da memória do sistema. Para obter um guia detalhado sobre como gerenciar a memória do Memorystore para Redis, consulte Práticas recomendadas para o gerenciamento de memória.
Como gerenciar conexões inativas
Com o tempo, é possível que o número de conexões com sua instância do Memorystore aumente
se as conexões não estiverem sendo encerradas corretamente. Isso pode
ter implicações negativas no desempenho, especialmente se você estiver usando criptografia em trânsito, que impõe limites máximos de conexões
com base no seu nível de capacidade. Para atenuar esse problema, recomendamos o uso do
parâmetro de configuração do Redis
timeout
, que permite definir o número de segundos antes que as conexões de clientes inativas
sejam encerradas automaticamente.
Nomes de recursos da Transparência no acesso
Dados confidenciais não podem ser armazenados nos nomes de recursos do Memorystore para Redis. Por nomes de recursos, queremos dizer nomes de instâncias do Memorystore para Redis e metadados de instância, como tags. Não há garantia de que os dados armazenados nos nomes dos recursos serão protegidas pela Transparência no acesso do Google Cloud, e entrar em conflito com os requisitos de compliance da Transparência no acesso da organização.
Conector de acesso VPC sem servidor necessário em alguns ambientes sem servidor
Alguns ambientes sem servidor exigem um conector de acesso VPC sem servidor para se conectar ao Memorystore para Redis. Se quiser se conectar usando um desses ambientes, configure o conector de acesso VPC sem servidor para seu projeto.
Rede
Recomendamos usar o modo de conexão do acesso a serviços privados. O Memorystore para Redis usa dois modos de conexão: acesso particular a serviços e peering direto. O modo de conexão do acesso a serviços privados simplifica o gerenciamento de intervalos de IP e permite o uso da VPC compartilhada, se quiser.
Depois de criar uma instância, não é possível alterar o modo de conexão.
Para mais detalhes, consulte Rede.
Monitoramento e alertas
Recomendamos o uso de monitoramento e alertas, porque eles fornecem indicadores-chave sobre o uso da memória da sua instância do Redis. Elas também fornecem insights sobre a eficiência da sua instância do Redis na resposta às solicitações de cache recebidas.
É necessário configurar os seguintes alertas padrão:
- Como configurar um alerta do Cloud Monitoring para uso de memória
- Como configurar um alerta do Cloud Monitoring para a proporção de uso de memória do sistema
Práticas recomendadas de uso da CPU
O uso indevido de comandos Redis com custo maior leva a alta latência, falta de resposta ou problemas de conectividade. As instâncias do nível padrão oferecem alta disponibilidade durante a recuperação de desastres e dependem da replicação assíncrona entre os nós principais e de réplica. Se um dos nós tiver um processamento de comando caro que bloqueia a linha de execução principal do Redis, a replicação pode ser afetada. Se o problema persistir e houver uma falha temporária no local os dados mais recentes gravados no local da interrupção podem não ser disponíveis no outro local.
Recomendamos usar o Cloud Monitoring
para definir alertas para a métrica Segundos de CPU da linha de execução principal
(redis.googleapis.com/stats/cpu_utilization_main_thread
) para garantir que
a utilização da CPU não exceda 0,9 segundos para o nó principal e 0,5 segundos
para cada nó de réplica.
Se a instância do Redis exceder os valores recomendados, recomendamos escalonar a instância para um nível de capacidade maior ou siga as instruções para solução de problemas para evitar operações com uso intensivo da CPU.