Finalizei o meu post anterior com a promessa de trazer um post sobre o uso do Redis para fazer o cacheamento de informações do WordPress. É preciso deixar bem claro que estes procedimentos podem ser úteis para diversas configurações do Redis, como cacheamento utilizarei de exemplo o WordPress.
Utilizo o WordPress como exemplo apenas por ser um CMS bem popular e acredito que tem muita gente que vai gostar de ter estas dicas para configurar seu WordPress e deixar ele voando!
Para os que ainda estão um pouco perdidos com relação ao que é o Redis, volto a explicar. O Redis é um servidor de estruturas de dados, que pode ser usado como um servidor de banco de dados ou em paralelo ao MySQL, para aumentar o seu desempenho.
Nele, podemos gravar informações em Strings, Integers, Lists, Sets, Ordered Sets e Hash Tables.
No exemplo que iremos montar abaixo, ele irá funcionar como um cache persistente. Quando uma uma página for carregada pela primeira vez, a query do banco será executada no servidor.
Neste momento o Redis irá cachear a query. Após isto qualquer usuário que acessar esta mesma página terá o resultado vindo do Redis, sem a necessidade de consultar o banco novamente.
Mas chega de lenga lenga e vamos ao que realmente interessa. Configurar esta belezinha. Para isto vou utilizar um instância Cloud com Ubuntu 14.04 que tenho aqui na DialHost
Instalando o Redis
Para a instalação dele com o WordPress vamos precisar de dois packages em seu servidor: o redis-server e o php-redis ( Neste caso irei utilizar a branch php7 para conseguir configurar com o PHP 7). Para isto já estarei logado como root.
- Instalando o Redis server
apt-get install redis-server
2. Instalando o php-redis
git clone -b php7 https://github.com/phpredis/phpredis.git
3. Movendo ele para o /etc/
mv phpredis/ /etc/ && cd /etc/phpredis
4. Instalando e configurando o módulo
phpize
./configure
make && make install
5. Habilitando a extensão no php.ini e dando o restart no apache
touch /etc/php/mods-available/redis.ini
echo 'extension=redis.so' > /etc/php/mods-available/redis.ini
phpenmod redis
service httpd restart
6. Agora é só testar a versão do seu módulo.
php --ri redis
Configurando o Redis como Cache
Como nosso objetivo para este projeto é cachear as requisições do WordPress vamos configurá-lo como cache. Para isto temos que seguir os passos a seguir.
1. Vamos adicionar as linhas abaixo no arquivo /etc/redis/redis.conf
Linhas para adicionar:
maxmemory 256mb
maxmemory-policy allkeys-lru
Comando para adicionar:
vim /etc/redis/redis.conf
Após fazer a inserção das linhas salve e feche o arquivo.
Configurando o seu WordPress
Agora que o Redis já está rodando, é hora de configurar ele para trabalhar junto com o WordPress.
1. Para isto Vamos precisar de baixar o script object-cache.php para a pasta wp-content.
wget https://raw.githubusercontent.com/alleyinteractive/wp-redis/master/object-cache.php
chown www-data: object-cache.php
2. Agora precisamos ir no wp-config.php e configurá-lo com a chave de cache que terá o nome do seu site além de habilitar o cache persistent com o Redis. Para isto adicione as duas regras abaixo, ao final da seção “* Authentication Unique Keys and Salts”
define('WP_CACHE_KEY_SALT', 'meusite.com.br');
define('WP_CACHE', true);
3. Por fim, salve o arquivo e reinicie os serviços do Redis, o Apache e o PHP7-fpm.
service redis-server restart
service httpd restart
service php7-fpm restart
Conclusões
Após configurar a integração do Redis, podemos reparar um ganho no uso de recursos e na velocidade de carregamento da página. Como dito no começo deste artigo isto é porque não teremos que consultar o nosso banco de dados toda hora mais. O Cache vai agilizar, retornando todas as informações que ele cacheou em sua memória. Caso você queira monitorar o funcionamento do seu Redis basta usar o comando redis-cli
redis-cli monitor