Saltar para o conteúdo principal
SparkCore
Base de conhecimento

Cache de objetos Redis no WordPress: o que faz e como configurar

Uma cache de objetos Redis guarda dados da base de dados do WordPress entre pedidos, para que o painel, o carrinho e os utilizadores com sessão iniciada esperem menos pela base de dados. Para visitantes anónimos que já recebem uma página da cache de páginas, acrescenta pouco. Este guia explica o que faz uma cache de objetos, quando o próprio WordPress recomenda uma, como configurar o Redis, o que pode usar sem Redis e como o Spark Speed, o plugin de cache que criamos, a trata.
Em resumo
  • Uma cache de objetos acelera tudo o que tem de passar pelo WordPress: painel, carrinho, checkout, utilizadores com sessão iniciada
  • Ao lado de uma cache de páginas, não em vez dela
  • O plugin sozinho não chega: o alojamento tem de fornecer um servidor Redis
  • Sem Redis, Memcached, SQLite ou ficheiros são alternativas

O que faz uma cache de objetos

O WordPress guarda os resultados das consultas à base de dados em memória durante um pedido. Depois desse pedido, tudo desaparece. A documentação do WordPress diz assim: os dados não são guardados de forma persistente entre carregamentos de página, a não ser que instale um plugin de cache persistente. Esse plugin coloca o ficheiro object-cache.php em wp-content e, a partir daí, o WordPress guarda esses dados em Redis, Memcached ou outro armazenamento, para que o pedido seguinte não tenha de os obter outra vez da base de dados.

Cache de objetos ou cache de páginas: o que acelera o quê

Uma cache de páginas guarda HTML completo e serve-o aos visitantes anónimos, muitas vezes antes de o WordPress arrancar. Aí, uma cache de objetos tem pouco a acrescentar. Uma cache de objetos ajuda em tudo o que tem de passar pelo WordPress: o painel, os utilizadores com sessão iniciada, o carrinho, o checkout e a conta de cliente do WooCommerce, os resultados de pesquisa e a reconstrução da cache de páginas. Complementam-se; uma não substitui a outra.

Precisa de uma? O que o próprio WordPress aconselha

O WordPress tem uma verificação de cache de objetos persistente na Saúde do site. No código-fonte do WordPress 7.0.2, essa verificação só recomenda uma num multisite ou quando um destes limiares é ultrapassado. Um pequeno site institucional com uma boa cache de páginas costuma ficar abaixo deles.
  • mais de 500 opções carregadas automaticamente, ou mais de 100 kB delas
  • mais de 1000 artigos, comentários, termos, utilizadores ou opções
  • os limiares podem ser alterados com o filtro site_status_persistent_object_cache_thresholds

Configurar o Redis com o plugin Redis Object Cache

O plugin sozinho não chega: tem de estar a correr um servidor Redis a que o PHP consiga aceder. Em alojamento partilhado, muitas vezes não existe e não pode iniciar um por si. Pergunte ao alojamento se o Redis está disponível e em que endereço. No nosso laboratório não havia nenhum servidor Redis a correr: o plugin indicou Connection refused e manteve o botão Enable Object Cache desativado. É uma escolha segura do plugin.
  1. Pergunte ao alojamento se o Redis está disponível e em que endereço ou socket
  2. Se o Redis não estiver em 127.0.0.1:6379, defina WP_REDIS_HOST e WP_REDIS_PORT (e, se necessário, WP_REDIS_PASSWORD) no wp-config.php
  3. Se partilhar o Redis com outros sites, dê a cada site o seu próprio WP_REDIS_PREFIX ou base de dados: caso contrário, a limpeza pode atingir toda a base de dados Redis
  4. Instale o Redis Object Cache, vá a Definições, Redis e clique em Enable Object Cache
  5. Verifique com wp redis status: Status deve mostrar Connected
Definições do Redis Object Cache a mostrar que o Redis está inacessível e um botão Enable Object Cache desativado
Redis Object Cache 3.0.0 no nosso laboratório sem servidor Redis: Redis Unreachable, por isso não pode ser ativado.

Alternativas: Memcached, APCu, SQLite e ficheiros

Sem Redis? Há outros armazenamentos. O Memcached funciona de forma semelhante e vem incluído em alguns planos de alojamento. O APCu guarda dados na memória do próprio PHP, mas por processo PHP, pelo que o WP-CLI e o servidor web nem sempre veem as alterações um do outro. O SQLite e os ficheiros não precisam de servidor separado e, por isso, também funcionam em alojamento básico.
PluginArmazenamentoInstalações ativasAvaliaçãoÚltima atualizaçãoPHP mínimo
Redis Object CacheRequer um servidor Redis; PhpRedis, Predis ou Relay500,000+4.5 (179)18 set. 20267.2
Docket CacheGuarda em ficheiros PHP, sem necessidade de Redis20,000+4.9 (50)15 out. 20267.2.5
SQLite Object CacheGuarda num ficheiro SQLite, sem necessidade de Redis10,000+5.0 (51)17 ago. 20265.6

Dados do wordpress.org, obtidos a 16 de outubro de 2026. As instalações são os números arredondados que o wordpress.org mostra.

Como funciona a cache de objetos no Spark Speed

O Spark Speed, o plugin de cache que criamos, tem a sua própria cache de objetos, como interruptor no separador Cache. O que esperar, a partir do código da versão 0.73.2 e da nossa documentação:
  • O Spark escolhe o armazenamento que o servidor oferece, por esta ordem: Redis, Memcached, SQLite e APCu. Um WP_REDIS_HOST configurado prevalece sempre.
  • Sem WP_REDIS_HOST, o Spark tenta 127.0.0.1:6379 e depois os caminhos de socket Redis conhecidos que existam no servidor.
  • Se o object-cache.php de outro plugin já lá estiver, o Spark não o substitui.
  • Se o Redis estiver definido com a política noeviction, o Spark avisa: o Redis recusa então novas escritas quando a memória está cheia, em vez de remover chaves antigas.
  • A cache de páginas e a cache de objetos têm cada uma o seu botão de limpeza; limpar uma não limpa a outra.
  • Se o seu alojamento já fornece uma cache de objetos, deixe o interruptor do Spark desligado.

Ajustar o Redis

Duas definições decidem se o Redis continua a funcionar bem como cache. maxmemory dá ao Redis um limite de memória. maxmemory-policy decide o que acontece quando esse limite é atingido. A documentação do Redis considera allkeys-lru uma boa predefinição para uma cache: as chaves menos usadas recentemente são removidas. Com noeviction, o Redis devolve um erro nas escritas quando está cheio. Em alojamento partilhado ou gerido, é o alojamento que define isto; pergunte em caso de dúvida.

Verificar e limpar

Se o WordPress usa uma cache de objetos persistente, vê-se na Saúde do site e com o WP-CLI. Após uma alteração feita diretamente na base de dados, por exemplo uma importação ou uma consulta SQL, limpe a cache de objetos; caso contrário, o WordPress continua a mostrar o valor antigo.
  • wp cache flush limpa a cache de objetos (funciona com qualquer plugin de cache de objetos)
  • wp redis status mostra o estado, o cliente e o drop-in do Redis Object Cache
  • wp spark-speed flush-object-cache limpa a cache de objetos do Spark Speed
  • No próprio Redis, keyspace_hits e keyspace_misses de INFO stats mostram com que frequência a cache acerta
Ative apenas uma cache de objetos de cada vez. Dois plugins que querem gerir o object-cache.php atrapalham-se um ao outro.
O Spark Speed combina cache de páginas e cache de objetos e escolhe o armazenamento que o seu servidor oferece.

Perguntas frequentes

Sobretudo nas partes que não vêm da cache de páginas: o painel, o carrinho e o checkout, os utilizadores com sessão iniciada e os resultados de pesquisa. As páginas que já vêm da cache de páginas ficam pouco mais rápidas.

Ambos guardam dados da cache de objetos na memória de um servidor separado. Para o WordPress, fazem o mesmo trabalho; a escolha depende sobretudo do que o seu alojamento oferece.

Só se o alojamento oferecer Redis. Em alojamento partilhado, normalmente não pode iniciar um servidor Redis por si. Sem Redis, pode usar uma cache de objetos em SQLite ou em ficheiros.

Com wp cache flush através do WP-CLI, ou com o botão do seu plugin de cache de objetos. Faça-o após alterações feitas diretamente na base de dados.