Todos os produtos
Search
Central de documentação

Tair (Redis® OSS-Compatible):Sugestões para lidar com eventos comuns de latência

Última atualização: Aug 20, 2026

Use esta referência para identificar a causa raiz de um evento de latência do Redis e aplicar a correção adequada.

Antes de começar

Verifique estas causas comuns antes de investigar eventos específicos:

  1. Comandos lentos. Comandos que percorrem todas as chaves (por exemplo, KEYS) bloqueiam a thread principal. Revise os logs de consultas lentas para identificá-los. Consulte Query slow query logs.

  2. Chaves grandes. Chaves grandes retardam a evicção e a expiração. Use a análise de chaves offline para identificá-las. Consulte Use the offline key analysis feature.

  3. Alto uso de memória. Quando a memória ocupada excede o limite maxmemory, os ciclos de evicção ocorrem frequentemente. Consulte Change the configurations of an instance.

Contexto

O Redis 2.8.13 introduziu o monitoramento de latência. Esse recurso coleta dados dos últimos 160 segundos e registra apenas o evento de maior latência por segundo.

O Tair (compatível com Redis OSS) oferece o latency insights, uma alternativa avançada que registra até 27 eventos com as durações de execução de todos os comandos e mantém estatísticas de latência dos últimos três dias. Para nomes de eventos e seus respectivos limiares de latência, consulte Common special events.

Eventos comuns de latência

Alguns eventos possuem relação pai-filho:

  • **AofWrite** é o evento pai. Sempre que dados são gravados em um arquivo append-only (AOF), o Redis registra AofWrite junto a exatamente um destes três eventos filhos: AofWriteAlone, AofWriteActiveChild ou AofWritePendingFsync. Analise o evento filho para encontrar a causa específica.

  • **EvictionCycle** é o evento pai da evicção. Analise EvictionDel e EvictionLazyFree em conjunto para determinar a origem da latência de evicção.

Evento

O que mede

Causa comum

Ação recomendada

EvictionCycle

Tempo de um ciclo completo de evicção, incluindo seleção de chaves, exclusão e espera da thread em segundo plano

Múltiplos fatores — analise EvictionDel e EvictionLazyFree para identificar a causa exata

Revise o uso das chaves e otimize os dados da aplicação. Se as evicções forem frequentes, aumente a escala da instância para manter o uso de memória abaixo de maxmemory.

EvictionDel

Tempo para exclua chaves durante um ciclo de evicção

Evicção de chaves grandes

Evite chaves grandes. Ative a evicção assíncrona definindo lazyfree-lazy-eviction como yes. Caso as evicções ocorram com frequência, aumente a escala da instância.

EvictionLazyFree

Tempo de espera pelas threads em segundo plano liberarem memória

Ausência de chaves elegíveis para evicção enquanto threads em segundo plano liberam memória (por exemplo, ao exclua chaves grandes)

Ajuste a política de evicção de memória usando o parâmetro maxmemory-policy. Se as evicções forem frequentes, aumente a escala da instância.

ExpireCycle

Tempo de um ciclo de expiração de chaves

Exclusão de chaves grandes

Evite chaves grandes. Ative a expiração assíncrona definindo lazyfree-lazy-expire como yes. Limpe regularmente os dados expirados no console.

ExpireDel

Tempo para exclua chaves durante um ciclo de expiração

Exclusão de chaves grandes

Evite chaves grandes.

AofWrite

Tempo total para gravar dados nos AOFs

Múltiplos fatores — analise AofWriteAlone, AofWriteActiveChild e AofWritePendingFsync para identificar a causa exata

Se a persistência de dados não for necessária, desative o AOF definindo appendonly como no.

AofWriteAlone

Tempo de uma gravação AOF sem processos filhos concorrentes ou fsync pendente

Grande volume de gravação ou gargalos de desempenho do disco

Se o AOF não for necessário, defina appendonly como no.

AofWriteActiveChild

Tempo de uma gravação AOF enquanto processos filhos também gravam no disco

E/S de disco do processo filho competindo com gravações AOF

Se o AOF não for necessário, defina appendonly como no.

AofWritePendingFsync

Tempo de uma gravação AOF durante um fsync em segundo plano

Fsync em segundo plano competindo com gravações AOF

Se o AOF não for necessário, defina appendonly como no.

Commands

Tempo de comandos regulares (não classificados como rápidos)

Comandos que percorrem todos os dados, como KEYS

Revise os logs de consultas lentas para encontrar comandos de longa duração. Use a análise de chaves offline para verificar a existência de chaves grandes.

FastCommand

Tempo de comandos rápidos com complexidade O(1) ou O(log N)

Comandos rápidos copiando grandes volumes de dados (por exemplo, GET em uma chave grande)

Identifique e divida chaves grandes. Consulte Identify and handle large keys and hotkeys.

Fork

Tempo para chamar fork()

Reescritas de AOF

Se a persistência de dados não for necessária, desative o AOF definindo appendonly como no.

Próximos passos