Como instalar Redis en un servidor y utilizarlo en WordPress
Categoría:
WordPress, Sysadmin, WPO para WordPress
Fecha:
28/06/2024
Aunque Redis es un motor de base de datos en memoria RAM, realmente para lo que lo vamos a utilizar en este caso es como cache de objetos. Realmente podemos utilizar Redis como alternativa a Memcached, es decir, para guardar cache de objetos en la memoria RAM del servidor.
Desde el punto de vista práctico, en WordPress cuando utilizamos cache de objetos, estamos guardando trozos de código e incluso el resultado de algunas consultas a la base de datos.
Es mucho más eficiente y rápido obtener datos guardados en Redis, que realizar las consultas correspondientes a la base de datos MySQL o MariaDB donde están guardados los datos de forma persistente.
En este artículo vamos a ver cómo instalar Redis en un servidor VPS y para ello vamos a utilizar como ejemplo un servidor VPS optimizado de Raiola Networks con el panel RaiolaCP, aunque esto también sería válido para un servidor con VestaCP o HestiaCP que funcione sobre Almalinux 8 o Almalinux 9.
Realmente si quisiéramos realizar el proceso en un servidor con un sistema operativo basado en Debian o Ubuntu, tan solo debemos cambiar el comando para la instalación de paquetes (DNF o YUM por APT), ya que el resto del proceso es exactamente el mismo.
En primer lugar, vamos a conectarnos por SSH al servidor utilizando una cuenta con permisos de root.
Normalmente, yo cuando me conecto suelo actualizar tirar un “update” para tener todo actualizado antes de instalar el nuevo servicio.
En este caso estoy instalando Redis en Almalinux 8, por lo que el gestor de paquetes es DNF, aunque tambien podemos utilizar YUM (en Almalinux 8, en la 9 ya no). Cuando haya acabado el proceso, podremos empezar con la instalación de Redis. Normalmente en la mayoría de tutoriales que podemos encontrar por Internet, utilizan DNF en AlmaLinux para la instalación de Redis. En Almalinux 8 podemos utilizar DNF o YUM indiferentemente, pero a partir de Almalinux 9 debemos utilizar DNF.
Cuando finalice la instalación, ya tendremos el servicio de Redis instalado, pero ahora tiene que funcionar.
En primer lugar, vamos a ejecutar el siguiente comando para arrancar el servicio de Redis:
Y para que el servicio de Redis inicie siempre al arrancar el servidor, debemos utilizar el siguiente comando:
O también podemos utilizar este otro y así lo arrancamos y lo dejamos configurado para que siempre se inicie al arrancar el servidor:
Ahora vamos a comprobar que todo está funcionando correctamente, junto con los puertos y algunos datos más. Para esto utilizamos el siguiente comando:
Con esto, Redis está funcionando y listo para recibir datos.
En este caso no tendremos que instalar una extensión en PHP como cuando utilizamos Memcached, podemos usar Redis directamente si utilizamos el plugin que vamos a comentar a continuación, aunque hay algunos plugins que requieren tener activa la extensión PHPRedis en el intérprete de PHP.
Aunque existen varios plugins para utilizar Redis en WordPress, pero a mí personalmente el que más me gusta es Redis Object Cache, un plugin con versión gratuita que podemos encontrar en el repositorio de WordPress: https://wordpress.org/plugins/redis-cache/
Al instalarlo en WordPress, el plugin detectará si tenemos Redis instalado y funcionando en el servidor, y si es así, nos permitirá activar el cache guardado en Redis con el botón azul “Activar la cache de objetos” que puedes ver en la siguiente captura:
Al hacer esto, si Redis está correctamente configurado y el servicio funciona, WordPress empezará a guardar datos de cache de objetos en Redis. De hecho, al hacer esto, internamente el plugin creará el archivo object-cache.php dentro de la carpeta WP-CONTENT de WordPress y el plugin nos mostrará la siguiente información:
Ahora ya tenemos nuestro WordPress utilizando Redis como cache de objetos, y con el plugin Redis Object Cache podemos ver métricas y estadísticas de uso.
Redis es una buena opción para entornos donde hay mucho tráfico o el sitio web es muy complejo y necesitamos un cache de objetos porque no podemos exprimir al máximo el cache de página.
Realmente en este tipo de sitios web tenemos dos caminos:
Son dos caminos totalmente diferentes, y la elección suele depender de si le damos importancia o no a las técnicas WPO que nos ayudan a mejorar las Core Web Vitals.
Llegado a este punto, tan solo nos quedaría una cosa, y es que podemos personalizar la configuración de Redis mediante el archivo redis.conf que podemos encontrar en la siguiente ruta:
En algunas distros Linux podemos encontrar el archivo redis.conf en la siguiente ruta:
Personalmente, siempre establezco un máximo de memoria dependiendo del tamaño de la web en la que voy a implementar Redis. Para especificar por ejemplo 256 MB de tamaño máximo de memoria utilizable para Redis, simplemente debemos poner esto en el archivo:
Evidentemente, hay muchos más parámetros que podemos configurar en Redis, pero con esto ya tendremos Redis funcionando, incluso sin tocar el archivo redis.conf.
Después de cambiar parámetros en el redis.conf, debemos reiniciar el servicio de Redis. Podemos hacerlo con el siguiente comando:
Si necesitas ayuda con el WPO de tu sitio web WordPress o si tienes una web compleja como una tienda online WooCommerce con muchos plugins, contacta con nosotros y te ayudaremos, estamos especializados en la optimización de rendimiento en sitios web con mucho tráfico.
Desde el punto de vista práctico, en WordPress cuando utilizamos cache de objetos, estamos guardando trozos de código e incluso el resultado de algunas consultas a la base de datos.
Es mucho más eficiente y rápido obtener datos guardados en Redis, que realizar las consultas correspondientes a la base de datos MySQL o MariaDB donde están guardados los datos de forma persistente.
Personalmente, me cuesta mucho más trabajar con Redis que con Memcached, pero supongo que esto es simplemente una opinión personal debido a que estoy más acostumbrado a trabajar con Memcached que con Redis en entornos de alto tráfico.
En este artículo vamos a ver cómo instalar Redis en un servidor VPS y para ello vamos a utilizar como ejemplo un servidor VPS optimizado de Raiola Networks con el panel RaiolaCP, aunque esto también sería válido para un servidor con VestaCP o HestiaCP que funcione sobre Almalinux 8 o Almalinux 9.
Realmente si quisiéramos realizar el proceso en un servidor con un sistema operativo basado en Debian o Ubuntu, tan solo debemos cambiar el comando para la instalación de paquetes (DNF o YUM por APT), ya que el resto del proceso es exactamente el mismo.
En primer lugar, vamos a conectarnos por SSH al servidor utilizando una cuenta con permisos de root.
Normalmente, yo cuando me conecto suelo actualizar tirar un “update” para tener todo actualizado antes de instalar el nuevo servicio.
En este caso estoy instalando Redis en Almalinux 8, por lo que el gestor de paquetes es DNF, aunque tambien podemos utilizar YUM (en Almalinux 8, en la 9 ya no). Cuando haya acabado el proceso, podremos empezar con la instalación de Redis. Normalmente en la mayoría de tutoriales que podemos encontrar por Internet, utilizan DNF en AlmaLinux para la instalación de Redis. En Almalinux 8 podemos utilizar DNF o YUM indiferentemente, pero a partir de Almalinux 9 debemos utilizar DNF.
dnf install redis
Cuando finalice la instalación, ya tendremos el servicio de Redis instalado, pero ahora tiene que funcionar.
En primer lugar, vamos a ejecutar el siguiente comando para arrancar el servicio de Redis:
systemctl start redis
Y para que el servicio de Redis inicie siempre al arrancar el servidor, debemos utilizar el siguiente comando:
systemctl enable redis
O también podemos utilizar este otro y así lo arrancamos y lo dejamos configurado para que siempre se inicie al arrancar el servidor:
systemctl enable --now redis
Ahora vamos a comprobar que todo está funcionando correctamente, junto con los puertos y algunos datos más. Para esto utilizamos el siguiente comando:
systmctl status redis
Con esto, Redis está funcionando y listo para recibir datos.
En este caso no tendremos que instalar una extensión en PHP como cuando utilizamos Memcached, podemos usar Redis directamente si utilizamos el plugin que vamos a comentar a continuación, aunque hay algunos plugins que requieren tener activa la extensión PHPRedis en el intérprete de PHP.
Aunque existen varios plugins para utilizar Redis en WordPress, pero a mí personalmente el que más me gusta es Redis Object Cache, un plugin con versión gratuita que podemos encontrar en el repositorio de WordPress: https://wordpress.org/plugins/redis-cache/
Aunque Redis Object Cache tiene una versión de pago mucho más completa, su precio es bastante caro para tratarse de un plugin “de nicho” y solo es recomendable para webs muy complejas y/o con mucho tráfico.
Al instalarlo en WordPress, el plugin detectará si tenemos Redis instalado y funcionando en el servidor, y si es así, nos permitirá activar el cache guardado en Redis con el botón azul “Activar la cache de objetos” que puedes ver en la siguiente captura:
Al hacer esto, si Redis está correctamente configurado y el servicio funciona, WordPress empezará a guardar datos de cache de objetos en Redis. De hecho, al hacer esto, internamente el plugin creará el archivo object-cache.php dentro de la carpeta WP-CONTENT de WordPress y el plugin nos mostrará la siguiente información:
Aunque el plugin Redis Object Cache nos permite guardar cache de objetos en Redis, con el plugin W3 Total Cache podemos guardar tambien cache de consultas a la base de datos y cache de página en Redis. La ventaja es que todo lo que guardemos en Redis, se guardara en la RAM del servidor para acceder a esos datos de la forma más rápida posible.
Ahora ya tenemos nuestro WordPress utilizando Redis como cache de objetos, y con el plugin Redis Object Cache podemos ver métricas y estadísticas de uso.
Redis es una buena opción para entornos donde hay mucho tráfico o el sitio web es muy complejo y necesitamos un cache de objetos porque no podemos exprimir al máximo el cache de página.
Realmente en este tipo de sitios web tenemos dos caminos:
- Utilizar el plugin Redis Object Cache para cache de objetos junto con un plugin de cache de página como WP Rocket o LiteSpeed Cache.
- Utilizar W3 Total Cache para guardar cache de página, cache de consultas y cache de objetos en Redis.
Son dos caminos totalmente diferentes, y la elección suele depender de si le damos importancia o no a las técnicas WPO que nos ayudan a mejorar las Core Web Vitals.
Llegado a este punto, tan solo nos quedaría una cosa, y es que podemos personalizar la configuración de Redis mediante el archivo redis.conf que podemos encontrar en la siguiente ruta:
/etc/redis/redis.conf
En algunas distros Linux podemos encontrar el archivo redis.conf en la siguiente ruta:
/etc/redis.conf
Personalmente, siempre establezco un máximo de memoria dependiendo del tamaño de la web en la que voy a implementar Redis. Para especificar por ejemplo 256 MB de tamaño máximo de memoria utilizable para Redis, simplemente debemos poner esto en el archivo:
maxmemory 256mb
Evidentemente, hay muchos más parámetros que podemos configurar en Redis, pero con esto ya tendremos Redis funcionando, incluso sin tocar el archivo redis.conf.
Después de cambiar parámetros en el redis.conf, debemos reiniciar el servicio de Redis. Podemos hacerlo con el siguiente comando:
systemctl reload redis
Si necesitas ayuda con el WPO de tu sitio web WordPress o si tienes una web compleja como una tienda online WooCommerce con muchos plugins, contacta con nosotros y te ayudaremos, estamos especializados en la optimización de rendimiento en sitios web con mucho tráfico.
Deja una respuesta
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *