Pular para o conteúdo
Início » Performance » WordPress redis Object Cache

WordPress redis Object Cache

Saiba como turbinar o WordPress utilizando redis como Object Cache reduzindo o tempo de consulta no banco de dados.

O Object Cache vem para reduzir um dos principais gargalos do wordpress que são as consultas realizadas no banco de dados.

Aprenda a instalar o melhor plugin e customizar e otimizar ainda mais a instalação para extrair o máximo de performance.

Melhor Plugin redis Object Cache

O melhor plugin para utilizar redis como object cache no wordpress é o Redis Object Cache Por Till Krüss.

O plugin é grátis e de código aberto, apesar de existir uma versão paga, não é necessário para a maioria dos usuários, pois a versão free atende perfeitamente.

Com o Redis e o phpredis instalado, o plugin vai funcionar como a foto abaixo, conectado, com permissão de escrita e acessível:

plugin redis painel

Por padrão o plugin acessa o redis localmente em 127.0.0.1 na porta 6379 usando tcp e o banco de dados 0 (zero) do redis.

Alterar parâmetros do plugin

As alterações devem ser feitas no arquivo wp-config.php, veja todos as opções possíveis:

Configurações e o padrão
WP_REDIS_HOST	127.0.0.1
WP_REDIS_PORT	6379
WP_REDIS_PATH	
WP_REDIS_SCHEME	tcp
WP_REDIS_DATABASE	0
WP_REDIS_PREFIX	
WP_REDIS_PASSWORD	
WP_REDIS_MAXTTL	0
WP_REDIS_CLIENT	
WP_REDIS_TIMEOUT	1
WP_REDIS_READ_TIMEOUT	1
WP_REDIS_IGNORED_GROUPS	[]
WP_CACHE_KEY_SALT	
WP_REDIS_RETRY_INTERVAL	
WP_REDIS_GLOBAL_GROUPS	[]
WP_REDIS_METRICS_MAX_TIME	3600
WP_REDIS_IGBINARY	false
WP_REDIS_DISABLED	false
WP_REDIS_DISABLE_ADMINBAR	false
WP_REDIS_DISABLE_METRICS	false
WP_REDIS_DISABLE_BANNERS	false
WP_REDIS_DISABLE_DROPIN_AUTOUPDATE	false
WP_REDIS_SSL_CONTEXT	[]

A única regra é que esses comandos, tem que estar acima da seguinte linha do wp-config.php:

require_once(ABSPATH . 'wp-settings.php');

Se for usar o em servidor local com tcp na porta 6379, não é necessário alterar nada, se tiver mais de 1 site é bom alterar o database e prefix.

// change the prefix and database for each site to avoid cache data collisions
// altere o prefixo e database para evitar colisão de cache
define( 'WP_REDIS_PREFIX', 'meu-site' );
define( 'WP_REDIS_DATABASE', 1 ); // 0-15

Se preferir usar em Unix Socket:

define( 'WP_REDIS_SCHEME', 'unix' );
define( 'WP_REDIS_PATH', '/var/run/redis.sock' );
// prefixo e database
define( 'WP_REDIS_PREFIX', 'meu-site2' );
define( 'WP_REDIS_DATABASE', 2 ); // 0-15

Para o redis funcionar em socket é preciso fazer algumas configurações:

# crie a pasta para execução
sudo mkdir -p /var/run/redis/

# altere a permissão da pasta
sudo chown -R redis:www-data /var/run/redis

# altere o redis.conf
sudo nano /etc/redis/redis.conf

## adicione acima da primeira linha:

# configure o redis.sock no diretório criado
unixsocket /var/run/redis/redis.sock
# altere as permissões para 775
unixsocketperm 775

# reinicie o servidor redis
sudo service redis-server restart
# ou
/etc/init.d/redis-server restart

Instalar o phpredis no Debian / Ubuntu

sudo apt-get update
sudo apt-get install php-dev php-pear build-essential
sudo pecl install redis

Depois adicione em /etc/php/8.1/fpm/php.ini

extension=redis.so

Reinicie o servidor:

sudo systemctl restart php8.1-fpm

Instalar o phpredis no CentOS / RHEL

sudo yum install epel-release
sudo yum install php-devel php-pear gcc make
sudo pecl install redis

Depois adicione em /etc/php.d/20-redis.ini

extension=redis.so

Reinicie o servidor:

sudo systemctl restart php-fpm

Instalar o Redis no Debian / Ubuntu

Para instalar o redis utilize o repositório oficial do redis:

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg

echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list

sudo apt-get update
sudo apt-get install redis
# ative
sudo systemctl enable redis-server.service
# inicie
sudo systemctl start redis-server.service

Edite as configurações em: /etc/redis/redis.conf

Instalar o Redis no CentOS / RHEL

Para instalar o redis utilize o comando yum:

sudo yum install epel-release
sudo yum install redis
# ative
sudo systemctl enable redis
# inicie
sudo systemctl start redis

Edite as configurações em: /etc/redis.conf

Dica final:

Após instalar o plugin e estiver tudo funcionando, é recomendando excluir todos os transients do bando de dados wordpress para que eles agora sejam armazenados no redis e ter melhor performance.

Veja o post sobre utilizar o wp-cli para excluir transients, o resultado do comendo vai ser similar a esse abaixo:

Success: 3 transients deleted from the database.
Warning: Transients are stored in an external object cache, and this command only deletes those stored in the database. You must flush the cache to delete all transients.
Marcações: