Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Como soluciono mensagens de erro nos clientes Redis do ElastiCache?
Eu recebo mensagens de erro quando uso clientes Redis para me conectar ao meu cluster Redis do Amazon ElastiCache.
Resolução
Erro "Connection reset by peer"
Quando o servidor Redis encerra a conexão, você recebe a seguinte mensagem de erro:
"java.io.IOException: Connection reset by peer
io.netty.channel.unix.Errors$NativeIoException: readAddress(..) failed: Connection reset by peer"
Esse erro pode ter origem no servidor ou no cliente.
Se você receber o erro do servidor, execute as seguintes ações para resolver o problema:
- Verifique se há problemas subjacentes de hardware ou rede.
- Execute o comando CLIENT LIST para verificar a cota do buffer de saída do cliente. Para obter mais informações, consulte CLIENT LIST no site do Redis. Os parâmetros no grupo de parâmetros do seu cluster definem as cotas de buffer de saída do cliente no ElastiCache.
- Verifique se o valor do tempo limite em seu grupo de parâmetros do ElastiCache atingiu sua cota.
Se você receber o erro do cliente, execute as seguintes ações para resolver o problema:
- Verifique se as configurações de tempo limite em sua aplicação estão muito baixas.
- Verifique a documentação oficial ou as páginas de suporte da sua biblioteca cliente Redis para ver se há erros conhecidos relacionados às redefinições de conexão.
- Verifique se você tem a versão mais recente do seu cliente Redis.
- Se você ativou o TLS para o cluster, confirme se configurou a criptografia no cliente.
Erro "Connection refused" ou "Unable to connect to Redis"
Quando o servidor recusa a conexão, você recebe a seguinte mensagem de erro:
"JedisConnectionException: java.net.ConnectException: Connection refused
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException:
Connection refused
ECONNREFUSED
org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis org.redisson.client.RedisConnectionException: Unable to connect to Redis server ###"
Para resolver esse problema, verifique o seguinte:
- O endpoint Redis está acessível. É possível usar ferramentas como telnet ou redis-cli.
- As regras do grupo de segurança permitem o tráfego na porta 6379.
- Nenhum firewall está bloqueando a conexão.
- Não há restrições de memória, CPU, rede ou recursos de conexão.
Observação: é possível usar ferramentas como o tcpdump para analisar as tentativas de conexão.
Erro "Connection timed out"
Quando a conexão expirar, você recebe a seguinte mensagem de erro:
"redis.exceptions.TimeoutError: Timeout connecting to server io.netty.channel.ConnectTimeoutException: connection timed out org.redisson.client.RedisTimeoutException: Unable to acquire connection!"
O erro de tempo limite de conexão pode ser persistente ou intermitente.
Se o erro de tempo limite persistir, execute as seguintes ações para resolver o problema:
- Verifique a conectividade e a configuração da rede para confirmar a conexão com o cluster ElastiCache Redis.
- Confirme se você especificou os endpoints Redis corretos.
Para solucionar erros persistentes de tempo limite, consulte Problemas persistentes de conexão.
Se os erros de tempo limite forem intermitentes, execute as seguintes ações para resolver o problema:
- Use o console do ElastiCache para verificar a recuperação de nós ou eventos de failover.
- Verifique as restrições de memória, CPU, rede ou recursos de conexão.
- Verifique se a latência estava alta no momento do problema.
- Verifique a configuração de tempo limite em sua aplicação cliente.
Erro "Read timed out"
Quando o comando não é concluído dentro do valor de tempo limite que você configurou, você recebe a seguinte mensagem de erro:
"StackExchange.Redis.RedisTimeoutException: Timeout performing GET (5000ms) io.lettuce.core.RedisCommandTimeoutException: Command timed out org.springframework.data.redis.RedisConnectionFailureException: java.net.SocketTimeoutException: Read timed out redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out"
Esse erro ocorre quando o thread Redis está processando comandos complexos ou de longa duração.
Para resolver esse problema, execute as seguintes ações:
- Verifique as restrições de memória, CPU, rede ou recursos de conexão.
- Verifique se não há controle de utilização de recursos no lado do cliente.
- Verifique se a latência estava alta no momento do problema.
- Verifique se há comandos de longa duração que bloqueiam o mecanismo Redis porque o Redis é um mecanismo de thread único que processa uma consulta por vez. Para obter instruções, consulte SLOWLOG GET no site do Redis.
- Verifique se há comandos excessivos por unidade de tempo. Para obter instruções, consulte INFO no site do Redis.
Erro "Operation timed out"
Quando a conexão permanece inativa por mais tempo do que o valor do tempo limite que você configurou, você recebe a seguinte mensagem de erro:
"io.lettuce.core.RedisException: java.io.IOException: Operation timed out"
É possível receber o erro Operation timed out da operação pelos seguintes motivos:
- O cluster do ElastiCache tem alta carga e não consegue processar comandos a tempo.
- O tráfego de rede excede a cota de largura de banda no cluster ou no lado do cliente.
Para resolver esse problema, execute as seguintes ações:
- Verifique as restrições de memória, CPU, rede ou recursos de conexão.
- Verifique se não há controle de utilização de recursos no lado do cliente.
- Verifique se há comandos de longa duração que bloqueiam o mecanismo Redis. Para obter instruções, consulte SLOWLOG GET no site do Redis.
- Verifique a configuração de tempo limite em sua aplicação cliente e cluster e defina os parâmetros de tempo limite apropriados para evitar desconexões inativas.
Erro "NOAUTH Authentication required"
Quando você se conecta a um servidor Redis que exige autenticação, mas não fornece credenciais válidas, você recebe a mensagem de erro NOAUTH Authentication required.
Para resolver esse problema, execute as seguintes ações:
- Forneça o nome de usuário e a senha corretos para se conectar ao cluster.
- Confirme se a configuração da biblioteca cliente e a string de conexão têm a sintaxe correta.
Erro "ERR max number of clients reached"
Quando um nó de cluster atinge sua cota máxima de conexão, você recebe a mensagem de erro ERR número máximo de clientes alcançados.
Para resolver esse problema, execute as seguintes ações:
- Verifique a métrica CurrConnections e confirme se ela está dentro da cota maxclients. Para obter mais informações, consulte Maximum concurrent connected clients no site do Redis.
- Use o agrupamento de conexões para reutilizar conexões.
- Defina valores de tempo limite apropriados na configuração do seu cliente.
- Configure os clientes para se conectarem diretamente às réplicas de leitura para operações de leitura para distribuir a carga entre os nós do cluster.
Erro "LOADING Redis is loading the dataset in memory"
Quando você se conecta a um nó que está carregando seu conjunto de dados na memória durante a inicialização ou a sincronização da réplica, você recebe a seguinte mensagem de erro:
"LOADING Redis is loading the dataset in memory (error) LOADING Redis is loading the dataset in memory"
É uma prática recomendada implementar o backoff. Para obter mais informações, consulte a seção Descoberta e recuo exponencial do cliente de cluster Redis em Práticas recomendadas: Clientes Redis e Amazon ElastiCache para Redis.
Erro "OOM command not allowed when used memory > ‘maxmemory’"
O parâmetro maxmemory define a quantidade máxima de memória que um nó Redis pode usar para armazenamento de dados.
Quando o uso da memória excede a cota maxmemory, o Redis aplica a maxmemory-policy que você define no grupo de parâmetros. Com base na maxmemory-policy, o Redis despeja as chaves ou retorna o erro de OOM command not allowed.
Para resolver esse problema, execute as seguintes ações:
- Configure a maxmemory-policy para despejar as chaves com base nos requisitos da sua aplicação.
- Atualize o cluster para um tipo de nó maior quando o uso da memória exceder consistentemente a cota.
Erro "CROSSSLOT Keys in request don't hash to the same slot"
Quando você executa operações com várias chaves em um cluster que tem o modo de cluster ativado e diferentes slots de hash, você recebe o erro CROSSSLOT.
Para resolver esse problema, consulte Como resolvo o erro CROSSSLOT que recebo quando uso operações com várias chaves em um cluster autoprojetado pelo ElastiCache (Redis OSS)?
Erro "CLUSTERDOWN The cluster is down"
Quando um nó para de responder, o cluster fica indisponível e você recebe a mensagem de erro The cluster is down.
Para resolver esse problema, execute as seguintes ações:
- Use o console do ElastiCache para verificar a recuperação de nós ou eventos de failover.
- Verifique as restrições de memória, CPU, rede ou recursos de conexão.
- Verifique se o problema se origina de comandos de execução lenta Para obter instruções, consulte SLOWLOG GET no site do Redis.
Erro "READONLY You can't write against a read-only replica"
A seguir estão os motivos pelos quais você recebe um erro ao tentar gravar em um nó do Redis que você configurou como uma réplica de leitura:
- Sua aplicação se conecta diretamente a uma réplica de leitura.
- O cache de DNS na aplicação encaminha o tráfego para o nó primário antigo.
Para resolver o problema, consulte Como soluciono o erro READONLY que recebo após um failover em meu cluster autoprojetado do ElastiCache para Redis?
Erro "MOVED [slot] [IP address] [port]"
A mensagem de redirecionamento MOVED contém o slot de hash, o endereço IP e a porta do nó para a chave solicitada:
"-MOVED 3999 127.0.0.1:6381"
A seguir estão os motivos pelos quais é possível receber o erro MOVED:
- O cliente tenta acessar uma chave em um slot de hash que não está no nó conectado.
- Você ativou o modo de cluster para o cluster, mas o cliente não reconhece o cluster.
- Sua réplica de leitura não tem o sinalizador readonly.
- Seu cliente tem informações de cluster desatualizadas, como uma alteração no número de fragmentos ou nós.
Para resolver esses problemas, execute as seguintes ações:
- Se você ativou o modo de cluster, confirme se o cliente reconhece o cluster.
- Execute o comando readonly para garantir que o nó de réplica esteja lendo as solicitações. Para obter mais informações, consulte Estou usando o ElastiCache para Redis. Por que minhas solicitações de leitura do cliente Redis são sempre lidas ou redirecionadas para o nó primário de um fragmento?
- Configure o cliente para consultar frequentemente a topologia do cluster.
Observação: para ver os detalhes dos fragmentos do cluster, execute o comando CLUSTER SHARDS. Para obter detalhes sobre os nós do cluster, execute o comando CLUSTER NODES. Para obter mais informações, consulte CLUSTER SHARDS e CLUSTER NODES no site do Redis.
- Tópicos
- Database
- Idioma
- Português

Conteúdo relevante
- feita há 5 meses