sql >> Base de Datos >  >> NoSQL >> Redis

Uso de Redis Object Cache para acelerar su instalación de WordPress

Redis es un almacén de estructura de datos en memoria de código abierto (con licencia BSD), que se utiliza como base de datos, caché y agente de mensajes. Se puede combinar con otras bases de datos como MySQL para proporcionar un mecanismo para almacenar en caché sus consultas.

En este artículo, mostraremos cómo almacenar en caché las consultas de MySQL que se requieren para representar las páginas de WordPress. Esto nos proporcionará ganancias de rendimiento significativas, aunque con algunas advertencias.

Introducción a un mejor almacenamiento en caché de WordPress

WordPress usa la base de datos MySQL para almacenar en caché los objetos internos de la aplicación (migas de pan, elementos de menú, etc.) que pueden ser costosos de generar. Dado que la base de datos también maneja consultas para solicitudes de página, es posible que sea el cuello de botella más común y, a menudo, aumenta los tiempos de carga.

Redis proporciona un mecanismo de almacenamiento en caché que actúa como una alternativa a la base de datos MySQL. Si un usuario visita una página de WordPress, las consultas de MySQL necesarias para generar la página se atienden a través de Redis, que almacena en caché los resultados. Esto da como resultado tiempos de carga ultrarrápidos, comparables a las páginas estáticas.

Otra opción popular de almacenamiento en caché es Memcached. Sin embargo, Redis hace casi todo lo que hace Memcached, por lo que usaremos el alojamiento ScaleGrid para Redis™* por el bien de este tutorial.

¿Cómo funciona el almacenamiento en caché de Redis?

Cuando un usuario solicita una página de WordPress por primera vez, se realiza una consulta de MySQL en el servidor. Redis almacena en caché esta consulta, por lo que cuando otro usuario solicita la misma página de WordPress, Redis proporciona los resultados sin necesidad de volver a consultar la base de datos.

Si la consulta no se almacena en caché en Redis, MySQL proporciona los resultados, que luego se agregan a la memoria caché de Redis.

Si se actualiza un valor particular en la base de datos, el valor de Redis correspondiente se invalida para evitar que se entreguen al usuario datos de caché incorrectos.

Requisitos del tutorial

Esta es la lista de tecnologías utilizadas en este artículo:

  • 2 instalaciones de WordPress (con y sin el complemento, para puntos de referencia)
  • Servidor Redis™
  • Complemento de caché de objetos Redis WP
Cómo acelerar su instalación de WordPress usando Redis Object CacheClick To Tweet

Instalación de WordPress

Puede descargar la última versión de WordPress aquí y configurar dos instalaciones diferentes en un host como Heroku o AWS.

Servidor Redis

ScaleGrid brinda soporte de primer nivel para clústeres autónomos y maestro/esclavo de Redis™ con funciones de seguridad mejoradas. Usaremos un clúster independiente de Redis™ alojado en ScaleGrid con la estrategia de almacenamiento en caché Allkeys-LRU, y puede registrarse para obtener una prueba gratuita de 30 días de nuestro alojamiento para Redis™ para ayudar con este tutorial.

Complemento de caché de objetos Redis WP

Este complemento se usa como complemento de su instalación de WordPress y se puede configurar para usar el host Redis™. Puede encontrar el complemento aquí.

Instrucciones de configuración:Caché de objetos de Redis para WordPress

Estos son los pasos para instalar el complemento de caché de objetos de Redis en una instalación de WordPress.

Paso 1:Instale el complemento de caché de Redis

Este tutorial asume que ya tienes dos instalaciones nuevas de WordPress configuradas. En uno de ellos, debe instalar el complemento Redis Object Cache. Una vez instalado el complemento, puede activarlo desde el menú de complementos.

Paso 2:encuentra Redis en tu configuración

Una vez que se active el complemento, aparecerá una opción de Redis en el menú de configuración.

Paso 3:Agregar configuraciones de WordPress

Después de configurar el complemento, debemos agregar opciones de configuración al archivo de configuración de WordPress. Como mínimo, deberá configurar las siguientes opciones:

define('WP_REDIS_HOST', '');
define('WP_REDIS_PASSWORD', '');

Puede encontrar las opciones anteriores en la página Detalles del clúster de ScaleGrid para Redis™.

Guarde la configuración y habilite la caché de objetos. Si la autenticación es correcta, debería ver la siguiente pantalla:

En este punto, Redis se ha configurado como un caché para su instalación de WordPress.

Supervisión y depuración de consultas de WordPress

Todos los clústeres de Redis vienen instalados con la herramienta de interfaz de línea de comandos de Redis (redis-cli) que puede usar para monitorear las solicitudes de consulta entrantes de WordPress. Aquí hay una captura de pantalla de cómo se vería esto:

Si no ve ningún resultado en la consola, vaya al sitio web de WordPress y actualice.

Métricas de WordPress y Redis para realizar un seguimiento

La principal métrica a seguir aquí es el tiempo de carga de la página. Esta es la configuración predeterminada que estamos usando para la instalación nueva:

  • WordPress:4.9.5
  • Redis:versión 4.0.2
  • Tema de WordPress:Veinte diecisiete

Según una instalación nueva con los parámetros anteriores, podemos ver una reducción de casi el 50 % en los tiempos de carga de la página:

  • Sin la caché de objetos de Redis =~900 ms
  • Con la caché de objetos de Redis =~400 ms

Desventajas de la memoria caché de objetos de Redis

Hay algunas advertencias sobre el uso del enfoque de Caché de objetos de Redis en WordPress. El mecanismo de almacenamiento en caché no funciona bien si tiene muchos complementos y temas instalados. Esto se debe al hecho de que todos sus datos también deberían almacenarse en caché con Redis.

También puede aprender a almacenar tweets en caché con Node.js, Redis y Socket.io en nuestro artículo anterior.

Como siempre, si construyes algo increíble, envíanos un tweet al respecto @scalegridio. Si necesita ayuda para administrar o alojar MongoDB® Database o Redis™, comuníquese con nosotros en [email protected].