16 min de leitura · Guia técnico
Testar se o Redis está funcionando no Ubuntu 24.04 envolve verificar o status do serviço, validar a comunicação via cliente de linha de comando e confirmar que a persistência de dados está operando corretamente. Para executar esse diagnóstico completo, siga estes passos:
- Verificar o status do serviço com
systemctl status redis-server - Testar a resposta do servidor com
redis-cli ping - Gravar e recuperar uma chave de teste com
redis-cli SETeGET - Checar a porta 6379 com
ss -tlnpounc -zv - Validar a persistência reiniciando o serviço e consultando a chave gravada
- Testar a conexão a partir de uma aplicação PHP com a extensão phpredis
Pré-requisitos para testar o Redis no Ubuntu 24.04
- Sistema operacional: Ubuntu 24.04 LTS (Noble Numbat) com acesso root ou usuário com privilégios sudo
- Redis instalado: pacote
redis-serverdisponível via APT (apt install redis-server) - redis-cli disponível: instalado junto com o pacote
redis-toolsouredis-server - Acesso SSH ao servidor: consulte o guia Acessando servidores VPS Linux da AviraHost caso precise configurar o acesso remoto
- Firewall UFW: configurado ou desabilitado temporariamente para testes de porta
- PHP 8.x (opcional): necessário apenas para o teste de integração com aplicações PHP
Como verificar se o Redis está rodando no Ubuntu 24.04
O primeiro passo para confirmar que o serviço Redis está ativo é consultar o gerenciador de serviços do sistema. No Ubuntu 24.04, o systemd controla o ciclo de vida do redis-server, e o comando abaixo exibe o estado atual com detalhes de uptime e possíveis erros de inicialização:
sudo systemctl status redis-server
● redis-server.service - Advanced key-value store
Loaded: loaded (/usr/lib/systemd/system/redis-server.service; enabled; preset: enabled)
Active: active (running) since Mon 2024-04-15 10:23:41 UTC; 2h 14min ago
Main PID: 1234 (redis-server)
Tasks: 5 (limit: 4915)
Memory: 7.2M
CPU: 1.203s
CGroup: /system.slice/redis-server.service
└─1234 "/usr/bin/redis-server 127.0.0.1:6379"
O status active (running) confirma que o processo está em execução. Se aparecer inactive (dead) ou failed, o serviço precisa ser iniciado ou investigado. Para iniciar manualmente:
sudo systemctl start redis-server
sudo systemctl enable redis-server
O comando enable garante que o Redis seja iniciado automaticamente após reinicializações do servidor, comportamento essencial em ambientes de produção.
Testando a resposta do Redis com redis-cli ping
Com o serviço ativo, o próximo passo é validar a comunicação com o servidor Redis usando o cliente de linha de comando nativo. O comando redis-cli ping envia um pacote de verificação e aguarda a resposta PONG:
redis-cli ping
PONG
A resposta PONG indica que o servidor está aceitando conexões na porta padrão 6379 e processando comandos corretamente. Se o retorno for um erro de conexão recusada, o serviço pode estar parado ou o bind configurado incorretamente.
Para testar com autenticação (caso o Redis esteja protegido por senha via requirepass no arquivo de configuração):
redis-cli -a sua_senha_aqui ping
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
PONG
Você também pode entrar no modo interativo do redis-cli e executar comandos diretamente:
redis-cli
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> INFO server
O comando INFO server retorna informações detalhadas sobre a versão do Redis, sistema operacional, uptime e configurações ativas — útil para confirmar que a instância correta está respondendo.
Verificando a porta 6379 e conectividade TCP do Redis
Além do redis-cli, é importante confirmar que a porta 6379 está aberta e acessível no nível de rede. Isso é especialmente relevante quando aplicações externas precisam se conectar ao Redis ou quando há suspeita de bloqueio por firewall.
Use o comando ss para listar as portas em escuta:
ss -tlnp | grep 6379
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=1234,fd=6))
O endereço 127.0.0.1:6379 indica que o Redis está escutando apenas na interface de loopback (localhost), o que é o comportamento padrão e recomendado por segurança. Se precisar que o Redis aceite conexões externas, edite o arquivo /etc/redis/redis.conf e altere a diretiva bind.
Atenção: expor o Redis em interfaces públicas sem autenticação e sem firewall é um risco grave de segurança. Sempre configure requirepass e restrinja o acesso via UFW antes de alterar o bind.
Para testar a conectividade TCP sem o redis-cli, use o netcat:
nc -zv 127.0.0.1 6379
Connection to 127.0.0.1 6379 port [tcp/*] succeeded!
Outra alternativa é o telnet, que permite enviar comandos Redis manualmente:
telnet 127.0.0.1 6379
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
PING
+PONG
Para verificar se o UFW está bloqueando a porta, execute:
sudo ufw status verbose
Se necessário, libere a porta apenas para conexões locais ou de IPs específicos:
sudo ufw allow from 127.0.0.1 to any port 6379
Testando operações de leitura e escrita no Redis
Verificar que o Redis responde ao PING não é suficiente para confirmar que as operações de armazenamento e recuperação de dados estão funcionando. Execute uma sequência de comandos para gravar, ler e deletar uma chave de teste:
redis-cli SET avirahost_teste "funcionando"
OK
redis-cli GET avirahost_teste
"funcionando"
redis-cli DEL avirahost_teste
(integer) 1
O retorno OK no SET confirma que a escrita foi aceita. O retorno do valor no GET confirma que a leitura está operacional. O retorno (integer) 1 no DEL indica que a chave foi removida com sucesso.
Para testar estruturas de dados mais complexas, como listas e hashes, que são comuns em aplicações web:
redis-cli LPUSH fila_teste "item1" "item2" "item3"
redis-cli LRANGE fila_teste 0 -1
1) "item3"
2) "item2"
3) "item1"
redis-cli HSET usuario:1 nome "João" email "[email protected]"
redis-cli HGETALL usuario:1
1) "nome"
2) "João"
3) "email"
4) "[email protected]"
Esses testes cobrem os tipos de dados mais utilizados em cache de sessões, filas de tarefas e armazenamento de objetos em aplicações PHP, Node.js e Python rodando em servidores VPS.
Como verificar a persistência de dados no Redis
A persistência de dados é um aspecto crítico para aplicações que dependem do Redis para armazenar informações que não podem ser perdidas em caso de reinicialização. O Redis oferece dois mecanismos principais: RDB (snapshots) e AOF (Append Only File).
Para verificar as configurações de persistência RDB ativas:
redis-cli CONFIG GET save
1) "save"
2) "3600 1 300 100 60 10000"
Esse output indica que o Redis salva um snapshot se pelo menos 1 chave mudar em 3600 segundos, 100 chaves em 300 segundos, ou 10000 chaves em 60 segundos.
Para testar a persistência na prática, grave uma chave, force um save e reinicie o serviço:
redis-cli SET persistencia_teste "valor_persistido"
redis-cli BGSAVE
Background saving started
sudo systemctl restart redis-server
redis-cli GET persistencia_teste
"valor_persistido"
Se o valor retornar após o restart, a persistência RDB está funcionando corretamente. Para verificar o status do AOF:
redis-cli CONFIG GET appendonly
1) "appendonly"
2) "no"
Se o AOF estiver desabilitado (no) e você precisar de maior durabilidade, edite o /etc/redis/redis.conf e defina appendonly yes, depois reinicie o serviço. Para ambientes de produção com alta criticidade de dados, consulte também as Dicas de Otimização de Servidores Linux para ajustar os parâmetros de memória e persistência.
Testando a integração do Redis com PHP no Ubuntu 24.04
Em aplicações web, o Redis é frequentemente usado como backend de cache de sessões PHP ou como armazenamento de objetos para frameworks como Laravel e WordPress com plugins de cache. Para testar a integração, instale a extensão phpredis:
sudo apt install php-redis -y
sudo systemctl restart php8.3-fpm
Confirme que a extensão foi carregada corretamente:
php -m | grep redis
redis
Crie um arquivo de teste PHP para validar a conexão:
sudo nano /var/www/html/teste_redis.php
<?php
$redis = new Redis();
$redis->connect("127.0.0.1", 6379);
$pong = $redis->ping();
echo "Resposta do Redis: " . $pong . "\n";
$redis->set("php_teste", "avirahost_ok");
$valor = $redis->get("php_teste");
echo "Valor recuperado: " . $valor . "\n";
?>
php /var/www/html/teste_redis.php
Resposta do Redis: +PONG
Valor recuperado: avirahost_ok
Atenção: remova o arquivo de teste após a validação para evitar exposição de informações sobre a infraestrutura:
sudo rm /var/www/html/teste_redis.php
Para configurar o PHP para usar o Redis como handler de sessões, edite o arquivo /etc/php/8.3/fpm/php.ini e defina:
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
Monitorando o Redis em tempo real com redis-cli monitor
O comando MONITOR do redis-cli permite observar em tempo real todos os comandos que estão sendo processados pelo servidor, o que é extremamente útil para depurar integrações de aplicações e confirmar que as requisições estão chegando ao Redis:
redis-cli monitor
OK
1713178234.123456 [0 127.0.0.1:54321] "PING"
1713178235.234567 [0 127.0.0.1:54321] "SET" "session:abc123" "dados_da_sessao"
1713178235.345678 [0 127.0.0.1:54321] "GET" "session:abc123"
Pressione Ctrl+C para encerrar o monitoramento. Para verificar estatísticas de uso de memória e número de conexões ativas:
redis-cli INFO memory | grep used_memory_human
redis-cli INFO clients | grep connected_clients
used_memory_human:1.23M
connected_clients:3
Problemas comuns e como resolver
Sintoma: redis-cli ping retorna "Could not connect to Redis at 127.0.0.1:6379: Connection refused"
Causa: O serviço redis-server não está em execução ou falhou ao iniciar devido a um erro de configuração.
Solução: Execute sudo systemctl start redis-server e verifique os logs com journalctl -u redis-server -n 50 --no-pager. Procure por erros como "Address already in use" (outra aplicação usando a porta 6379) ou "Permission denied" (problema de permissões no diretório de dados /var/lib/redis). Verifique também se o arquivo /etc/redis/redis.conf não contém erros de sintaxe com redis-server /etc/redis/redis.conf --test-config.
Sintoma: Redis inicia mas para automaticamente após alguns segundos
Causa: Memória insuficiente no servidor ou configuração de maxmemory muito restritiva, fazendo o Redis encerrar ao atingir o limite.
Solução: Verifique a memória disponível com free -h e consulte o log do Redis com journalctl -u redis-server -n 100. Se o problema for o limite de memória, ajuste a diretiva maxmemory no /etc/redis/redis.conf e defina uma política de evicção adequada com maxmemory-policy allkeys-lru. Em servidores com pouca RAM, considere um plano de VPS com mais recursos.
Sintoma: Dados somem após reiniciar o servidor mesmo com persistência ativada
Causa: O arquivo RDB (dump.rdb) não está sendo salvo no diretório correto, ou o Redis está encerrando de forma abrupta sem completar o snapshot.
Solução: Verifique o diretório de dados com redis-cli CONFIG GET dir e confirme que o arquivo dump.rdb existe em /var/lib/redis/. Certifique-se de que o usuário redis tem permissão de escrita nesse diretório: ls -la /var/lib/redis/. Para forçar um save antes de reiniciar, sempre execute redis-cli BGSAVE e aguarde a confirmação com redis-cli LASTSAVE.
Sintoma: Extensão PHP redis não encontrada mesmo após instalação
Causa: A extensão foi instalada para uma versão do PHP diferente da que está sendo usada pelo servidor web, ou o PHP-FPM não foi reiniciado após a instalação.
Solução: Confirme a versão do PHP em uso com php --version e verifique se a extensão está no diretório correto: ls /usr/lib/php/*/redis.so. Reinicie o PHP-FPM com sudo systemctl restart php8.3-fpm (ajuste a versão conforme necessário) e confirme com php -m | grep redis.
Sintoma: redis-cli retorna WRONGPASS ao tentar autenticar
Causa: A senha fornecida não corresponde à configurada na diretiva requirepass do arquivo /etc/redis/redis.conf.
Solução: Verifique a senha configurada com sudo grep requirepass /etc/redis/redis.conf. Se necessário, altere a senha diretamente no arquivo de configuração e reinicie o serviço. Para ambientes de produção, use senhas longas e aleatórias geradas com openssl rand -base64 32.
Perguntas frequentes sobre Redis no Ubuntu 24.04
Como saber se o Redis está rodando no Ubuntu 24.04?
Execute o comando systemctl status redis-server no terminal. Se o serviço estiver ativo, você verá o status active (running) com informações de uptime e PID do processo. Também é possível usar redis-cli ping, que retorna PONG quando o servidor está respondendo corretamente na porta 6379.
O Redis está instalado mas não responde ao redis-cli ping — o que fazer?
Verifique se o serviço está iniciado com systemctl start redis-server. Confira o arquivo de configuração em /etc/redis/redis.conf para garantir que o bind está correto e que a porta 6379 não está bloqueada pelo firewall UFW. Consulte os logs com journalctl -u redis-server -n 50 para identificar erros específicos como falhas de permissão ou conflito de porta.
Como testar a conexão ao Redis a partir de uma aplicação PHP?
Instale a extensão phpredis via apt install php-redis e use o método $redis->connect("127.0.0.1", 6379) seguido de $redis->ping(). Se retornar +PONG, a conexão está funcionando. Certifique-se de que o PHP-FPM foi reiniciado após instalar a extensão, pois sem o restart a extensão não é carregada pelo processo em execução.
É possível testar o Redis sem instalar o redis-cli?
Sim. Você pode usar o comando nc -zv 127.0.0.1 6379 para verificar se a porta está aberta e aceitando conexões TCP. Outra opção é usar telnet 127.0.0.1 6379 e digitar manualmente o comando PING para receber a resposta +PONG do servidor Redis, confirmando que o serviço está operacional sem depender de ferramentas específicas do Redis.
Como verificar se o Redis está persistindo dados corretamente?
Execute redis-cli CONFIG GET save para ver as regras de persistência RDB configuradas. Para testar na prática, grave uma chave com redis-cli SET teste valor, execute redis-cli BGSAVE, reinicie o serviço com systemctl restart redis-server e verifique se a chave ainda existe com redis-cli GET teste. Se retornar "valor", a persistência está funcionando corretamente.
Conclusão
- Valide em camadas: comece pelo status do serviço com systemctl, avance para o redis-cli ping, teste operações de leitura/escrita e finalize com a verificação de persistência — cada camada elimina uma categoria diferente de falha.
- Monitore continuamente: use
redis-cli INFOeredis-cli monitorregularmente para identificar gargalos de memória, conexões excessivas e comandos lentos antes que afetem a aplicação em produção. - Documente a configuração: registre as diretivas críticas do
/etc/redis/redis.conf(bind, maxmemory, requirepass, save) e mantenha backups do arquivo de configuração para facilitar a recuperação em caso de falhas.
Leia também
- Otimizar cache Redis para aplicações PHP no Ubuntu 22.04
- Configurar Alertas Automáticos com Zabbix no Ubuntu
- Como otimizar PHP-FPM do zero em 20 minutos no Ubuntu 22.04
Precisa de ajuda com Redis e infraestrutura Linux?
Configurar e manter o Redis em produção exige um servidor com recursos adequados de memória e armazenamento. Os planos de VPS da AviraHost oferecem ambientes Linux otimizados, com suporte a Redis, Nginx, PHP e outras tecnologias essenciais para aplicações web de alto desempenho.