Redis, PHP-FPM e OPcache: o que cada camada faz em um WordPress

CONTEÚDO TBF HOST

Redis, PHP-FPM e OPcache: o que cada camada faz em um WordPress

Quem migra um WordPress para um servidor próprio encontra logo uma lista de siglas recomendadas: Redis, PHP-FPM, OPcache. Elas aparecem em tutoriais, em conversas com desenvolvedores e em checklists de otimização, quase sempre sem explicação do que cada uma resolve.

O problema de ativá-las sem entender é que elas atuam em gargalos diferentes. Ligar as três sem saber qual é o seu gargalo produz resultado — mas você não sabe qual delas produziu, nem o que fazer quando o problema voltar.

Este guia explica o que cada camada faz, em que ordem ativá-las, o que observar depois e onde estão as armadilhas de configuração.

Onde está o tempo de uma requisição

Antes das camadas, vale entender o que acontece quando alguém acessa uma página do WordPress sem nenhuma otimização:

  1. O servidor web recebe o pedido e aciona o PHP.
  2. O PHP compila o código do WordPress, do tema e dos plugins ativos.
  3. O código compilado executa.
  4. Durante a execução, são feitas dezenas de consultas ao banco de dados — opções, metadados, taxonomias, conteúdo.
  5. O HTML montado volta ao servidor web e segue para o navegador.

Cada uma das três camadas ataca uma etapa diferente:

CamadaEtapa que otimizaO que evita
OPcache2 — compilaçãoRecompilar o mesmo código a cada acesso
Redis (cache de objeto)4 — consultas ao bancoRepetir consultas idênticas
PHP-FPM1 e 3 — execuçãoCriar processos do zero e disputar recursos

Ou seja: elas não competem entre si e não substituem uma à outra. Um site com Redis e sem OPcache continua recompilando código a cada acesso.

OPcache: pare de recompilar o mesmo código

O PHP é uma linguagem interpretada: o código-fonte precisa ser convertido em uma forma executável antes de rodar. Sem cache, essa conversão acontece a cada requisição, para o mesmo código que não mudou.

O OPcache guarda o resultado dessa compilação em memória e o reaproveita. É a camada mais simples de ativar, a que menos exige configuração e a que beneficia todas as páginas — inclusive as que não podem ser cacheadas, como painel administrativo e checkout.

O que observar:

  • Memória alocada. Se for insuficiente para o volume de código, o cache é esvaziado e recomeça, anulando o benefício. Sites com muitos plugins precisam de mais espaço.
  • Validação de arquivos. Em produção, verificar mudanças no código a cada acesso custa entrada e saída em disco; desativar essa verificação exige limpar o cache após cada publicação de código.
  • Limpeza após atualizações. Se o cache não for invalidado ao atualizar plugins, o servidor pode continuar executando a versão anterior.

A última armadilha é a mais confusa: você atualiza um plugin, o comportamento antigo persiste, e nada no WordPress explica por quê.

PHP-FPM: como os processos são gerenciados

Esta camada não é cache — é gerenciamento de processos, e é onde se define o comportamento do site sob carga.

Em vez de criar um processo do zero a cada requisição, um conjunto de processos fica disponível para atender pedidos. O número desses processos, como eles são criados e quando são encerrados são as decisões que mais afetam o comportamento em picos.

A conta que não pode ser ignorada

Número máximo de processos multiplicado pela memória média de cada um precisa caber na memória do servidor, com folga para o banco de dados, o Redis e o sistema.

Configurar processos demais é a causa mais comum de servidores que travam sob carga: quando a memória esgota, o sistema operacional começa a encerrar processos, e o resultado são falhas intermitentes sem padrão aparente.

Configurar processos de menos produz o efeito oposto e igualmente ruim: requisições ficam em fila, e o site parece lento com recursos sobrando.

O que observar

  • Memória média por processo, medida com o site em operação real — ela varia conforme o tema e os plugins.
  • Processos ocupados no pico, para saber se o limite está sendo alcançado.
  • Fila de requisições, que indica limite insuficiente.
  • Tempo máximo de execução, que impede processos travados de ocupar o servidor indefinidamente.

O ajuste correto se encontra por observação, não por fórmula: comece conservador, acompanhe o comportamento em pico e ajuste.

Redis: pare de repetir consultas ao banco

A camada com maior impacto em sites WordPress de porte, e a que exige mais atenção.

O WordPress consulta o banco dezenas de vezes por carregamento, e boa parte dessas consultas se repete entre requisições. O cache de objeto guarda os resultados em memória, reduzindo drasticamente as idas ao banco.

O que torna essa camada especialmente valiosa: ela atua onde o cache de página não pode. Painel administrativo, área logada, páginas personalizadas por usuário e — em lojas — carrinho e checkout continuam executando PHP e consultando o banco. É exatamente ali que o Redis faz diferença.

O que observar

  • Memória alocada e política de descarte. Quando o limite é atingido, o Redis precisa saber o que descartar — a política adequada para cache de objeto é remover os itens usados menos recentemente, e não recusar novas gravações.
  • Taxa de aproveitamento. Se a proporção de consultas atendidas pelo cache é baixa, algo está errado na configuração ou o conteúdo muda rápido demais.
  • Persistência. Para cache de objeto, gravar em disco costuma ser desnecessário e adiciona custo — o cache pode ser reconstruído.
  • Isolamento. O Redis não deve estar acessível pela internet. É um erro de configuração conhecido e sério.
  • Separação por site. Vários sites usando a mesma instância sem separação podem interferir entre si.

Vale a ressalva: o Redis precisa de um plugin conector no WordPress para ser efetivamente usado como cache de objeto. Instalar o serviço no servidor sem esse conector não produz efeito nenhum — e é uma frustração comum.

A ordem certa de ativar

A sequência importa porque cada camada muda o resultado da medição seguinte:

  1. Meça o estado atual. Tempo de resposta do servidor, consumo de memória, número de consultas por página. Sem linha de base, não há como avaliar o ganho.
  2. Ative o OPcache. É o mais simples, o de menor risco e beneficia tudo.
  3. Meça de novo.
  4. Ajuste o PHP-FPM ao perfil real, respeitando a conta de memória.
  5. Meça de novo, com atenção ao comportamento em pico.
  6. Ative o Redis com o conector no WordPress e verifique a taxa de aproveitamento.
  7. Meça de novo e observe especialmente o painel administrativo, que é onde o ganho aparece com mais clareza.
  8. Só então avalie cache de página, se o site ainda não tiver.

Ativar tudo de uma vez funciona, mas deixa você sem saber o que produziu o resultado — e sem referência quando o problema retornar.

O que essas camadas não resolvem

Vale delimitar, porque a lista de siglas virou resposta automática:

Aplicação mal otimizada. Um plugin que faz chamadas a serviços externos a cada carregamento continua lento com as três camadas ativas. O gargalo é a espera externa, e nenhum cache local a elimina.

Consultas mal construídas. Uma consulta pesada e única — um filtro complexo, um relatório — é executada de qualquer forma na primeira vez.

Front-end pesado. Imagens grandes, excesso de JavaScript e fontes demais afetam a experiência do visitante independentemente do servidor. O diagnóstico completo está no artigo sobre por que o WordPress fica lento.

Falta de recursos real. Se o servidor já está no limite, as camadas ajudam mas não criam capacidade. O dimensionamento é tratado no artigo sobre quando o plano de hospedagem não basta.

Manutenção contínua

Ativadas as camadas, alguns pontos precisam de acompanhamento:

  • Limpar o OPcache após publicar código ou atualizar plugins.
  • Revisar a memória do OPcache quando o número de plugins crescer.
  • Reavaliar o limite de processos quando o tema mudar ou o consumo por processo aumentar.
  • Monitorar a memória do Redis e a taxa de descarte.
  • Verificar o conector após atualizações do WordPress, porque uma incompatibilidade pode desativar o cache de objeto silenciosamente.

O último item merece atenção: um cache de objeto desativado sem aviso faz o site voltar ao desempenho anterior sem nenhuma mensagem de erro. Monitorar a taxa de aproveitamento é o que revela isso.

Conclusão

As três camadas atacam gargalos diferentes e se complementam: o OPcache evita recompilar o código, o PHP-FPM define como os processos atendem as requisições e o Redis evita repetir consultas ao banco — inclusive nas páginas que o cache de página não alcança.

A ordem de ativação importa mais do que parece, porque medir entre uma e outra é o que transforma otimização em conhecimento sobre o próprio ambiente. E vale a ressalva: nenhuma delas conserta aplicação mal otimizada ou cria capacidade que não existe.

Todas exigem acesso ao servidor, o que hospedagem compartilhada normalmente não oferece. Conheça o Cloud Server para WordPress da TBF Host e avalie o ambiente adequado ao seu projeto.

Perguntas frequentes

Qual a diferença entre OPcache, Redis e PHP-FPM?

Eles atuam em etapas diferentes de uma requisição. O OPcache evita recompilar o código PHP a cada acesso. O Redis, como cache de objeto, evita repetir consultas idênticas ao banco de dados. O PHP-FPM gerencia os processos que executam o código, definindo o comportamento do site sob carga. Não se substituem.

O que é cache de objeto no WordPress?

É a camada que guarda em memória os resultados das consultas repetidas ao banco de dados. Ela é especialmente valiosa porque atua onde o cache de página não pode: painel administrativo, área logada, páginas personalizadas por usuário e, em lojas, carrinho e checkout, que continuam consultando o banco a cada acesso.

Instalei o Redis e não vi diferença. Por quê?

Provavelmente falta o plugin conector no WordPress. Instalar o serviço no servidor não faz o WordPress utilizá-lo: é preciso um conector que direcione o cache de objeto para o Redis. Sem ele, o serviço fica disponível mas ocioso, e o site continua consultando o banco normalmente.

Quantos processos PHP-FPM devo configurar?

O número máximo de processos multiplicado pela memória média de cada um precisa caber na memória do servidor, com folga para o banco de dados, o Redis e o sistema. Processos demais levam ao esgotamento de memória e a falhas intermitentes; processos de menos deixam requisições em fila com recursos sobrando.

Atualizei um plugin e o comportamento antigo persiste. O que pode ser?

Uma causa frequente é o OPcache não invalidado. Se a verificação de mudanças nos arquivos estiver desativada — prática comum em produção, por economizar operações em disco — o servidor continua executando a versão compilada anterior até que o cache seja limpo manualmente ou pelo processo de publicação.

Em que ordem devo ativar essas camadas?

Meça o estado atual, ative o OPcache, meça de novo, ajuste o PHP-FPM ao perfil real, meça de novo, ative o Redis com o conector e verifique a taxa de aproveitamento, e meça outra vez. Ativar tudo de uma vez funciona, mas deixa você sem saber o que produziu o resultado.

Essas camadas resolvem qualquer problema de lentidão?

Não. Elas não corrigem aplicação mal otimizada, como plugins que consultam serviços externos a cada carregamento; não eliminam consultas pesadas e únicas; não afetam o front-end, com imagens grandes e excesso de JavaScript; e não criam capacidade quando o servidor já está no limite de recursos.

Preciso de servidor próprio para usar essas camadas?

Na prática, sim. As três exigem acesso ao servidor para instalar e configurar, o que hospedagem compartilhada normalmente não oferece. Alguns planos disponibilizam OPcache já ativo, mas o ajuste do PHP-FPM e a instalação do Redis costumam exigir um ambiente com recursos reservados e controle administrativo.

Facebook
X
LinkedIn