Object cache com Redis para WordPress: configurar e otimizar

Cache de página serve conteúdo estático para a maioria dos visitantes. Object cache é diferente — armazena resultados de consultas à base de dados em memória para que WordPress não precise de repetir as mesmas queries. Redis é a implementação de object cache mais eficiente para WordPress e está disponível nos principais managed hostings. Este guia explica como configurar e verificar o funcionamento.

Object cache vs Page cache: a diferença

Page cache: guarda o HTML completo de uma página e serve-o sem executar PHP ou consultar a base de dados. Muito eficaz para utilizadores não autenticados em conteúdo estático.

Object cache: guarda resultados de consultas específicas à base de dados — opções do WordPress, transients, dados de plugins. Quando PHP precisa do mesmo dado novamente, lê da memória em vez de fazer outra query MySQL. É útil mesmo quando o page cache não é aplicável (utilizadores autenticados, WooCommerce, etc.).

Os dois são complementares, não exclusivos.

Quando o Redis faz mais diferença

Redis tem maior impacto em:

  • Sites com muitas consultas repetidas à BD (plugins pesados, muitas opções WordPress)
  • WooCommerce — muitas queries por pedido de utilizador autenticado que o page cache não serve
  • Sites de membership com muitos utilizadores logados
  • Sites com dados dinâmicos que mudam frequentemente (não beneficiam tanto de page cache)
  • Sites com wp_options table grande com muitos autoloaded options

Instalar Redis: requisitos

Redis requer acesso ao servidor para instalação. Em hosting partilhado, raramente está disponível. Em managed WordPress hosting (Kinsta, WP Engine, Cloudways), Redis está frequentemente já disponível e configurável via painel.

Verificar se Redis está disponível

# Via SSH
redis-cli ping
# Resposta esperada: PONG

# Verificar extensão PHP Redis
php -m | grep redis

Instalar Redis em Ubuntu/Debian

sudo apt update
sudo apt install redis-server php-redis

# Iniciar e habilitar Redis
sudo systemctl start redis
sudo systemctl enable redis

# Reiniciar PHP-FPM
sudo systemctl restart php8.2-fpm

Configurar WordPress para usar Redis

Opção 1: Plugin Redis Object Cache

O plugin "Redis Object Cache" de Till Krüss é o mais usado e mantido. Instale via WP-Admin → Plugins → Add New → "Redis Object Cache".

Após instalar, ative em Settings → Redis. O plugin verifica automaticamente se a extensão Redis está disponível e cria o ficheiro wp-content/object-cache.php.

Configuração básica no wp-config.php

// Configuração Redis (valores padrão — altere se Redis está num host/porta diferente)
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);

// Opcional: database específica (útil se partilha Redis entre sites)
define('WP_REDIS_DATABASE', 0);

// Prefixo para separar dados entre sites (obrigatório em Redis partilhado)
define('WP_REDIS_PREFIX', 'site1_');

// Timeout (em segundos)
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);

Opção 2: Configuração manual via object-cache.php

Em some managed hostings, pode ser necessário copiar o ficheiro object-cache.php manualmente para wp-content/. O plugin Redis Object Cache faz isto automaticamente via "Enable Object Cache" no painel.

Verificar que Redis está a funcionar

Via painel do plugin

Settings → Redis → deve mostrar "Connected" e estatísticas de hit ratio. Um hit ratio de >80% indica que Redis está a ser eficaz.

Via Query Monitor

Com o plugin Query Monitor ativo, a aba "Object Cache" mostra quantas operações de cache estão a ocorrer, hit/miss ratio e tempo economizado vs consultas à BD.

Via WP-CLI

wp redis status
wp redis info

Redis em multisite WordPress

Em WordPress Multisite, certifique-se que o prefixo Redis é diferente para cada sub-site — o plugin usa o Blog ID como parte do prefixo por defeito, o que é correto. Verifique em Settings → Redis de cada sub-site.

Memcached como alternativa ao Redis

Memcached é outra opção de object cache com performance semelhante para casos de uso básicos. Redis é preferível por:

  • Suporte a persistência (dados sobrevivem a reinício do servidor)
  • Estruturas de dados mais ricas
  • Melhor suporte em managed hostings
  • Mais funcionalidades de debugging

Para a maioria dos casos WordPress, Redis é a escolha certa.

Impacto na performance: o que esperar

Com Redis object cache bem configurado em site com muitas queries repetidas, é típico ver:

  • Redução de 30-60% no número de queries MySQL por pedido
  • Melhoria de 100-300ms no TTFB para páginas não cacheadas pelo page cache
  • Melhoria significativa em WooCommerce com utilizadores autenticados

Quer que otimizemos a performance da infraestrutura WordPress dos seus clientes?

O nosso serviço de manutenção WordPress inclui configuração de cache e otimização de performance.

Otimizar performance