La caché en PHP: OPcache, Memcached y Redis
PHP ejecuta una parte muy grande de los sitios web dinámicos, por eso es importante que los programadores de PHP estén al día en caché: OPcache, cachés de datos y cachés de página.

¿Qué es PHP?
PHP es un lenguaje de programación que se usa para crear contenido dinámico en una página web, como mostrar una lista de registros de una base de datos, recuperar publicidad, o mostrar un feed de noticias o un stream de Twitter. Una forma de acelerar todo eso es usar caché en PHP.
¿Qué es la caché?
Las páginas web cargan más rápido cuando partes de la página, o la página entera, se guardan en memoria, en un archivo del servidor web, o en la red de distribución de contenidos (CDN), en lugar de crearse cada vez que alguien solicita esa URL. A eso se le llama caché. Proporciona una mejor experiencia de usuario, porque los usuarios no tienen que esperar tanto cuando hacen clic para que cargue la página siguiente.
Se puede cachear contenido, como imágenes, HTML y datos. Por ejemplo, no es necesario recuperar la misma imagen 10 veces para 10 personas distintas. Es mejor cachearla. La caché guarda esa página web con todos los datos ya en su sitio, como una lista de nombres.
Lectura relacionada: Varnish Cache explicado
El libro de recetas del programador
Piense en una llamada a la base de datos. No tiene sentido leer la base de datos 100 veces para 100 personas que cargan todas los mismos registros, algo común a muchas personas, como el precio de un artículo que usted promociona en la portada. Es más eficiente recuperar ese valor de la caché.
Las aplicaciones también pueden cachear respuestas de API. Por ejemplo, una API es como funciona la publicidad dentro de la página. Pero ese es un contraejemplo, porque un anuncio no se cachearía: el anunciante muestra anuncios distintos a personas distintas.
Así que la caché no es aplicable a todas las situaciones. En particular, no es adecuada para datos que cambian con frecuencia o que son únicos para cada usuario.
PHP tiene una caché importante incorporada: OPcache, que viene con PHP. Cada vez que se ejecuta un script PHP, PHP primero lo compila a bytecode. OPcache guarda ese bytecode compilado en memoria compartida, de modo que los scripts no se recompilan en cada petición. Asegúrese de que está activado y de que su memoria es lo bastante grande para su base de código. Suele ser la aceleración de PHP más barata que existe.
PHP, sin embargo, no tiene una caché incorporada para sus datos. Para eso existen frameworks y extensiones de código abierto, como los clientes de Memcached y Redis, que permiten al programador diseñar su código para que funcione así. Una biblioteca cliente consulta la caché antes de preguntar a la base de datos.
Caché en PHP y WordPress
WordPress tiene una API de object cache que puede respaldarse con Memcached o Redis, y los plugins de caché de página como W3 Total Cache o WP Super Cache añaden caché de página completa. Eso también acelerará la publicación de contenido en su CMS. Y cualquier código WordPress personalizado que escriba puede usar caché si añade un framework.
Ajustar la caché
Una objeción razonable: ¿cómo puede una caché conocer los cinco últimos titulares sin comprobarlo? La respuesta es que no lo sabe.
La caché se controla por tamaño y por tiempo. Puede, por ejemplo, fijar el tiempo de caché en 5 segundos o en 5 minutos.
Cuando expira el tiempo de caché, el código PHP hace el viaje de ida y vuelta al servidor de base de datos o a la API para comprobar si algo ha cambiado.
Las cachés también están limitadas por tamaño: cuando una caché se llena, las entradas usadas menos recientemente se expulsan para hacer sitio a las nuevas.
La conclusión
PHP ejecuta una parte muy grande de los sitios web dinámicos.
OPcache, una caché de datos y una caché de página son las tres capas que merece la pena configurar bien. Si tiene preguntas, póngase en contacto con nuestro equipo.
Del archivo del blog de EuroVPS, publicado por primera vez el 10 de agosto de 2021.
Todas las notas de campo