O WordPress alimenta uma grande parte da web, mas sua popularidade destaca o desafio de manter o desempenho ideal. Uma solução poderosa para melhorar o desempenho do WordPress é o cache de objetos Redis. O uso desse banco de dados em memória, baseado em valores-chave, como cache, reduz a quantidade de consultas feitas ao banco de dados principal do site.
Este guia mostra como instalar e trabalhar com o cache de objetos Redis no seu site WordPress. Para clientes da Kinsta, o processo é particularmente simples.
Entendendo o cache de objetos
Quando você carrega uma página do WordPress, seu servidor normalmente precisa fazer várias consultas ao banco de dados para buscar o conteúdo, as configurações e outros dados necessários para exibir a página. Cada consulta leva tempo e, à medida que seu site cresce, esses pequenos atrasos podem se transformar em lentidão perceptível.
O cache de objetos ajuda você a armazenar os resultados dessas consultas ao banco de dados na memória. O cache mantém em armazenamento os dados frequentemente acessados e os disponibiliza instantaneamente quando necessário.
O armazenamento em cache de objetos pode transformar a forma como seu site WordPress lida com a recuperação e o processamento de dados, e o impacto vai além de simples melhorias de velocidade. Quando seu site sofre picos repentinos de tráfego, como durante uma campanha de marketing bem-sucedida ou após uma publicação viral na mídia social, o Redis pode atuar como um buffer entre os visitantes e o banco de dados.
Em vez de cada visitante acionar novas consultas ao banco de dados, o Redis fornecerá os dados armazenados em cache diretamente da memória. Isso permite que um site lide com um número significativamente maior de usuários simultâneos sem degradação do desempenho.
Para um site de eCommerce na Black Friday, as informações de produtos armazenadas em cache pelo Redis podem reduzir a carga do banco de dados e permitir que o site lide com mais volume de tráfego sem exigir recursos adicionais do servidor. Essa eficiência se traduz diretamente em economia de custos de hospedagem, pois você pode atender a mais visitantes com a infraestrutura existente.
Como o WordPress usa seu banco de dados
Compreender a maneira como o WordPress interage com seu banco de dados pode ajudar a explicar por que o armazenamento em cache se torna crucial à medida que um site cresce. Quando alguém acessa a página inicial do seu site, o WordPress precisa buscar várias informações no banco de dados para carregá-las. Se não houver um cache de página, isso pode resultar em múltiplas consultas, tornando o processo mais lento.

Vamos examinar o carregamento de uma página inicial típica: primeiro, o WordPress consulta a tabela wp_options
para buscar as configurações do seu site, a configuração do tema e os plugins ativos.

Se você tiver widgets, blocos ou elementos extras em sua barra lateral, isso acionará consultas extras. Por exemplo, uma seção de Artigos Recentes exigirá dados sobre artigos, categorias precisarão contar termos e qualquer funcionalidade de busca precisará construir um índice.

Se você estiver usando um plugin de construtor de páginas ou um tema complexo, essas consultas se multiplicarão significativamente. A complexidade aumenta com o conteúdo dinâmico. Considere uma configuração comum de blog em que os artigos exibem informações do autor, categorias, tags e artigos relacionados:

Cada prévia de artigo na sua página inicial exige que o WordPress combine dados de várias tabelas. Ele recupera o conteúdo principal de wp_posts
, obtém detalhes do autor de wp_users
e coleta metadados de wp_postmeta
. Uma página inicial que exibe apenas dez visualizações de artigos pode executar dezenas de consultas a bancos de dados separados.
Os gargalos no banco de dados do WordPress
Essa arquitetura de banco de dados também revela gargalos comuns que afetam o desempenho. Tipos de artigos personalizados, embora sejam poderosos para organizar conteúdo, geralmente dependem da wp_postmeta
para armazenar campos adicionais.
Alguns sites — como lojas on-line ou diretórios imobiliários — podem executar centenas de consultas por carregamento de página apenas para exibir cada produto ou propriedade. Cada item precisa exibir detalhes como metragem, quantidade, preço, número de quartos, variações e outros, todos armazenados separadamente como metadados.
A tabela wp_options
pode se tornar outro gargalo, pois armazena as configurações de qualquer plugin que possua opções configuráveis.
O impacto torna-se ainda mais perceptível quando há múltiplos visitantes simultâneos. Cada usuário aciona seu próprio conjunto de consultas, e o WordPress processa cada uma delas de forma independente. Durante picos de tráfego, esse processamento pode criar um gargalo que desacelera todo o site.
Essas interações com o banco de dados tornam o armazenamento em cache inestimável. Se você implementar o cache de objetos do Redis corretamente, ele poderá interceptar essas consultas repetidas e armazenar os resultados na memória. Em vez de executar várias junções e consultas de metadados para cada visitante, o WordPress pode recuperar os dados pré-processados diretamente do Redis. O resultado é que muitas vezes você pode reduzir dezenas de consultas ao banco de dados a uma única pesquisa no cache.
Opções populares para o cache de objetos do WordPress
Quando se trata de soluções de cache de objetos para WordPress, há várias opções disponíveis. Nem todos os provedores de hospedagem de sites oferecem suporte a todas as opções, por isso é importante garantir que sua escolha de cache de objetos atenda às suas necessidades.
O Memcached é um dos sistemas de cache mais antigos e amplamente utilizados. Ele é um sistema distribuído de cache em memória, simples e eficaz. Devido à sua longevidade, possui amplo suporte e, geralmente, consome poucos recursos. Com boa documentação e suporte, o Memcached é uma solução popular para cache de objetos em diversos níveis.

Dado seu foco na facilidade de uso, cenários mais complexos podem não ser adequados para esse armazenamento simples de chave-valor. Além disso, ele não oferece armazenamento persistente, o que significa que o cache será limpo ao recarregar a página.
O Couchbase oferece uma solução mais complexa, combinando capacidades de banco de dados orientado a documentos, funcionalidade típica de armazenamento de chave-valor e clusterização integrada. Essa tecnologia de clusterização automatiza a organização dos dados para melhor desempenho — semelhante ao funcionamento do Desfragmentador de Disco do Windows para otimizar o desempenho do sistema operacional.

No entanto, o armazenamento de valores-chave do Couchbase é secundário em relação à sua arquitetura orientada por documentos. Isso pode ser um problema se você precisar de menos limitações de consulta e maior precisão na validação e consistência dos dados.
Por que o Redis se destaca para o WordPress
Para o WordPress, o Redis oferece várias vantagens sobre a concorrência. Ao contrário do Memcached, o Redis oferece suporte a estruturas de dados complexas, como listas, conjuntos e conjuntos ordenados. Isso se alinha bem com as necessidades de organização de dados do WordPress e oferece a você uma maneira de aumentar a escala para configurações maiores e mais complexas.
Quando se trata de usar essas diferentes estruturas, a “operação atômica” do Redis é crucial. Em resumo, esse recurso utiliza um conceito de transações que agrupa vários comandos para serem executados ao mesmo tempo. A funcionalidade é mais complexa do que isso, mas as operações atômicas normalmente garantem consistência dos dados — um fator crucial para qualquer site WordPress.
Além disso, o Redis apresenta dois benefícios adicionais importantes:
- Persistência. O Redis pode persistir dados no disco, garantindo maior durabilidade em comparação com soluções puramente baseadas em memória.
- Melhor gerenciamento de memória. O Redis oferece opções de gerenciamento de memória mais sofisticadas do que outras ferramentas de cache. Isso pode proporcionar a você um melhor controle sobre o comportamento do seu cache de objetos.
Embora o Redis tenha aplicativos além do cache de objetos, sua estrutura de banco de dados baseada em chave-valor faz dele um parceiro quase ideal para o WordPress.
A relação entre WordPress e Redis
O WordPress inclui sua própria funcionalidade de cache de objetos por meio da função WP_Object_Cache
. Essa função atua como uma camada intermediária entre o código do seu site e o banco de dados, utilizando funções padronizadas para gerenciar dados em cache.
Quando um plugin ou tema solicita dados, o WordPress primeiro verifica se essas informações já estão armazenadas no cache de objetos usando essas funções internas. Por exemplo, veja o código abaixo que recupera a contagem de comentários de um usuário:
function get_user_comment_count($user_id) {
// Generate a unique cache key
$cache_key = 'user_comment_count_' . $user_id;
// Try to get the value from cache first
$comment_count = wp_cache_get($cache_key, 'user-stats');
// If not in cache, query the database
if (false === $comment_count) {
global $wpdb;
$comment_count = $wpdb->get_var(
$wpdb->prepare(
"SELECT COUNT(*) FROM $wpdb->comments WHERE user_id = %d",
$user_id
)
);
// Store the result in cache for future requests
wp_cache_set($cache_key, $comment_count, 'user-stats', 3600); // Cache for 1 hour
}
return $comment_count;
}
Quando configurado corretamente com Redis, essa função intercepta as solicitações ao banco de dados e verifica se os dados necessários já existem no cache Redis antes que o WordPress realize uma consulta ao banco.
Além disso, a integração com Redis vai além do simples armazenamento de chave-valor. A capacidade do Redis de lidar com estruturas de dados complexas reflete a organização hierárquica de conteúdo do WordPress. Por exemplo, quando o WordPress precisa recuperar um resultado de consulta complexo, como todas as páginas filhas de uma página principal com seus metadados associados, o Redis pode armazenar essa estrutura inteira como uma única entrada de cache.
Essa integração poderia melhorar substancialmente o desempenho. O Redis armazena todos os dados na memória, os tempos de acesso ocorrem em microssegundos, em comparação com os milissegundos necessários para consultas ao banco de dados. Embora essa diferença possa parecer pequena, para sites com uso intenso do banco de dados, ela pode resultar em tempos de carregamento de página duas a três vezes mais rápidos.
O cache de objetos do WordPress também oferece suporte à funcionalidade avançada do Redis por meio de configuração adicional. Por exemplo, você pode implementar tags de cache para um gerenciamento mais granular do cache:
function get_category_posts($category_id) {
$cache_key = 'category_posts_' . $category_id;
$posts = wp_cache_get($cache_key, 'category-posts');
if (false === $posts) {
$posts = get_posts(array(
'category' => $category_id,
'posts_per_page' => 10
));
wp_cache_set(
$cache_key,
$posts,
'category-posts',
3600,
array(
'tags' => array(
'category_' . $category_id,
'front_page_content'
)
)
);
}
return $posts;
}
// Later, when a post in this category updates:
wp_cache_delete_by_tag('category_' . $category_id);
Essa relação entre o WordPress e o Redis cria um sistema de cache altamente eficiente, que gerencia inteligentemente a persistência dos dados enquanto mantém sua consistência. A função WP_Object_Cache
garante que todos os seus plugins e temas possam se beneficiar do cache do Redis sem a necessidade de implementação direta. Além disso, a funcionalidade avançada do Redis oferece a flexibilidade de que você precisa para instalações complexas do WordPress.
Os clientes da Kinsta podem instalar o Redis em menos de 5 minutos
Considere um cenário típico: Sua loja WooCommerce fica mais lenta com o aumento do tráfego. Em muitas hospedagens de sites, a implementação do Redis envolve acessar o servidor, instalar manualmente, configurar as definições de segurança e realizar testes detalhados. Isso pode facilmente levar um dia inteiro de trabalho técnico — ou mais, caso surjam erros. A implementação do Redis na Kinsta transforma completamente esse processo.
Você tem a opção de adicionar o cache de objetos Redis com alguns cliques no painel MyKinsta por US$100 por mês. Os clientes podem navegar até Sites WordPress > nome do site > Complementos > Cache Redis (ou Sites WordPress > nome do site > Cache > Redis) e clicar no botão Habilitar:

A integração da Kinsta pode ter um grande impacto em seu site e no desempenho:
- A Kinsta aplica uma configuração ideal para sites WordPress, ajustando automaticamente os tempos de expiração do cache para evitar problemas comuns, como abandono de carrinho no WooCommerce. Uma configuração incorreta de expiração pode afetar negativamente o desempenho de instalações Redis mal configuradas.
- A integração do Redis é executada silenciosamente em segundo plano. Para você, essa é uma boa notícia, pois pode continuar gerenciando seu site enquanto se beneficia do desempenho que o cache de objetos proporcionará.
- O painel MyKinsta oferece opções flexíveis para monitorar o cache de objetos, permitindo um controle mais preciso sobre sua estratégia de cache dentro da infraestrutura da Kinsta.
A integração com outras ferramentas no MyKinsta é um grande benefício, pois o Redis se torna parte da sua estratégia geral de cache. Além disso, monitorar o impacto no desempenho é um aspecto essencial que você deve considerar.
Como implementar o Redis no seu site Kinsta
A configuração inicial do cache de objetos Redis no WordPress hospedado pela Kinsta é rápida. Ao ativar o complemento, a Kinsta instala e configura automaticamente o plugin Redis Object Cache, eliminando a necessidade de configurações adicionais. Caso prefira usar outro plugin de conexão, será necessário desativar o Redis Object Cache dentro do WordPress. Para isso, basta acessar o painel administrativo do WordPress, ir até a seção de plugins e clicar no link Desativar dentro do grupo de plugins instalados:

Grande parte do gerenciamento da instalação do Redis ocorrerá no site WordPress por meio das configurações do plugin. Isso inclui limpar o cache. O plugin Kinsta MU adiciona essa opção à barra de ferramentas do WordPress:

No entanto, existem outras maneiras de limpar o cache do Redis além do WordPress. Por exemplo, no painel MyKinsta, você pode fazer isso acessando Sites WordPress > nome do site > Caching > Cache do Servidor. Essa opção permite limpar o cache do Redis diretamente pelo painel de controle, garantindo que todas as otimizações de cache sejam aplicadas corretamente.

Essa opção limpa todos os caches que seu site usa, assim como as abordagens alternativas que usam o Secure Shell (SSH) e o WP-CLI.
Como instalar o Redis em outras hospedagens de WordPress
Embora o Redis seja uma solução popular para configurar um cache de objetos, nem todas as hospedagens oferecem suporte nativo ou integração direta. Isso significa que, em alguns casos, você precisará realizar a instalação manualmente no seu servidor.
Cada provedor de hospedagem terá uma abordagem diferente para isso — alguns podem nem fornecer acesso root necessário. No entanto, os passos típicos incluem a preparação do servidor, a instalação do Redis e, em seguida, a configuração do WordPress para utilizá-lo.
Preparação e instalação do servidor
A instalação do Redis requer um ambiente de servidor configurado corretamente. Para algumas hospedagens WordPress, isso pode significar a escolha de um plano adequado. É provável que você não consiga fazer isso em hospedagens compartilhadas típicas ou até mesmo em planos gerenciados. Um servidor privado virtual (VPS) será o ponto de partida, mas a hospedagem dedicada em nuvem será a opção ideal.
Independentemente disso, sua instalação do PHP precisará da extensão phpredis. A instalação dessa extensão permite que o Redis funcione com o PHP, o que é essencial para que você também trabalhe com o WordPress. Será necessário usar flags de compilação específicas e opções de configuração, das quais existem muitas.
Nos sistemas Ubuntu, instale os componentes necessários com:
sudo apt-get update
sudo apt install redis server
Quando o processo de instalação for concluído, execute sudo service redis status
para verificar se o Redis está sendo executado da maneira que você espera. Talvez você também queira executar redis-cli --version
para verificar se a instalação foi concluída como esperado.
Quando o Redis estiver em execução no servidor, você poderá instalar a extensão phpredis
:
sudo apt-get install php-redis
sudo phpenmod redis
Isso é tudo o que você precisa fazer para instalar o Redis, mas ainda precisa configurá-lo para o seu servidor e os recursos disponíveis.
Configuração do Redis
O arquivo de configuração do servidor Redis precisará de ajustes antes de começar a funcionar no seu site. A primeira tarefa é entender se o WordPress e o Redis operam no mesmo servidor. Normalmente, esse será o caso, então será necessário associar o Redis ao endereço localhost (127.0.0.1
).
Você pode usar qualquer editor de texto para acessar o arquivo de configuração do Redis, mas nano é uma escolha ideal e está disponível na maioria das instâncias de servidor:
sudo nano /etc/redis/redis.conf
Na maioria dos casos, basta localizar a linha correspondente, remover o comentário e salvar as alterações.
bind 127.0.0.1 ::1 # listens on loopback IPv4 and IPv6
Talvez você queira fazer outras alterações nesse arquivo de configuração. Aqui está uma configuração ideal para sites WordPress:
maxmemory 256mb
maxmemory-policy allkeys-lru
appendonly yes
appendfsync everysec
save 900 1
save 300 10
save 60 10000
Cada opção de configuração tem uma finalidade específica:
- A configuração
maxmemory
de 256 MB fornece um bom ponto de partida para a maioria das instalações WordPress. Essa configuração impede que o Redis consuma memória excessiva do sistema, enquanto mantém espaço suficiente para o cache melhorar significativamente o desempenho. - O
allkeys-lru maxmemory-policy
garante que o conteúdo acessado com mais frequência permaneça no cache. Em vez disso, alguns sites se beneficiam dovolatile-lru
, especialmente ao armazenar em cache os dados da sessão juntamente com o conteúdo regular. - As configurações
appendonly
eappendfsync
gerenciam o comportamento de persistência do Redis. Embora o Redis funcione principalmente como um cache, a manutenção da persistência evita perdas completas do cache durante as reinicializações do servidor. A configuraçãoeverysec
equilibra o desempenho com a segurança dos dados.
A diretiva save
define quando o Redis cria snapshots do banco de dados. Na configuração de exemplo, o Redis é configurado para salvar:
- A cada 15 minutos após uma alteração.
- A cada cinco minutos após 10 alterações.
- A cada minuto após 10.000 alterações.
Essas configurações de persistência ajudarão a manter a eficiência do cache enquanto protegem contra perda de dados.
Configuração de segurança do Redis e teste das alterações
Você também deve analisar a segurança aqui. Por exemplo, você pode configurar a autenticação por senha usando o comando requirepass
e até mesmo renomear comandos “perigosos”. A lista de controle de acesso (ACL) do Redis impõe restrições a determinados comandos destrutivos, e é recomendável revisar toda a lista para identificar possíveis impactos.
Depois que você concluir todas essas etapas, é uma boa ideia testar o desempenho do seu servidor Redis. O Redis CLI oferece vários comandos para benchmarking:
redis-cli --latency
redis-cli info | grep used_memory_human
redis-cli info | grep connected_clients
Em resumo, esses comandos estabelecem métricas básicas de desempenho para monitoramento contínuo e devem fazer parte do fluxo de manutenção regular.
Configuração do WordPress
Quando o Redis estiver em execução no seu servidor, o WordPress precisará ser configurado para usá-lo como um cache de objetos. Normalmente, a configuração inclui a especificação dos detalhes da conexão do Redis, como host, porta e quaisquer credenciais de autenticação.
Você pode adicionar manualmente o arquivo drop-in de cache de objeto apropriado ao diretório wp-content
, embora a instalação de um plugin dedicado de cache de objetos Redis seja a melhor maneira de alcançar isso. O único recomendado aqui é o Redis Object Cache, mencionado acima, pois a Kinsta não oferece suporte a muitos plugins de cache devido à sua própria funcionalidade. O Redis Object Cache funciona mais como um auxiliar para conectar o WordPress ao armazenamento chave-valor.
Gerenciamento do Redis além da instalação
As instalações típicas do cache de objetos Redis fornecem acesso à CLI do Redis. Na Kinsta, isso se estende por todo o fluxo de trabalho de desenvolvimento, como os ambientes de teste e o DevKinsta.
Monitoramento fundamental
Essa interface de linha de comando oferece a você recursos avançados para se conectar à instância do Redis e obter informações imediatas sobre o funcionamento do cache. Por exemplo, você pode revelar padrões de dados em cache, analisar o uso da memória e executar tarefas de manutenção em tempo real.
Para o monitoramento básico, há alguns comandos essenciais que você deve observar:
redis-cli INFO stats # View cache hits and misses
redis-cli INFO memory # Check memory utilization
redis-cli MONITOR # Watch live cache operations
O comando MONITOR
transmite operações de cache em tempo real, o que mostra exatamente como o WordPress interage com o Redis. Essa visibilidade ajuda você a identificar padrões de cache e oportunidades de otimização. O comando SLOWLOG
identifica consultas problemáticas:
redis-cli SLOWLOG GET 10 # View the 10 slowest recent operations
redis-cli SLOWLOG RESET # Clear the slow log for fresh monitoring
Você tem opções que vão muito além do que o Redis pode oferecer.
Comandos avançados de monitoramento do Redis
Uma maneira simples de controlar os recursos é monitorar os limites de conexão do Redis. Essa é uma excelente forma de evitar o esgotamento de recursos:
redis-cli CLIENT LIST | wc -l # Count active connections
redis-cli CONFIG GET maxclients # Check maximum allowed connections
O WordPress usa o Redis como uma forma de acelerar o acesso de leitura ao seu banco de dados. As entradas do cache são persistentes e sempre podem ser armazenadas em cache novamente no futuro. Para dar suporte a isso, o Redis suporta “políticas de remoção” para as chaves que armazena.
No entanto, isso pode gerar desvantagens na forma de pressão de memória. Uma baixa taxa de acerto (hit ratio) — que compara o número total de operações com aquelas feitas em chaves existentes — é um indício desse problema, então rastrear as seguintes métricas pode ser essencial:
redis-cli INFO stats | grep evicted_keys
redis-cli INFO stats | grep hit_rate
Se você descobrir que seu banco de dados sofre de pressão de memória, poderá aumentar a memória disponível, otimizar as políticas de expiração de chaves e implementar estratégias de cache seletivo. A abordagem exata que você adotará dependerá do seu site e da pressão que a memória está sofrendo.
Usando uma GUI com o Redis
Há muito mais para descobrir com os comandos do Redis e o uso da CLI, embora essa não seja a ferramenta mais apropriada para todos. É aqui que o aplicativo Redis Insight pode ser útil.

Isso oferece a você uma GUI para visualizar o cache de objetos do Redis sem a necessidade de um terminal, acesso ao servidor ou trabalho com linha de comando. Da mesma forma que você trabalharia com uma ferramenta como o TablePlus ou o SequelAce para visualizar o banco de dados do WordPress, um aplicativo como o Redis Insight é rápido de configurar e pode otimizar seu fluxo de trabalho.
Desafios e soluções comuns do Redis
Na maioria das vezes, a instalação do Redis funcionará sem necessidade de manutenção adicional. No entanto, algumas implementações do Redis podem apresentar desafios que exigem atenção. Por exemplo, você pode ver um aviso no MyKinsta informando que o WordPress não consegue detectar um plugin de conexão adequado.
Isso aparece quando você opta por usar um plugin que não seja o Redis Object Cache e pode ser ignorado com segurança na grande maioria das circunstâncias. No entanto, observe que a execução ideal do Redis depende de um plugin de conexão adequado.
Por exemplo, você pode não ver as métricas corretas ao analisar os dados na ferramenta Kinsta APM (ou em outras ferramentas analíticas da Kinsta). Esse problema pode ser resolvido caso você opte por construir uma instância personalizada do Redis dentro da Kinsta.
Também é recomendável entender as limitações da integração do Redis com a Kinsta. Por exemplo, podem ocorrer erros ao usar um tipo de instalação do WordPress não convencional. O uso de uma instalação Bedrock é uma causa comum desses erros, e a equipe de suporte da Kinsta pode ajudar a resolvê-los.
Resumo
O cache de objetos Redis oferece melhorias poderosas de desempenho para sites WordPress por meio de armazenamento e recuperação eficientes de dados. O sucesso está na implementação adequada, no monitoramento regular e na manutenção. A utilização da solução gerenciada da Kinsta permite que você trabalhe dentro desses princípios para garantir o desempenho ideal do site.
Cada etapa da implementação do Redis se baseia na anterior. Primeiro, comece com uma configuração de servidor adequada. Em seguida, prossiga com a integração ao WordPress. Por fim, os ganhos de desempenho podem ser mantidos por meio de monitoramento regular e otimização contínua. Essa abordagem ajudará você a criar uma infraestrutura de cache robusta, que evolui junto com o seu site, tendo a Kinsta como base.
Você já enfrentou desafios que foram resolvidos pela implementação do cache de objetos Redis na Kinsta? Compartilhe sua experiência nos comentários abaixo!