Aumente el rendimiento de su sitio web con PhpFastCache

En este artículo, vamos a explorar la biblioteca PhpFastCache, que le permite implementar el almacenamiento en caché en sus aplicaciones PHP. Por lo tanto, ayuda a mejorar el rendimiento general del sitio web y los tiempos de carga de la página..

¿Qué es PhpFastCache?

PhpFastCache es una biblioteca que facilita la implementación del almacenamiento en caché en sus aplicaciones PHP. Es una biblioteca fácil de usar y, sin embargo, potente que proporciona varias API para ayudarlo a implementar una estrategia de almacenamiento en caché de su elección sin muchas complicaciones..

No cometa el error de suponer que es simplemente un esquema de almacenamiento en caché del sistema de archivos tradicional. De hecho, PhpFastCache admite una gran cantidad de adaptadores que le permiten elegir entre back-ends de alto rendimiento como Memcache, Redis, MongoDB, CouchDB y otros..

Echemos un vistazo rápido a algunos de los adaptadores más populares:

  • sistema de archivos
  • Memcache, Redis, y APC
  • CouchDB y MongoDB
  • Zend Disk Cache y Zend Memory Cache

Si no encuentra su elección de adaptador en la lista anterior, podría desarrollar fácilmente un controlador personalizado que se conecte al sistema y funcione sin esfuerzo.

Además de la funcionalidad básica, la biblioteca PhpFastCache también proporciona un mecanismo de eventos que le permite responder a ciertos eventos predefinidos. Por ejemplo, cuando se elimina algo del caché, puede capturar este evento y actualizar o eliminar también los datos relacionados..

En las próximas secciones, veremos la instalación y configuración de PhpFastCache, junto con la demostración de algunos ejemplos..

Instalacion y configuracion

En esta sección, veremos la instalación y configuración de la biblioteca PhpFastCache. Hay diferentes maneras en que podrías enfocar esto en tu proyecto..

Si solo quieres descargar el .cremallera o .tar.gz Versión de la biblioteca sin muchos problemas, puede continuar y obtenerla del sitio oficial..

Por otro lado, también podría instalarlo como un paquete Composer. Esa debería ser la forma preferida, ya que facilita el mantenimiento y la actualización en el futuro. Si aún no has instalado Composer, tendrás que hacerlo primero..

Una vez que haya instalado Composer, avancemos y agarremos la biblioteca PhpFastCache usando el siguiente comando.

$ composer requiere phpfastcache / phpfastcache

Al completar con éxito ese comando, debe tener el directorio del proveedor en su lugar, que contiene todo lo que necesita para ejecutar la biblioteca PhpFastCache. Por otro lado, si le falta alguna de las bibliotecas o extensiones requeridas por la biblioteca PhpFastCache, Composer le pedirá que las instale primero.

También deberías encontrar el compositor.json archivo que se ve así:

"require": "phpfastcache / phpfastcache": "^ 6.1"

No importa la forma en que haya elegido instalar la biblioteca PhpFastCache, lo único que es necesario es incluir el autoload.php archiva en tu aplicación para empezar las cosas.

Si está utilizando el flujo de trabajo basado en compositor, autoload.php se encuentra debajo de la vendedor directorio.

// Incluir compositor autoloader require 'YOUR_APP_PATH /vendor/autoload.php';

Por otro lado, si has descargado el .cremallera o .tar.gz paquete, autoload.php debe estar disponible en src / autoload.php.

// Incluir el autocargador requiere 'YOUR_APP_PATH /src/autoload.php';

Y con eso, estás listo para comenzar a almacenar en caché y obtener los beneficios de la increíble biblioteca PhpFastCache. En la siguiente sección, veremos un par de ejemplos prácticos que demuestran cómo usar PhpFastCache en su aplicación..

Demostración

Ya he mencionado que la biblioteca PhpFastCache admite varios adaptadores cuando se trata de almacenamiento en caché. En esta sección, demostraré cómo usar el sistema de archivos y los adaptadores Redis..

Almacenamiento en caché utilizando el adaptador de archivos

Sigue adelante y crea el file_cache_example.php Archivo con los siguientes contenidos. Supongo que está utilizando el flujo de trabajo Composer y, por tanto, el vendedor directorio está al mismo nivel que el de file_cache_example.php. Si ha instalado PhpFastCache manualmente, puede cambiar la estructura del archivo en consecuencia.

 __DIR__. "/ caché"]); // Obtener instancia de caché de archivos $ objFilesCache = CacheManager :: getInstance ('archivos'); $ key = "welcome_message"; // Intente obtener un elemento almacenado en caché con la clave "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // La entrada en caché no existe $ numberOfSeconds = 60; $ CachedString-> set ("Este sitio web utiliza PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objFilesCache-> save ($ CachedString); echo "No está en el caché todavía, lo configuramos en el caché e intentamos obtenerlo del caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get (); else // La entrada en caché existe echo" Ya está en el caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get ();

Revisemos esto para entender qué significa cada pieza de código. Lo primero obvio es incluir el autoload.php archivar e importar el espacio de nombres que pretendemos utilizar.

// Incluir el autocargador del compositor requiere __DIR__. '/vendor/autoload.php'; utilizar phpFastCache \ CacheManager;

Cuando utiliza el caché de archivos, se supone que debe proporcionar la ruta del directorio que contiene los archivos generados por el sistema de almacenamiento en caché. Y eso es exactamente lo que hemos configurado en el siguiente fragmento de código..

// Configuración predeterminada de inicio para el adaptador de "archivos" CacheManager :: setDefaultConfig (["path" => __DIR__. "/ Cache"]);

Por supuesto, necesitamos asegurarnos de que cache El directorio existe y se puede escribir en el servidor web..

A continuación, creamos una instancia del objeto de caché e intentamos cargar el elemento almacenado en caché con la mensaje de bienvenida llave.

// Obtener instancia de caché de archivos $ objFilesCache = CacheManager :: getInstance ('archivos'); $ key = "welcome_message"; // Intente obtener un elemento almacenado en caché con la clave "welcome_message" $ CachedString = $ objFilesCache-> getItem ($ key);

Si el elemento no existe en la caché, lo agregaremos a la caché durante 60 segundos y lo mostraremos desde la caché. Por otro lado, si existe en el caché, solo lo buscaremos!

if (is_null ($ CachedString-> get ())) // La entrada en caché no existe $ numberOfSeconds = 60; $ CachedString-> set ("Este sitio web utiliza PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objFilesCache-> save ($ CachedString); echo "No está en el caché todavía, lo configuramos en el caché e intentamos obtenerlo del caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get (); else // La entrada en caché existe echo" Ya está en el caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get ();

Esa fue una configuración bastante fácil, ¿no? De hecho, puede seguir adelante y ejecutar el archivo para verificar los resultados.!

Cuando lo ejecutes por primera vez, deberías ver el siguiente resultado:

Aún no en caché, lo configuramos en caché y tratamos de obtenerlo del caché El valor de welcome_message: este sitio web utiliza PhpFastCache!

En la siguiente ejecución, la salida se ve algo como esto:

Ya en caché! El valor de welcome_message: este sitio web utiliza PhpFastCache!

Así que eso fue el caché del sistema de archivos a su disposición. En la siguiente sección, imitaremos el mismo ejemplo usando el adaptador de caché Redis.

Almacenamiento en caché utilizando el adaptador redis

Antes de seguir adelante, asumo que ya ha instalado el servidor Redis y se está ejecutando en el puerto 6379, que es el puerto predeterminado para Redis.

Con esa configuración, vamos a seguir adelante y crear el redis_cache_example.php archivo con los siguientes contenidos.

 '127.0.0.1', "puerto" => 6379]); // Obtener instancia de caché de archivos $ objRedisCache = CacheManager :: getInstance ('redis'); $ key = "welcome_message"; // Intente obtener un elemento almacenado en caché con la clave "welcome_message" $ CachedString = $ objRedisCache-> getItem ($ key); if (is_null ($ CachedString-> get ())) // La entrada en caché no existe $ numberOfSeconds = 60; $ CachedString-> set ("Este sitio web utiliza PhpFastCache!") -> expiresAfter ($ numberOfSeconds); $ objRedisCache-> save ($ CachedString); echo "No está en el caché todavía, lo configuramos en el caché e intentamos obtenerlo del caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get (); else // La entrada en caché existe echo" Ya está en el caché!
"; echo" El valor de welcome_message: ". $ CachedString-> get ();

Como puede ver, el archivo es bastante similar, excepto la sección que inicializa la configuración específica del adaptador Redis.

// Configuración predeterminada de inicio para el adaptador "redis" CacheManager :: setDefaultConfig (["host" => '127.0.0.1', "port" => 6379]);

Por supuesto, debe cambiar la configuración del host y del puerto para que coincida con sus requisitos si está ejecutando un servidor Redis que no sea localhost..

Sigue adelante y ejecuta el redis_cache_example.php Archivo para ver cómo funciona. También puede confirmarlo comprobando la salida en el CLI de Redis..

127.0.0.1:6379> KEYS * 1) "welcome_message"

Así que eso es todo lo que necesitas para usar el adaptador Redis. Te animo a probar diferentes adaptadores y sus opciones.!

Conclusión

Hoy pasamos por una de las bibliotecas de almacenamiento en caché más populares para PHP-PhpFastCache. En la primera mitad del artículo, discutimos los conceptos básicos junto con la instalación y configuración. Más adelante en el artículo, analizamos un par de ejemplos para demostrar los conceptos que discutimos..

Espero que haya disfrutado el artículo y que esté motivado para integrar la biblioteca PhpFastCache en sus próximos proyectos. Siéntase libre de publicar cualquier pregunta y comentario a continuación!