Redis¶
O Redis é utilizado pelo n8n como serviço auxiliar de filas, cache e coordenação.
Informações desta VPS¶
| Item | Valor |
|---|---|
| Stack | /opt/stacks/n8n/compose.yml |
| Serviço Compose | redis |
| Container | n8n-redis-1 |
| Imagem | redis:7-alpine |
| Porta interna | 6379 |
| Diretório no container | /data |
| Persistência AOF | Desativada |
| Autenticação | Habilitada com senha |
Senha do Redis
A senha não deve ser escrita nesta documentação, exibida em prints ou publicada em repositórios.
Status¶
Ver o status do serviço¶
Ver somente o container¶
Ver a imagem utilizada¶
Ver a versão do Redis¶
Logs¶
Ver os últimos 100 registros¶
Acompanhar os logs em tempo real¶
Procurar erros¶
Procurar avisos¶
Operação¶
Reiniciar somente o Redis¶
Impacto no n8n
Reiniciar o Redis pode interromper temporariamente filas e execuções do n8n.
Parar somente o Redis¶
Iniciar o Redis parado¶
Recriar somente o Redis¶
Teste de conexão¶
Como o Redis exige senha, os comandos devem usar a credencial definida no ambiente ou no Compose.
Testar sem exibir a senha¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning ping
Resultado esperado:
Consultar informações gerais¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning INFO
Ver uso de memória¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning INFO memory
Ver quantidade de chaves¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning DBSIZE
Persistência¶
Verificar se o AOF está habilitado¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning CONFIG GET appendonly
Estado atual:
Verificar configuração de snapshots RDB¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning CONFIG GET save
Forçar snapshot RDB¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning BGSAVE
Resultado esperado:
Verificar último snapshot¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning LASTSAVE
Volume persistente¶
Ver os volumes montados¶
docker inspect n8n-redis-1 \
--format '{{range .Mounts}}{{println .Type "|" .Name "|" .Source "|" .Destination}}{{end}}'
Ver o volume pelo Docker¶
Ver o espaço utilizado¶
du -sh \
/var/lib/docker/volumes/46dfb8b004374a9b747331267892b51567f36ee93976c8d95841071bc0ad2986/_data
Volume anônimo
O Redis usa um volume Docker com nome gerado automaticamente. É preferível usar futuramente um volume nomeado, como n8n_redisdata, para facilitar manutenção, backup e identificação.
Backup¶
Criar diretório de backup¶
Forçar snapshot antes do backup¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning BGSAVE
Copiar o arquivo RDB¶
Listar os backups¶
Atualização¶
Ver a versão atual¶
Baixar a imagem configurada¶
Recriar o serviço¶
Verificar a saúde¶
Verificar os logs¶
Testar após a atualização¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning ping
Troubleshooting¶
Redis aparece como unhealthy¶
Erro de autenticação¶
Sintoma:
Isso indica que o comando foi enviado sem a senha correta.
Teste usando a senha extraída sem exibi-la:
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning ping
n8n não conecta ao Redis¶
Verificar o Redis:
Verificar os logs:
Verificar o n8n:
Verificar as variáveis sem mostrar a senha:
docker inspect n8n-n8n-1 \
--format '{{range .Config.Env}}{{println .}}{{end}}' \
| grep -E '^(QUEUE_BULL_REDIS_HOST|QUEUE_BULL_REDIS_PORT|EXECUTIONS_MODE)='
Uso elevado de memória¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning INFO memory
Ver clientes conectados¶
REDIS_PASSWORD="$(docker inspect n8n-redis-1 \
--format '{{json .Config.Cmd}}' \
| sed -n 's/.*"--requirepass","\([^"]*\)".*/\1/p')" && \
docker exec -e REDISCLI_AUTH="$REDIS_PASSWORD" n8n-redis-1 \
redis-cli --no-auth-warning CLIENT LIST
Boas práticas¶
- Não expor a porta
6379à internet. - Não registrar a senha em documentação ou repositórios.
- Manter autenticação habilitada.
- Utilizar volume nomeado em vez de volume anônimo.
- Fazer backup antes de atualizações relevantes.
- Monitorar consumo de memória.
- Testar o comando
PINGapós reinícios. - Considerar AOF apenas após avaliar impacto em disco e desempenho.