El almacenamiento en caché de objetos implica el almacenamiento de consultas de la base de datos y, cuando está habilitado en su sitio de WordPress, puede ayudar a acelerar los tiempos de ejecución de PHP, reducir la carga en su base de datos y entregar contenido a sus visitantes más rápido.
En lugar de cargar cada parte de un sitio web cada vez que un usuario accede a él, el almacenamiento en caché de objetos almacena consultas de la base de datos que pueden recuperar contenido más rápidamente cuando sea necesario. Hay muchos tipos diferentes de almacenamiento en caché de objetos, como el almacenamiento en caché del navegador, la página, el móvil y el usuario.
En esta guía, analizaremos en profundidad el almacenamiento en caché de objetos y explicaremos cómo funciona con WordPress.
¿Qué es el almacenamiento en caché de objetos en WordPress?
El almacenamiento en caché de objetos es un proceso que almacena los resultados de la consulta de la base de datos para recuperarlos rápidamente la próxima vez que se necesiten.
El objeto en caché se servirá rápidamente desde la caché en lugar de enviar múltiples solicitudes a una base de datos. Esto es más eficiente y reduce cargas masivas innecesarias en su servidor.
En términos simples, el almacenamiento en caché de objetos permite que los objetos que se usan a menudo se copien y almacenen en una ubicación más cercana para un uso más rápido.
Una base de datos eficiente permite que los sitios web grandes de alto tráfico sirvan medios de alta calidad en todo el mundo.
La sobrecarga de su servidor dará como resultado un rendimiento deficiente del sitio web y una experiencia de usuario negativa. Cuando configura el almacenamiento en caché de objetos en su sitio web, aliviará la tensión en su servidor y creará consultas en la base de datos solo cuando sea necesario.
Aquí hay un desglose básico paso a paso de cómo funciona el almacenamiento en caché de objetos.
- Cuando un navegador accede a su sitio, realiza una solicitud de información del servidor.
- Su servidor recibe la solicitud, comienza a procesarla y entregarla, y luego devuelve el objeto al navegador.
- Con el almacenamiento en caché de objetos deshabilitado, esta consulta de base de datos se realizará cada vez que un usuario acceda a su sitio.
- Con el almacenamiento en caché de objetos habilitado, su servidor creará un duplicado de cada solicitud realizada en su caché.
- La próxima vez que se realiza una solicitud similar, primero se verifica el caché y la solicitud se atiende desde allí, en lugar de consultar la base de datos.
- Si no existe una copia, se realiza una solicitud a la base de datos para ser procesada y compilada. Una vez que se procesa, se envía de vuelta al navegador y se realiza una copia en la memoria caché para uso futuro.
- El almacenamiento en caché de objetos puede ayudar a evitar que su servidor consulte su base de datos innecesariamente.
Esto es altamente beneficioso para los sitios web de alto tráfico o para las horas ocupadas del día.
Puede pensar que esto solo debe aplicarse a grandes sitios web globales con tráfico pesado diario. Si bien esto es más cierto cuanto más grande es un sitio web y más se accede a él, esto puede ayudar a los sitios pequeños a optimizar una práctica y ofrecer una mejor experiencia de usuario.
Es probable que un sitio con poco tráfico no sobrecargue un servidor y pueda procesar, compilar y servir páginas varias veces al día. Sin embargo, el almacenamiento en caché de objetos en este caso permitirá que su sitio web disfrute de una carga de servidor ligera y velocidades de servicio más rápidas. Sin embargo, un sitio web grande exigirá más de su servidor y tendrá que procesar solicitudes mucho más grandes con una frecuencia mucho mayor y procesar y compilar páginas más rápido.
¿Cuáles son los diferentes tipos de almacenamiento en caché de objetos?
Diferentes tipos de almacenamiento en caché
El almacenamiento en caché puede ser el almacenamiento en caché del lado del cliente o del servidor. Como indican los nombres, la diferencia está en dónde se almacena el caché. La mayoría de los usuarios pueden estar familiarizados con un tipo de almacenamiento en caché del lado del cliente, almacenamiento en caché del navegador.
El navegador de un usuario hace una copia de una página web estática para que cuando visiten la página la próxima vez que alguien, el contenido se extraiga del caché de su computadora en lugar de tener que hacer una consulta en la base de datos y esperar la respuesta del servidor. Esto ocurre con mayor frecuencia para la mayoría de los usuarios de Internet cuando visitan regularmente un sitio web de alto tráfico y notan que se carga muy rápidamente.
El almacenamiento en caché de objetos es un tipo de almacenamiento en caché del lado del servidor. Eso significa que la memoria caché se almacena en el servidor y las consultas almacenadas en caché se sirven desde allí.
El almacenamiento en caché de objetos mantiene los resultados de la consulta de la base de datos que ya se han cargado y luego los sirve más rápido en la siguiente solicitud sin tener que consultar la base de datos.
Seremos muy detallados en nuestra discusión sobre el almacenamiento en caché de objetos, pero el almacenamiento en caché de páginas y el almacenamiento en caché de CDN son algunos tipos adicionales de almacenamiento en caché del lado del servidor.
El almacenamiento en caché de la página almacena los resultados de toda la página web, incluido HTML y contenido, de modo que en su próxima vista, el contenido se puede abrir sin que WordPress tenga que volver a cargarlo.
Esto es excelente para las velocidades del servidor, ya que significa que WordPress no necesita procesar y entregar la página cada vez que alguien la visita. Sin embargo, puede significar que esas páginas permanecerán desactualizadas si se actualiza el contenido. Puede establecer vencimientos si actualiza su contenido regularmente, pero este método de almacenamiento en caché a veces puede ser frustrante.
Redes de entrega de contenido (CDN) que utilizan múltiples servidores en diferentes partes del mundo para almacenar archivos y contenido del sitio web.
Esto acelera la entrega de las páginas web y el contenido a los usuarios que están al otro lado del mundo.
Esto proporciona una experiencia de usuario confiable, ya que permite que el contenido sea servido desde múltiples servidores.
Caché de objetos persistente: Redis, Memcached y APC
El almacenamiento en caché persistente de objetos lleva este proceso un paso más allá.
En lugar de almacenar en caché cada página o cada objeto todo el tiempo, el almacenamiento en caché de objetos persistente permite que los objetos que aparecen varias veces se almacenen en caché una vez y se sirvan cuando sea necesario.
Se recomienda si tiene mucho contenido repetido o si está intentando escalar su sitio web.
Puede eliminar una gran cantidad de tráfico innecesario hacia y desde su servidor y proporcionar una mejor experiencia general para el usuario.
Echaremos un vistazo a algunas herramientas populares de almacenamiento en caché de objetos persistentes, como Redis, Memcached y APC.
Estas son herramientas poderosas que proporcionan un almacenamiento de datos rápido que reducirá la carga en la base de datos de su sitio web.
También mejorarán el tiempo de respuesta y la capacidad de tráfico de su sitio web.
Esto le quita mucha tensión a su servidor al simplificar sus procesos básicos, lo que le permite concentrarse en el contenido, el negocio y el crecimiento de su sitio web.
Redis
Redis es, con mucho, uno de los principales plugins de WordPress para el almacenamiento en caché de objetos persistentes. Redis es un almacén de estructura de datos de código abierto en memoria. Es una base de datos, caché y centro de mensajes, todo en uno.
Funciona con muchas estructuras de datos como cadenas, hashes, listas, conjuntos y más. Redis viene con una serie de características sólidas, que incluyen replicación integrada, secuencias de comandos y persistencia en el disco. Redis Sentinel y Redis Cluster proporcionan características adicionales que incluyen alta disponibilidad y particionamiento automático, respectivamente.
El conjunto de datos en memoria es la característica clave de las altas prestaciones que ofrece Redis. Puede editar la persistencia de un objeto asignando un tiempo para actualizar y volcar datos nuevos o registrando nuevos cambios para actualizar cuando reinicie Redis. Alternativamente, esta característica se puede deshabilitar si necesita contenido para actualizar regularmente.
El complemento de WordPress más popular para usar es Redis Object Cache, con más de 30,000 instalaciones. Es fácil de instalar y configurar. Una vez que se activa el complemento, navegue a Configuración> Redis y haga clic en «Habilitar caché de objetos».
Memcached
Memcached también es un almacenamiento en caché de memoria distribuida de código abierto. Similar a Redis, se utiliza para optimizar el tráfico para procesos web dinámicos aligerando la base de datos de carga. Memcached almacena objetos de datos en la memoria dinámica. Una manera fácil de pensar en esto es como «memoria a corto plazo». Toda la información se almacena en la RAM, por lo que una vez que se agota la memoria libre, los datos más antiguos se eliminan y se reemplazan.
Memcached almacena datos basados en valores-clave para pequeñas cadenas u objetos arbitrarios, y se compone de cuatro componentes principales. El software del cliente proporciona al cliente una lista de servidores disponibles para usar. Un algoritmo de hash basado en el cliente permite seleccionar un servidor en función de una clave. El software del servidor administra y almacena valores y claves en una tabla hash. Por último, Memcached es, de forma predeterminada, un caché menos utilizado recientemente (LRU) y arrojará o caducará los datos antiguos según sea necesario.
Memcached asigna a cada elemento una clave, tiempo de vencimiento y datos sin procesar. Cuando el usuario solicita un contenido o datos, Memcached primero buscará en la memoria caché para ver si está almacenado allí. Si es así, recupera los datos desde allí y no necesita verificar la base de datos. Si los datos no están en el caché, Memcached consultará la base de datos, procesará los datos y los almacenará en Memcached.
Cada vez que los datos cambian o caducan, Memcached actualizará automáticamente el caché para cargar contenido nuevo. El software realiza un seguimiento y recupera todos los datos utilizando algoritmos de hash y una tabla de hash interna a la que se accede y se hace referencia constantemente.
Hay una serie de complementos compatibles que admiten Memcached, y cuando esté instalado verificará que se haya instalado Memcached en su servidor. W3TC es un excelente complemento que admite Memcached (así como Redis). Una vez que esté instalado y activado, navegue a Configuración general> Método de caché de página y seleccione Memcached.
APC
La caché PHP alternativa (APC) es una caché PHP libre y abierta de código de operación, que proporciona un marco sólido para el almacenamiento en caché y la optimización del código PHP. APC es diferente de Redis o Memcached, ya que se centra solo en el almacenamiento en caché de PHP. Al reducir las ejecuciones dinámicas de PHP, las ejecuciones de script se ejecutan de manera eficiente. Cuando un navegador realiza una solicitud de página, el servidor analizará el código en su script PHP y luego generará el código HTML resultante que se mostrará como una página en el navegador del usuario.
PHP es ideal para sitios web que se actualizan regularmente con nuevo contenido, de modo que cada visitante nuevo recibe una página actual. Si su script PHP está obteniendo información de una base de datos, APC generará y almacenará automáticamente un nuevo código para el próximo visitante. Tener que hacer esto en tiempo real cada vez que un nuevo usuario accede a su sitio web puede ralentizar enormemente su servidor. APC simplifica ese proceso para reducir las cargas del servidor. Al utilizar APC, se evitan las ejecuciones de scripts PHP redundantes, omitiendo el análisis y la compilación. APC registra el código de operación que se ejecuta cada vez que se necesita el script.
Cómo funciona APC
El almacenamiento en caché de APC lo ejecuta Zend Engine y se realiza en cinco pasos. Primero, APC leerá el código PHP de la base de datos y lo escribirá en la memoria. Luego, el PHP se cambia a tokens llamados, o Lexicons. Este proceso se llama Lexing. El tercer paso es el análisis, que procesa esos tokens para crear expresiones significativas.
Luego, durante la compilación, estas expresiones se organizan en códigos de operación. La ejecución es el último paso, cuando se ejecutan los códigos de operación para producir un resultado final que se servirá al navegador del usuario. APC tiene como objetivo reducir la cantidad de tiempo que deben ejecutarse los primeros cuatro pasos, centrándose en la organización y la ejecución.
Instalación de APC
Hay dos formas de instalar APC, desde un repositorio o usando PECL. Examinaremos ambos lados y veremos qué opción funciona mejor. Debido a que APC se ejecuta a nivel de servidor, no se puede usar en servidores de alojamiento compartido. Deberá tener un VPS o un servidor dedicado para instalarlo. Se recomienda el método de repositorio si es posible, ya que siempre es preferible tener datos en su propio servidor. Además, si elige este método, no se necesita realizar nada adicional en WordPress, ya que el almacenamiento en caché se realiza a nivel del servidor.
Usando PECL, el último archivo fuente debe ser descargado y compilado para su computadora. Este puede ser un buen método de uso, pero no es tan confiable como una instalación a nivel de servidor, ya que puede estar sujeto a problemas relacionados con actualizaciones o compatibilidad.
Configuración APC
Una vez que se completa la instalación, APC debe habilitarse en el archivo de configuración de PHP. SI instaló APC desde un paquete de repositorio, esto ya se hará por usted y es posible que solo necesite reiniciar su base de datos. Esta configuración debería ser suficiente para comenzar, pero puede configurar aún más APC.
Un parámetro que debe cambiar es apc.shm_size , que determina la cantidad de memoria que se utilizará para APC. De manera predeterminada, se establece en 30 MB, pero se recomienda aumentar este número a 64, 128 o incluso 512 MB, según sus necesidades, recursos, aplicaciones y RAM disponible en el servidor.
¿Cuáles son los beneficios de usar el almacenamiento en caché de objetos?
Muchas de las tareas requeridas por los servidores y sitios web son serviles, repetitivas y necesarias para que el sitio funcione correctamente.
El almacenamiento en caché de objetos maneja una gran cantidad de este trabajo, reduciendo drásticamente las cargas del servidor.
Esto permite que el contenido se sirva mucho más rápido mientras se mantiene una carga ligera en el servidor. El almacenamiento en caché de objetos es beneficioso tanto para los consumidores como para los proveedores de contenido, ya que esencialmente afecta la forma en que se entrega y recibe la preocupación.
Hay una serie de beneficios adicionales de almacenamiento en caché eficiente de objetos. La distribución de cachés de contenido en diferentes lugares de la red crea una mejor y más rápida accesibilidad para los usuarios.
Cuando el contenido está más cerca y es más fácil de acceder, esto reduce la carga del servidor y, finalmente, los costos del servidor.
Además, su servidor o sitio web se vuelve mucho más interconectado y receptivo de esta manera.
La proximidad y el acceso a los archivos hacen que las tareas sean más eficientes y la interactividad del usuario más rápida.
También podrá obtener un mejor rendimiento de su hardware si estas tareas están optimizadas.
El almacenamiento en caché de objetos permite que su hardware descanse y se centre en un trabajo más exigente, mientras que el contenido puede aprovechar otros servidores potentes entre el contenido y el consumidor.
Con el almacenamiento en caché de objetos, su contenido también permanece disponible durante los picos o interrupciones de la red, ya que está siendo servido por otro lugar. En el caso de una interrupción o una carga pesada, su sitio web no tiene que depender completamente de su servidor para servir contenido a sus usuarios.
Configuración de WP_Object_Cache
WordPress tiene su propio caché de objetos incorporado llamado WP_Object_Cache. Esta herramienta almacena automáticamente cualquier dato nuevo desde la base de datos a la memoria PHP mientras evita las redundancias. Sin embargo, WP_Object_Cache almacena en caché los objetos solo para una sola carga de página.
El objeto se descarta de la memoria caché una vez que se completa la solicitud, y tendrá que reconstruirse desde la próxima vez que se realice una solicitud para esa página.
Esta es una gran característica incorporada para que Worpress la integre, y puede ayudar a cualquier sitio administrado de alojamiento de WordPress a funcionar de manera más eficiente al no consultar solicitudes similares.
Sin embargo, para escalar su sitio web, interactividad o alcance, esto no será suficiente o eficiente.
Las soluciones de almacenamiento en caché persistente pueden entrar en juego aquí, ya que el almacenamiento en caché de objetos es inmensamente más poderoso cuando los objetos se pueden almacenar en caché en el transcurso de múltiples solicitudes de página. Esto ayudará a optimizar el tiempo extra de su servidor y base de datos a medida que continúe agregando contenido a su sitio web.
Por defecto, WordPress tendrá habilitado el almacenamiento en caché de objetos incorporado. Si tiene un sitio con poco tráfico o uno que no tiene mucho contenido, entonces esta característica puede ser suficiente para usted.
Sin embargo, si no está satisfecho con las velocidades de respuesta de su servidor, o si tiene un contenido pesado o un sitio de alto tráfico, considere usar una de las soluciones de almacenamiento en caché de objetos persistentes mencionadas anteriormente.
Preguntas frecuentes sobre el almacenamiento en caché de objetos
El almacenamiento en caché de objetos puede generar una serie de preguntas sobre qué herramienta utilizar, cómo instalarlos y cómo afectará todo esto a su sitio. En pocas palabras, el almacenamiento en caché de objetos tiene el potencial de mejorar inmediatamente el rendimiento de su sitio web y reducir las cargas de su servidor, sin importar el método que elija. Algunos métodos pueden ser mejores que otros para usted, mientras que otros pueden no ser una opción dada la configuración de su sistema.
¿Romperá mi sitio?
No hay ninguna razón por la cual el almacenamiento en caché de objetos deba romper su sitio. Siempre que instale las herramientas correctamente, su sitio web debería funcionar mejor y más rápido. Si usa el almacenamiento en caché de APC y la instalación a través de PECL, puede experimentar problemas en el sitio debido a actualizaciones o compatibilidad de firmware. Para garantizar que esto no ocurra, use el método de instalación del servidor para APC o use otra herramienta de almacenamiento en caché de objetos persistentes.
¿Puedo usarlo junto con otros métodos de almacenamiento en caché?
Se recomienda tener instaladas solo una vez las herramientas de almacenamiento en caché, ya que esto permite que la base de datos sea creada por un complemento o herramienta. Si sus propósitos específicos pueden requerir que use dos o más herramientas de almacenamiento en caché, asegúrese de que las configuraciones se complementen entre sí y no realice acciones opuestas o redundantes. Si esto no está configurado correctamente, puede experimentar archivos o bases de datos duplicados, pero no necesariamente cualquier problema del sitio. Con el tiempo, sin embargo, los duplicados pueden ocupar espacio y ralentizar la respuesta del servidor.
¿Qué tipo de resultados de rendimiento puedo esperar al usar el almacenamiento en caché de objetos?
Una vez configurado, debería ver una mejora inmediata en la respuesta del servidor y la carga del servidor. Su sitio web debería funcionar más rápido y al mismo tiempo usar menos recursos para servir contenido. Los usuarios de puntos geográficos alejados de su servidor tendrán mejores experiencias para acceder a su contenido. El primer resultado notable es una experiencia de usuario mejorada.
Para servidores más grandes y productores de contenido, la carga reducida de su servidor puede reducir su costo, especialmente durante un período de tiempo más largo. Además, libera mucho espacio valioso en el servidor.
Conclusión
El almacenamiento en caché de objetos es una herramienta que se utiliza en la web para mejorar las experiencias del sitio web, reducir las cargas del servidor y acelerar la interacción del usuario. De forma predeterminada, los sitios de WordPress tienen activado el almacenamiento en caché de objetos de sesión única, para ayudar a optimizar las experiencias de los sitios de forma predeterminada. Para muchos proveedores de contenido más pequeños, esto puede lograr sus objetivos.
Alternativamente, pueden no ser conscientes de cómo pueden optimizar la entrega de contenido mediante el almacenamiento en caché de objetos.
Las soluciones de almacenamiento en caché de objetos persistentes como Redis, Memcached o APC pueden ser necesarias para productores de contenido más grandes con más sitios web con muchos datos. Esto permite que las bases de datos se almacenen en caché en varias sesiones. Para sitios web masivos con videos, imágenes y medios, esto puede significar cambios drásticos para la experiencia del usuario y para las velocidades, cargas y costos del servidor.