Magento y Memcached: Almacenamiento en Caché Más Rápido para tu Tienda

Magento y Memcached: Almacenamiento en Caché Más Rápido para tu Tienda pixelwork

Magento y Memcached: Almacenamiento en Caché Más Rápido para tu Tienda

A medida que tus clientes navegan a través de tu tienda en Magento, Magento suele escribir varias informaciones en el disco en un esfuerzo por presentar una experiencia más suave y más agradable al usuario final. Estos objetos son a menudo diversos sistemas centrales, populares llamadas de PHP y varios otros bloques de información que el sistema Magento recibe muchas veces por el cliente. Es mucho más rápido para Magento almacenar estas solicitudes en un sistema de caché en la unidad que tener que reconstruir la información con cada solicitud.

Sin embargo, los tiempos de acceso al disco son un obstáculo importante en los recursos del servidor. Mientras que la recuperación de caché es sin duda más rápida que el procesamiento de la solicitud de código, el acceso a la unidad es más lento que otros medios de almacenamiento disponibles para un servidor web … es decir, RAM.

Magento tiene un backend incorporado para entregar su caché a otros motores de caché, como memcached y redis. Para los propósitos de esta entrada de blog, asumiremos que has elegido memcached para tu backend de caché de Magento y ya tienes una instancia instalada y lista para usar.

Memcache es un sistema de caché de memoria que contiene objetos de base de datos y datos en RAM, de modo que el sistema no tiene que hacer llamadas lentas a la base de datos para recuperar la información solicitada.

La configuración de la caché de Magento se encuentra en el archivo app / etc / local.xml ubicado en la raíz del directorio de instalación de Magento. Deberás colocar el siguiente bloque de código en la etiqueta <global> del archivo local.xml:

<cache>

<backend>memcached</backend>

<slow_backend>database</slow_backend>

<slow_backend_store_data>0</slow_backend_store_data>

<auto_refresh_fast_cache>0</auto_refresh_fast_cache>
<memcached>

<servers>

<server>

<host><![CDATA[127.0.0.1]]></host>

<port><![CDATA[11211]]></port>

<persistent><![CDATA[1]]></persistent>

</server>

</servers>

<compression><![CDATA[0]]></compression>

<cache_dir><![CDATA[]]></cache_dir>

<hashed_directory_level><![CDATA[]]></hashed_directory_level>

<hashed_directory_umask><![CDATA[]]></hashed_directory_umask>

<file_name_prefix><![CDATA[]]></file_name_prefix>

</memcached>

</cache>

Las secciones <host> y <port> deben apuntar a la dirección IP del host que está ejecutando la instancia de memcached (normalmente es el localhost) y el puerto en el que está escuchando el proceso memcached. Esto se puede configurar durante la configuración del daemon memcache.

La información de la sesión del usuario también es susceptible a la latencia de los tiempos de acceso a la unidad, al igual que la memoria caché. Magento también ofrece un backend memcached para el almacenamiento de estos datos en la memoria RAM. Se recomienda encarecidamente que el caché de sesiones y el almacenamiento en caché de Magento se realicen mediante dos instancias separadas de memcached. Pueden funcionar en el mismo anfitrión, pero en puertos diferentes.

Agregue el siguiente bloque de código al archivo local.xml en la sección <global> para habilitar el caché de sesiones memcached una vez que se haya creado una segunda instancia de memcached y se ejecute:

<session_save><![CDATA[memcache]]></session_save>

<session_save_path><![CDATA[tcp://127.0.0.1:11212?persistent=1&weight;=2&timeout;=10&retry;_interval=10]]></session_save_path>

<session_cache_limiter><![CDATA[public,must-revalidate]]></session_cache_limiter>

En el bloque <session_save_path> anterior, la instancia de memcached para nuestros datos de sesión se ejecuta en el mismo host (localhost), pero en un puerto diferente (11212) que en nuestra caché Magento (puerto 11211).

¡La implementación de estos dos sistemas de almacenamiento en caché puede acelerar mucho el tiempo de respuesta para tus usuarios finales mientras compran en tu tienda!