Continuación de la gestión de la Caché en Magento2.
Ya hemos visto los diferentes métodos de gestionar la Caché que pueden ser utilizados por Magento2 para mejorar su rendimiento.
Ahora continuaremos explicando con más detalle los tipos de caché de que dispone. Otra opción que nos permite Magento2 es crear tipos de cache personalizados.
Tipos de caché
- config
Magento colecciona toda la configuración de los módulos, los fusiona y luego guarda el resultado en la caché. Esta caché también contiene otras configuraciones de la tienda que son guardadas en el sistema de ficheros o en la base de datos. - layout
Este tipo de caché guarda los ficheros de layout y los componentes de páginas ya compilados. Por lo que si realizas cambios en algún layout deberás limpiar este tipo de caché. - block_html
Contendrá Fragmentos de páginas Html. - collections
Almacena los resultados de consultas realizadas contra la base de datos. Si Magento cree necesario limpiar esta caché lo hará automáticamente. - db_ddl
Schemas de la base de datos. Una forma de actualizar estos schemas es usando el comando ./bin/magento setup:db-schema:upgrade - compiled_config
Configuración de la compilación - eav
EAV (Entity Attribute Value) es uno de los dos tipos de atributos que usa Magento2. Si necesitas incluir un atributo para describir un producto, como puede ser el volumen este sería un EAV personalizado. Por lo que la caché EAV puede contener metadatos de la tienda, etiquetas, renderizado de atributos, configuraciones de búsqueda, etc … - full_page
Paginas html generadas por Magento. Necesitaremos limpiar esta caché si modificamos código que genere HTML. Esta cache se aconseja mantenerla activada porque mejora el redimiento de la tienda. - reflection
Cualquier dato reflejado de las APis (usado para la inyección de dependencias, debug, etc …). - translate
Esta caché almacena las traducciones fusionadas de todos los módulos. La cache con la que se generó este fichero final es borrada por Magento. - config_integration y config_integration_api
Integraciones compiladas de la configuración de las APIs para la integración de la tienda. - config_webservice
Estructura APi de la web - customer_notification
Notificaciones temporales que se mostrarán en la interfaz del usuario. - vertex
Datos compilados de cálculos de impuestos del carrito de la compra.
Estados y Activación de la caché
El comando que usamos para comprobar el estado de cada tipo de cache es cache:status
1 |
$ php ./bin/magento cache:status |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Current status: config: 1 layout: 1 block_html: 1 collections: 1 reflection: 1 db_ddl: 1 compiled_config: 1 eav: 1 customer_notification: 1 config_integration: 1 config_integration_api: 1 full_page: 1 config_webservice: 1 translate: 1 |
Deshabilitar ciertos tipos de cache será útil cuando estemos desarrollando cualquier tipo de módulo para evitar tener que limpiar la caché constantemente.
A partir de la versión 2.2>, Magento ya permite habilitar o deshabilitar tipos de caché desde linea de comandos. Veamos como funciona:
1 2 3 4 5 6 7 |
$ php ./bin/magento cache:enable db_ddl Changed cache status: db_ddl: 1 -> 0 $ php ./bin/magento cache:disable db_ddl Changed cache status: db_ddl: 0 -> 1 |
También podremos habilitar o deshabilitar todos los tipos de cache si no seleccionamos ningún tipo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
$ php ./bin/magento cache:disable Changed cache status: config: 1 -> 0 layout: 1 -> 0 block_html: 1 -> 0 collections: 1 -> 0 reflection: 1 -> 0 db_ddl: 1 -> 0 compiled_config: 1 -> 0 eav: 1 -> 0 customer_notification: 1 -> 0 config_integration: 1 -> 0 config_integration_api: 1 -> 0 full_page: 1 -> 0 config_webservice: 1 -> 0 translate: 1 -> 0 $ php ./bin/magento cache:enable Changed cache status: config: 0 -> 1 layout: 0 -> 1 block_html: 0 -> 1 collections: 0 -> 1 reflection: 0 -> 1 db_ddl: 0 -> 1 compiled_config: 0 -> 1 eav: 0 -> 1 customer_notification: 0 -> 1 config_integration: 0 -> 1 config_integration_api: 0 -> 1 full_page: 0 -> 1 config_webservice: 0 -> 1 translate: 0 -> 1 |
Clean y Flush
Clean y Flush son los dos comandos que usaremos para limpiar la caché. También podremos indicar que limpie la caché de un tipo seleccionado.
- cache:clean limpiará solo la caché que Magento está usando (esto puede afectar a módulos de terceros que la estén usando).Es importante limpiar la caché después de hacer un Upgrade de Magento o de cualquier otro módulo.
1$ php ./bin/magento cache:clean [type] - cache:flush limpiará el contenedor donde está la caché almacenada y esto podría afectar a otros procesos y aplicaciones que lo estén usando.Por lo que se debería hacer flush si ya has usado el comando clean y no has conseguido nada.
1$ php ./bin/magento cache:flush [type]
Por supuesto también tenemos la opción de limpiar, habilitar o deshabilitar tipos de caché desde nuestro gestor de Magento.
Para ello tendremos lo haremos desde System > Tools > Cache management
Magento2 nos ofrece la opción de hacer flush de imágenes, css, javascript o ficheros estáticos.