Caché de Redis para WordPress con Nginx en Ubuntu

Recientemente he habilitado el caché de Redis para en el servidor donde tengo ubicada la página web. Por lo que os voy a explicar mi experiencia de cómo configurar el caché de Redis para WordPress, en un servidor web con Nginx, sobre un servidor con Ubuntu.

Está guía debería servir para las versiones, tanto de Ubuntu 18.04, 20.04 y 22.04, si no es así me lo podéis hacer ver en los comentarios.

Como siempre voy a utilizar mi VPS, en mi proveedor de confianza Clouding.io

Logo de Redis

Caché de Redis para WordPress con Nginx en Ubuntu

Antes de nada, debemos cumplir con una serie de requisitos, como tener instalado un servidor LEMP, además de WordPress, sobre un servidor con Ubuntu, a partir de la versión 18.04. Recomendado también que no utilicemos el usuario de root, sino un usuario diferente con permisos de administrador.

1. Instalar Redis

Esta parte es bastante sencilla. Simplemente debemos actualizar los repositorios e instalar:

sudo apt update
sudo apt install redis-server php-redis

Después, debemos reiniciar tanto PHP FPM como Nginx:

sudo systemctl restart php7.4-fpm
sudo nginx -s reload

2. Configurar Redis como caché

Editamos el fichero de configuración de Redis ubicado en “/etc/redis/redis.conf

sudo vim /etc/redis/redis.conf

Y añadimos justo al final del fichero:

maxmemory 256mb
maxmemory-policy allkeys-lru

El parámetro “maxmemory” lo debemos adaptar a nuestras necesidades y a la capacidad del servidor, según la memoria RAM disponible.

Una vez hecho esto, guardamos, salimos y reiniciamos:

sudo systemctl restart redis-server

3. Configurar el caché de Redis en WordPress

Debemos editar el fichero “wp-config.php” ubicado en la carpeta de configuración de WordPress, y añadir estas líneas al final de la sección “Authentication Unique Keys and Salts

define('WP_CACHE', true);
define('WP_CACHE_KEY_SALT', ‘ochobitshacenunbyte.com');

Hay que tener en cuenta que podemos dejar el valor “WP_CACHE_KEY_SALT” con cualquier cadena que queramos, pero debemos ser única por cada sitio Wodpress del servidor. La forma adecuada es utilizar un nombre de dominio.

4. Instalar el Plugin Redis Object Cache

Ahora nos toca irnos a la web de WordPress, y marchar al apartado “Plugin” y “Añadir nuevo”. Aquí, en el buscador, debemos encontrar el complemento “Redis Object Cache” e instalarlo y habilitarlo.

Una vez hecho esto, debemos copiar el fichero “object-cache.php” desde el directorio del complemento “wp-content/plugins/redis-cache/includes/object-cache.php” al directorio “wp-content

cp /directorio-del-proyecto/wp-content/plugins/redis-cache/includes/object-cache.php /directorio-del-proyecto/wp-content/

5. Corregir algunas cosas

El complemento “Redis Object Cache” almacena en caché el resultado de la función “wp_load_alloptions()”. De esta forma ayudará a mejorar el rendimiento de nuestro sitio web, pero existe el problema de que puede terminar con una condición incorrecta, al actualizar sus opciones. Por lo que, cuando queramos actualizar nuestra configuración de WordPress, es posible que no se reflejen los cambios de inmediato, incluso que no se guarden.

La solución para eso es agregar el siguiente script en el archivo «functions.php«

function vultr_maybe_clear_alloptions_cache( $option ) {
    if ( ! wp_installing() ) {
        $alloptions = wp_load_alloptions(); 
        if ( isset( $alloptions[ $option ] ) ) { 
            wp_cache_delete( 'alloptions', 'options' );
        }
    }
}
 
add_action( 'added_option',   'vultr_maybe_clear_alloptions_cache' );
add_action( 'updated_option', 'vultr_maybe_clear_alloptions_cache' );
add_action( 'deleted_option', 'vultr_maybe_clear_alloptions_cache' );

Ahora este script eliminará la memoria caché de asignaciones cada vez que se agregue, actualice o elimine una opción.

6. Probar la configuración

Lo primero es probarla desde la propia web, desde “Ajustes” y “Redis”, en el área de administración. Ahí se mostrará si todo marcha bien.

Información del plugin de Redis

También podemos utilizar las herramientas de línea de comandos:

redis-cli monitor

Si aparecen registros y cambian a medida que navegamos, eso significa que todo ha ido bien y que WordPress conectó correctamente con Redis. De esta manera ya podemos disfrutar del aumento de rendimiento al usar Redis como caché.

7. Fuentes consultadas

Vultr.com – How to Setup Redis Caching for WordPress with Ubuntu 20.04 and Nginx