O Redis é um armazenamento de estrutura de dados em memória de código aberto (licenciado BSD), usado como banco de dados, cache e corretor de mensagens. Ele pode ser combinado com outros bancos de dados como MySQL para fornecer um mecanismo para armazenar em cache suas consultas.
Neste artigo, mostraremos como armazenar em cache as consultas MySQL necessárias para renderizar as páginas do WordPress. Isso nos proporcionará ganhos de desempenho significativos, embora com algumas ressalvas.
Introdução ao melhor cache do WordPress
O WordPress usa o banco de dados MySQL para armazenar em cache objetos de aplicativos internos (migalhas de pão, itens de menu, etc.) que podem ser caros para gerar. Como o banco de dados também lida com consultas para solicitações de página, é possivelmente o gargalo mais comum e geralmente causa tempos de carregamento maiores.
O Redis fornece um mecanismo de cache que atua como uma alternativa ao banco de dados MySQL. Se um usuário visita uma página do WordPress, as consultas MySQL necessárias para gerar a página são atendidas via Redis, que armazena os resultados em cache. Isso resulta em tempos de carregamento extremamente rápidos, comparáveis a páginas estáticas.
Outra opção popular de armazenamento em cache é o Memcached. No entanto, o Redis faz quase tudo que o Memcached faz, então usaremos a hospedagem do ScaleGrid para Redis™* para este tutorial.
Como funciona o cache do Redis?
Quando um usuário solicita uma página do WordPress pela primeira vez, uma consulta MySQL é executada no servidor. O Redis armazena essa consulta em cache, portanto, quando outro usuário solicita a mesma página do WordPress, os resultados são fornecidos pelo Redis sem a necessidade de consultar o banco de dados novamente.
Se a consulta não estiver armazenada em cache no Redis, os resultados serão fornecidos pelo MySQL, que serão adicionados ao cache do Redis.
Se um valor específico for atualizado no banco de dados, o valor Redis correspondente será invalidado para evitar que dados de cache incorretos sejam fornecidos ao usuário.
Requisitos do tutorial
Aqui está a lista de tecnologias usadas neste artigo:
- 2 instalações do WordPress (com e sem o plugin, para benchmarks)
- Servidor Redis™
- Plugin de cache de objeto Redis WP
Instalação do WordPress
Você pode baixar a versão mais recente do WordPress aqui e configurar duas instalações diferentes em um host como Heroku ou AWS.
Servidor Redis
ScaleGrid oferece suporte de classe mundial para clusters Redis™ Standalone e Master/Slave com recursos de segurança aprimorados. Usaremos um cluster Standalone Redis™ hospedado no ScaleGrid com a estratégia de armazenamento em cache Allkeys-LRU, e você pode se inscrever para uma avaliação gratuita de 30 dias de nossa hospedagem para Redis™ para ajudar neste tutorial.
Plugin de cache de objeto Redis WP
Este plugin é usado como um drop-in para sua instalação do WordPress e pode ser configurado para usar o host Redis™. Você pode encontrar o plug-in aqui.
Instruções de configuração:Redis Object Cache para WordPress
Aqui estão as etapas para instalar o Redis Object Cache Plugin em uma instalação do WordPress.
Etapa 1:instale o plug-in de cache do Redis
Este tutorial pressupõe que você já tenha duas novas instalações do WordPress configuradas. Em um deles, você precisa instalar o plugin Redis Object Cache. Depois que o plug-in estiver instalado, você poderá ativá-lo no menu de plug-ins.
Etapa 2:encontre o Redis em suas configurações
Depois que o plug-in for ativado, uma opção Redis aparecerá no menu Configurações.
Etapa 3:adicionar configurações do WordPress
Depois de configurar o plugin, precisamos adicionar opções de configuração ao arquivo de configuração do WordPress. No mínimo, você precisaria configurar as seguintes opções:
define('WP_REDIS_HOST', ''); define('WP_REDIS_PASSWORD', '');
Você pode encontrar as opções acima na página ScaleGrid Cluster Details para Redis™.
Salve a configuração e habilite o Cache de Objetos. Se a autenticação estiver correta, você deverá ver a seguinte tela:
Neste ponto, o Redis foi configurado como um cache para sua instalação do WordPress.
Monitoramento e depuração de consultas do WordPress
Todos os clusters Redis vêm instalados com a ferramenta de interface de linha de comando Redis (redis-cli) que você pode usar para monitorar as solicitações de consulta recebidas do WordPress. Aqui está uma captura de tela de como isso pode ficar:
Se você não vir nenhuma saída no console, acesse o site do WordPress e atualize.
Métricas do WordPress e Redis a serem rastreadas
A principal métrica a ser rastreada aqui é o tempo de carregamento da página. Aqui está a configuração padrão que estamos usando para a nova instalação:
- WordPress:4.9.5
- Redis:v.4.0.2
- Tema WordPress:Vinte e dezessete
Com base em uma nova instalação nos parâmetros acima, podemos ver uma redução de quase 50% nos tempos de carregamento da página:
- Sem o cache de objetos Redis =~900ms
- Com o cache de objetos Redis =~400ms
Desvantagens do cache de objetos Redis
Há algumas ressalvas ao usar a abordagem Redis Object Cache no WordPress. O mecanismo de cache não funciona bem se você tiver muitos plugins e temas instalados. Isso se deve ao fato de que todos os seus dados também precisariam ser armazenados em cache com o Redis.
Você também pode aprender a armazenar tweets em cache usando Node.js, Redis e Socket.io em nosso artigo anterior.
Como sempre, se você construir algo incrível, envie-nos um tweet sobre isso @scalegridio. Se você precisar de ajuda para gerenciar ou hospedar o MongoDB® Database ou Redis™, entre em contato conosco em [email protected].