Entender el almacenamiento en caché en OpenCart

Hoy en día, no puede darse el lujo de desconectarse, ni siquiera por un par de minutos, si está tratando con una audiencia global, ya que le da a su competidor la oportunidad de demostrar que está por delante de usted..

El almacenamiento en caché es un factor importante si se trata de desarrollo web. Realmente ayuda a descargar el trabajo pesado que un servidor web tiene que hacer para atender miles de solicitudes, si no millones simultáneamente. Hay muchas opciones disponibles en la actualidad que mejoran el rendimiento de su aplicación web, pero concepto basico de caché sigue siendo el mismo.

El propósito del almacenamiento en caché

Se acabaron los días en los que solo necesitaba crear un sitio web de HTML estático que contuviera un par de páginas y ya había terminado. En ese caso, no tuvo que preocuparse por las solicitudes concurrentes y el gran tráfico generado en su sitio web, ya que es mucho más rápido enviar esas páginas HTML estáticas en comparación con las páginas web dinámicas que requieren bastante recursos del servidor para construir. sí mismos.

Una página dinámica típica hace mucho, desde consultar una base de datos hasta obtener datos de proveedores de servicios de terceros. Se requiere mucho para mostrar una página que incluye mucha información en diferentes formatos. Específicamente, no puede permitirse consultar la base de datos para obtener la misma información compleja para cada solicitud a medida que aumenta el tráfico. Pronto hará que sus servidores se agobien por recursos, y antes de que pueda hacer algo, se irán!

Entonces, necesitas algo intermedio que acelere las cosas, y ahí es donde el almacenamiento en caché entra en escena. La idea del almacenamiento en caché es muy simple: almacena los resultados calculados / formateados en algún lugar y los obtiene cuando sea necesario para que no tenga que volver a hacerlo. Ese "lugar" podría estar en cualquier lugar: el sistema de archivos, la memoria o la propia base de datos.

Además, hay muchas opciones disponibles para caching-memcached, Redis, Varnish y más. Puede usarlos según sus requisitos y, a veces, la combinación de múltiples componentes también ayuda a mejorar el rendimiento de manera exponencial.

Como se necesitaría una serie completa para explicar los entresijos del almacenamiento en caché, y también es algo fuera del alcance de este artículo, volveremos al contexto de OpenCart y lo continuaremos en la siguiente sección..

Usaremos la última versión de OpenCart, así que asegúrate de haberlo instalado para seguir el código.

Cómo funciona el almacenamiento en caché básico en OpenCart

La biblioteca de almacenamiento en caché se proporciona en el núcleo mismo, así que explorémosla de inmediato. Sigue adelante y abre el sistema / biblioteca / caché.php archiva en tu editor de texto favorito.

cache = new $ class ($ expire);  else exit ('Error: No se pudo cargar el controlador de caché'. $ driver. '¡caché!');  función pública get ($ key) return $ this-> cache-> get ($ key);  conjunto de funciones públicas ($ key, $ value) return $ this-> cache-> set ($ key, $ value);  eliminar función pública (tecla $) return $ this-> cache-> eliminar (tecla $); 

Comenzando con el constructor, inicializa el controlador de caché pasado en el argumento del constructor. Si la clase está disponible para el adaptador de almacenamiento en caché solicitado, se inicializará en el $ esto-> caché propiedad, de lo contrario saldrá con el mensaje de error. Veremos los diferentes adaptadores de caché en la siguiente sección..

Además, hay tres funciones de envoltura que se utilizan para realizar todas las operaciones relacionadas con el almacenamiento en caché.

los obtener método se utiliza para recuperar el valor de la memoria caché.

$ this-> cache-> get ($ key);

los conjunto El método se utiliza para almacenar el valor en el caché..

$ this-> cache-> set ($ key, $ value);

los borrar El método se utiliza para eliminar la asignación de clave / valor de la memoria caché..

$ this-> cache-> delete ($ key);

Así que es realmente sencillo utilizar funciones de almacenamiento en caché en sus módulos también.

Hay muchos lugares en el front-end donde se obtienen los datos del almacén de caché. Vamos a enumerar algunos de ellos:

  • últimos productos
  • productos más vendidos
  • lista de fabricantes
  • lista de paises
  • lista de monedas
  • lista de zonas
  • configuración de la tienda

En el caso de almacenamiento en caché de archivos, encontrará todos los archivos de caché almacenados en la sistema / caché directorio. Aunque OpenCart borra el caché en los eventos apropiados, también puede borrar estos archivos manualmente para obtener los últimos datos..

Así que eso es todo lo que se refiere al envoltorio de almacenamiento en caché. En la siguiente sección, veremos los diferentes adaptadores de almacenamiento en caché disponibles en el núcleo y el trabajo pesado real realizado por ellos.

Adaptadores de almacenamiento en caché

Hay tres adaptadores de almacenamiento en caché disponibles en el núcleo de OpenCart-file, memcache y apc. El adaptador de almacenamiento en caché predeterminado utilizado en OpenCart es el archivo.

Aquí está el fragmento de index.php que inicializa el $ caché objeto con el adaptador de caché predeterminado.

// Cache $ cache = new Cache ('archivo'); $ registry-> set ('cache', $ cache);

Desafortunadamente, no hay una forma configurable que le permita cambiar el adaptador de almacenamiento en caché ya que está codificado. Dicho esto, puede utilizar OCMOD para cambiar el adaptador de almacenamiento en caché predeterminado sin alterar el archivo principal.

Como la implementación de cada adaptador de almacenamiento en caché es casi la misma, solo veremos uno de los adaptadores de almacenamiento en caché para ver qué está pasando. Tomemos memcache, por ejemplo. Seguir adelante y abrir sistema / biblioteca / caché / mem.php. También puedes explorar los otros dos adaptadores. archivo.php y apc.php en el mismo directorio.

expire = $ expire; $ this-> cache = new \ Memcache (); $ this-> cache-> pconnect (CACHE_HOSTNAME, CACHE_PORT);  función pública get ($ clave) return $ this-> cache-> get (CACHE_PREFIX. $ clave);  conjunto de funciones públicas ($ key, $ value) return $ this-> cache-> set (CACHE_PREFIX. $ key, $ value, MEMCACHE_COMPRESSED, $ this-> expire);  eliminar función pública ($ clave) $ esto-> caché-> eliminar (clave CACHE_PREFIX. $); 

Cada adaptador de almacenamiento en caché se define bajo el espacio de nombres "Caché" para evitar conflictos.

Recuerde los métodos que discutimos en la sección anterior: en realidad terminan aquí. Entonces, cuando llamas al obtener método en el Cache clase, en realidad llama a la obtener método definido en la clase de adaptador real, en nuestro caso es el Mem clase.

La lógica real de manipular las entradas de caché ocurre en los métodos de clase de adaptador. Como se puede ver, en el constructor de la Mem En la clase inicializamos el objeto Memcache y establecimos la conexión usando la conexión método. Finalmente, estamos utilizando los métodos de obtención, configuración y eliminación del objeto Memcache para manipular las entradas de la memoria caché..

Por otro lado, si observa la implementación del manejador de caché de archivos, se requiere un poco de esfuerzo para almacenar y recuperar las entradas de caché utilizando las funciones del sistema de archivos. Aparte de eso, no hay diferencia en la implementación..

Así que eso es todo en lo que respecta a los adaptadores de almacenamiento en caché en OpenCart. Por supuesto, puede seguir adelante y hacer su propio controlador de almacenamiento en caché personalizado si es necesario. Solo necesitas implementar los métodos requeridos y listo..

Es todo por hoy. Espero que hayas disfrutado del tutorial y que te aliente a usar el almacenamiento en caché en tus módulos personalizados según sea necesario..

Conclusión

Hoy, hemos discutido el almacenamiento en caché en OpenCart. Comenzamos con los conceptos básicos del almacenamiento en caché y, a medida que avanzamos, exploramos cómo se utiliza el almacenamiento en caché en el front-end. Finalmente, pasamos por los diferentes adaptadores de almacenamiento en caché disponibles en OpenCart.

Siéntase libre de expresar sus pensamientos en forma de consultas y sugerencias utilizando la siguiente información.