La caché de objetos implica el almacenamiento de consultas a la base de datos y, cuando se activa en su sitio de WordPress, puede ayudar a acelerar los tiempos de ejecución de PHP, reducir la carga de su base de datos y entregar el 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, la caché de objetos almacena consultas a la base de datos que pueden recuperar el contenido más rápidamente cuando se necesita. Hay muchos tipos diferentes de caché de objetos, como la caché de navegador, de página, de móvil y de usuario.
En esta guía profundizaremos en el almacenamiento en caché de objetos y explicaremos cómo funciona con WordPress.
¿Qué es el caché de objetos en WordPress?
La caché de objetos es un proceso que almacena los resultados de las consultas a la base de datos para recuperarlos rápidamente la próxima vez que se necesiten.
El objeto almacenado en caché se servirá rápidamente desde la caché en lugar de enviar múltiples peticiones a una base de datos. Esto es más eficiente y reduce cargas masivas innecesarias en su servidor. En términos sencillos, la caché de objetos permite que los objetos que se utilizan a menudo se copien y almacenen en una ubicación más cercana para un uso más rápido.
Una base de datos eficaz permite a los grandes sitios web con mucho tráfico servir medios de alta calidad en todo el mundo.
La sobrecarga de su servidor provocará un rendimiento deficiente del sitio web y una experiencia negativa para el usuario. Cuando configure caché de objetos en su sitio webAliviará la carga de su servidor y creará consultas a la base de datos sólo cuando sea necesario.
He aquí un desglose básico paso a paso de cómo funciona el almacenamiento en caché de objetos.
- Cuando un navegador accede a su sitio web, solicita información al servidor.
- El servidor recibe la solicitud, comienza a procesarla y a servirla, y luego devuelve el objeto al navegador.
- Con la caché de objetos desactivada, esta consulta a la base de datos se producirá cada vez que un usuario acceda a su sitio. Con la caché de objetos activada, su servidor creará un duplicado de cada solicitud realizada en su caché.
- La próxima vez que se haga una petición similar, se comprobará primero la caché y la petición se servirá desde allí, en lugar de consultar la base de datos.
- Si no existe una copia, se realiza una petición a la base de datos para que sea procesada y compilada. Una vez procesada, se devuelve al navegador y se hace una copia en la caché para su uso futuro.
El almacenamiento en caché de objetos puede ayudar a evitar que su servidor consulte su base de datos innecesariamente. Esto es muy beneficioso para los sitios web de alto tráfico o los momentos del día más ocupados. Puede que pienses que esto solo se aplica a grandes sitios web globales con mucho tráfico diario.
Aunque esto es más cierto cuanto más grande es un sitio web y cuanto más se accede a él, puede ayudar a los sitios pequeños a optimizar una consulta y ofrecer una mejor experiencia al usuario.
Un sitio con poco tráfico probablemente no sobrecargará un servidor y podrá procesar, compilar y servir páginas unas pocas veces al día. Sin embargo, el almacenamiento en caché de objetos en este caso permitirá a su sitio web disfrutar de una carga de servidor ligera y velocidades de servicio más rápidas.
Un sitio web grande, sin embargo, exigirá más de su servidor, y tendrá que procesar peticiones mucho mayores con una frecuencia mucho mayor y procesar y compilar páginas más rápido.
¿Cuáles son los distintos tipos de caché de objetos?
Diferentes tipos de caché
La caché puede ser del lado del cliente o del lado del servidor. Como sus nombres indican, la diferencia está en dónde se almacena la caché. La mayoría de los usuarios están familiarizados con un tipo de caché del lado del cliente, la caché del navegador.
El navegador de un usuario hace una copia de una página web estática para que cuando visite la página la próxima vez que alguien, el contenido se extraiga de la caché de su ordenador en lugar de tener que hacer una consulta a la base de datos y esperar la respuesta del servidor.
La mayoría de los usuarios de Internet lo experimentan cuando visitan con regularidad un sitio web con mucho tráfico y observan que se carga muy rápidamente.
La caché de objetos es un tipo de caché del lado del servidor. Esto significa que la caché se almacena en el servidor, y las consultas en caché se sirven desde allí. La caché de objetos guarda los resultados de las consultas a la base de datos que ya se han cargado y luego los sirve más rápidamente en la siguiente petición sin tener que consultar la base de datos.
Hablaremos en detalle de la caché de objetos, pero la caché de páginas y la caché CDN son otros tipos de caché del lado del servidor.
La caché de página almacena los resultados de toda la página web, incluyendo el HTML y el contenido, de modo que en su próxima vista, el contenido puede ser traído sin que WordPress tenga que cargarlo de nuevo.
Esto es muy bueno para la velocidad 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 queden desactualizadas si se actualiza el contenido.
Puede establecer fechas de caducidad si actualiza sus contenidos con regularidad, pero este método de almacenamiento en caché puede resultar frustrante en ocasiones.
Las redes de distribución de contenidos (CDN) utilizan varios servidores en distintas partes del mundo para almacenar los archivos y contenidos de los sitios web. Esto acelera la entrega de las páginas web y los contenidos a los usuarios que se encuentran al otro lado del mundo. Esto proporciona una experiencia de usuario fiable, ya que permite que el contenido se sirva desde múltiples servidores.
Almacenamiento en caché de objetos persistentes: Redis, Memcached y APC
La caché de objetos persistente 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 persistentes permite que los objetos que aparecen varias veces se almacenen en caché una vez y se sirvan siempre que sea necesario.
Se recomienda si tiene mucho contenido que se repite o si está intentando ampliar su sitio web. Puede eliminar una gran cantidad de tráfico innecesario hacia y desde su servidor, y proporcionar una mejor experiencia de usuario en general.
Vamos a echar un vistazo a algunas herramientas populares de almacenamiento en caché de objetos persistentes, incluyendo Redis, Memcached y APC. Se trata de herramientas potentes que proporcionan un almacenamiento de datos rápido que reducirá la carga de la base de datos de tu sitio web.
También mejorarán el tiempo de respuesta y la capacidad de tráfico de su sitio web. De este modo, su servidor se libera de una gran carga al agilizar sus procesos básicos, lo que le permite centrarse en el contenido de su sitio web, su negocio y su crecimiento.
Redis

Redis es, con diferencia, uno de los principales plugins de caché de objetos persistentes para WordPress. Redis es un almacén de estructuras de datos en memoria de código abierto. 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 incluye una serie de potentes funciones, como replicación integrada, scripting y persistencia en disco.
Redis Sentinel y Redis Cluster proporcionan funciones adicionales, como alta disponibilidad y partición automática, respectivamente.
El conjunto de datos en memoria es la característica clave del alto rendimiento que ofrece Redis. Puede editar la persistencia de un objeto asignando un tiempo para refrescar y volcar nuevos datos o registrando nuevos cambios para actualizarlos cuando reinicie Redis.
Alternativamente, esta característica puede ser desbalanceada en usted necesita contenido para actualizar regularmente.
El plugin de WordPress más popular es Redis Object Cache, con más de 30.000 instalaciones. Es fácil de instalar y configurar. Una vez activado el plugin, vaya a Configuración > Redis y haz clic en "Activar caché de objetos".
Memcached

Memcached también es una caché de memoria distribuida de código abierto. Similar a Redis, se utiliza para optimizar el tráfico de procesos web dinámicos aligerando la base de datos de carga.
Memcached almacena objetos de datos en memoria dinámica. Una forma fácil de pensar en esto es como "memoria a corto plazo". Toda la información se almacena en RAM, por lo que una vez que la memoria libre se agota, los datos más antiguos son expulsados y reemplazados.
Memcached almacena datos basados en valores clave para pequeñas cadenas u objetos arbitrarios, y consta de cuatro componentes básicos. El software cliente proporciona al cliente una lista de servidores disponibles para su uso.
Un algoritmo hash basado en el cliente permite seleccionar un servidor en función de una clave. El software del servidor gestiona y almacena valores y claves en una tabla hash.
Por último, Memcached es, por defecto, una caché LRU (Least Recently Used), y desechará o expirará los datos antiguos según sea necesario.
Memcached asigna a cada elemento una clave, un tiempo de caducidad y datos sin procesar. Cuando el usuario solicita un contenido o dato, Memcached busca primero en la caché para ver si está almacenado allí. Si lo está, recupera los datos desde allí y no necesita consultar la base de datos.
Si los datos no están en la caché, Memcached devolverá un código de error a la aplicación que llama. La aplicación es entonces responsable de obtener los datos de otro lugar (posiblemente consultando la base de datos) y, opcionalmente, reenviar los datos frescos de nuevo a Memcached.
Las funciones de WordPress como get_option, get_postmeta utilizan datos almacenados en caché.
Cada vez que los datos cambian o caducan, Memcached actualiza automáticamente la caché para cargar contenido nuevo. El software realiza un seguimiento y recupera todos los datos mediante algoritmos hash y una tabla hash interna a la que se accede y consulta constantemente.
Hay una serie de plugins compatibles que admiten Memcached, y cuando se instalan comprobarán que tienes Memcached instalado en tu servidor. W3TC es un gran plugin que soporta Memcached (así como Redis).
Una vez instalado y activado, vaya a Configuración general > Método de caché de página y seleccione Memcached.
APC
Alternative PHP Cache (APC) es una caché PHP de código abierto y gratuita, 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 únicamente en el almacenamiento en caché de PHP.
Al reducir las ejecuciones dinámicas de PHP, las ejecuciones de script se ejecutan de forma eficiente. Cuando un navegador solicita una página, el servidor analiza el código del script PHP y genera el código HTML resultante que se mostrará como página en el navegador del usuario.
PHP es ideal para sitios web que se actualizan periódicamente con nuevos contenidos, de modo que cada nuevo visitante recibe una página actual. Si su script PHP extrae información de una base de datos, APC generará y almacenará automáticamente nuevo código para el siguiente 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 agiliza ese proceso para reducir la carga del servidor. Usando APC se evitan ejecuciones redundantes de scripts PHP, saltándose el análisis y la compilación. APC registra el opcode que se ejecuta cada vez que se necesita el script.
Cómo funciona APC
La caché de APC se ejecuta mediante el módulo Motor Zend y se desarrolla en cinco pasos. En primer lugar, APC leerá el código PHP de la base de datos y lo escribirá en memoria. A continuación, el PHP se convierte en tokens llamados, o Lexicons. Este proceso se denomina Lexing. El tercer paso es el análisis sintáctico, que procesa esos tokens para crear expresiones con sentido.
A continuación, durante la compilación, estas expresiones se organizan en opcodes. La ejecución es el último paso, cuando los opcodes se ejecutan para producir un resultado final que se servirá al navegador del usuario. APC pretende reducir el tiempo de ejecución de los cuatro primeros 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 ambas formas y veremos qué opción funciona mejor. Dado que APC se ejecuta a nivel de servidor, no puede utilizarse en servidores de alojamiento compartido.
Tendrás que tener un VPS o servidor dedicado para instalarlo. Se recomienda el método de repositorio si es posible, ya que tener los datos en tu propio servidor siempre es preferible.
Además, si elige este método, no es necesario realizar nada adicional en WordPress, ya que el almacenamiento en caché se realiza a nivel de servidor.
Si utiliza PECL, deberá descargar y compilar el archivo fuente más reciente para su ordenador. Este puede ser un buen método, pero no es tan fiable 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 completada la instalación, APC necesita ser habilitado en el archivo de configuración de PHP. Si instaló APC desde un paquete de repositorio, esto ya estará hecho para usted, y puede que sólo necesite reiniciar su base de datos. Estos ajustes deberían ser suficientes para empezar, pero puede configurar APC aún más.
Un parámetro que debe cambiar es apc.shm_sizeque determina la cantidad de memoria que se utilizará para APC. Por defecto, se establece en 30 MB, pero se recomienda aumentar este número a 64, 128 o incluso 512 MB en función de sus necesidades, recursos, aplicaciones y memoria RAM disponible en el servidor.
¿Cuáles son las ventajas de utilizar el caché de objetos?
Muchas de las tareas que realizan los servidores y sitios web son insignificantes, repetitivas y necesarias para que el sitio funcione correctamente. La caché de objetos se encarga de gran parte de este trabajo, reduciendo drásticamente la carga 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 de contenidos como para los proveedores, ya que afecta esencialmente a la forma en que se entrega y recibe la preocupación.
El almacenamiento eficiente de objetos en caché ofrece una serie de ventajas adicionales. Distribuir las cachés de contenidos en distintos lugares de la red crea una accesibilidad mejor y más rápida para los usuarios.
Cuando el contenido está más cerca y es más fácil acceder a él, se reduce la carga del servidor y, en última instancia, los costes del mismo. 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 mayor rendimiento de su hardware si se optimizan estas tareas. La caché de objetos permite a tu hardware descansar y centrarse en tareas más exigentes, mientras que el contenido puede aprovechar otros potentes servidores 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 caso de interrupción o de carga pesada, su sitio web no tiene que depender totalmente de su servidor para servir el contenido a sus usuarios.
Explicación de WP_Object_Cache

WordPress tiene su propia caché de objetos integrada llamada WP_Object_Cache. Esta herramienta almacena automáticamente cualquier dato nuevo de la base de datos en la memoria PHP para evitar redundancias.
Sin embargo, WP_Object_Cache cachea objetos sólo para una única carga de página. El objeto se descarta de la caché una vez que la solicitud se ha completado, y tendrá que ser reconstruido a partir de la próxima vez que se realice una solicitud para esa página.
Esta es una gran característica incorporada para Worpress para integrar, y puede ayudar a cualquier sitio de alojamiento WordPress gestionado 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 potente cuando los objetos se pueden almacenar en caché en el transcurso de varias solicitudes de página. Esto ayudará a optimizar el servidor y la base de datos a medida que continúes añadiendo contenido a tu sitio web.
Por defecto, WordPress tendrá activado el almacenamiento en caché de objetos. Si tienes un sitio con poco tráfico, o que no tiene mucho contenido, entonces esta característica puede ser suficiente para ti.
Sin embargo, si no está satisfecho con la velocidad de respuesta de su servidor, o tiene un sitio con mucho contenido o mucho tráfico, considere la posibilidad de utilizar una de las soluciones de almacenamiento en caché de objetos persistentes mencionadas anteriormente.
Preguntas frecuentes sobre el caché de objetos
El almacenamiento en caché de objetos puede suscitar una serie de preguntas sobre qué herramienta utilizar, cómo instalarlas 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 tu sitio web y reducir las cargas del servidor, independientemente del método que elijas.
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 web?
¿Puedo utilizarlo junto con otros métodos de almacenamiento en caché?
¿Qué tipo de resultados puedo esperar de la caché de objetos?
Para servidores y productores de contenidos de mayor tamaño, la reducción de la carga del servidor puede reducir su coste, especialmente durante un periodo de tiempo más largo. Además, libera mucho espacio valioso en el servidor.
Conclusión
La caché de objetos es una herramienta que se utiliza en toda la web para mejorar la experiencia de los sitios web, reducir la carga del servidor y acelerar la interacción del usuario. Por defecto, los sitios de WordPress tienen activada la caché de objetos de sesión única, para ayudar a optimizar las experiencias de los sitios de forma predeterminada.
Para muchos pequeños proveedores de contenidos, esto puede cumplir sus objetivos. Por otra parte, es posible que no sepan cómo optimizar la entrega de contenidos 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 grandes productores de contenidos con sitios web con más datos. Esto permite que las bases de datos se almacenen en caché en varias sesiones.
Para sitios web de gran tamaño con vídeos, imágenes y contenido multimedia, esto puede suponer cambios drásticos en la experiencia del usuario y en la velocidad, carga y costes del servidor.
Piensa cuántas veces entras en Youtube.com y cuánto tendría que servirte si tuviera que construir esa página web desde cero cada vez. Ahora multiplícalo por el 2.000 millones de usuarios de Youtube.
Sin la caché persistente de objetos, esto sería una tarea muy difícil, que consumiría mucho tiempo y energía, y a esa escala, casi imposible.
Divulgación: Este blog puede contener enlaces de afiliados. Si realiza una compra a través de uno de estos enlaces, es posible que recibamos una pequeña comisión. Leer información. Tenga la seguridad de que sólo recomendamos productos que hemos utilizado personalmente y que creemos que aportarán valor a nuestros lectores. Gracias por su apoyo.
Hola, creo APC ya demasiado viejo, hoy en día OPcache es más relevante para su uso. Puedes probar el plugin "docket cache" (no lo estoy promocionando, lo menciono porque a mi me funciona) para reemplazar APC con OPcache. Btw es bueno y bonito artículo..