Cómo configurar Redis para Magento 2

Redis es un método de almacenamiento en caché que puede aumentar la velocidad del backend y el frontend de su tienda. 

Este artículo explicará cómo configurar Redis en su tienda Magento 2 y cómo trabajar con redis-cli.

Configurar Redis Cache para Magento 2

Hay dos formas de configurar Redis Cache para Magento 2. Puede ejecutar un comando que actualice env.php automáticamente con los detalles correctos o puede editar manualmente el archivo env.php .

Configurar Redis Cache para Magento 2 a través de la línea de comando

Puede usar el siguiente comando para habilitar el almacenamiento en caché de backend de Redis:

cd /data/web/magento2
bin/magento setup:config:set --cache-backend=redis --cache-backend-redis-server=127.0.0.1 --cache-backend-redis-db=0

Configurar Redis Cache para Magento 2 modificando el archivo env.php

Para habilitar el almacenamiento en caché en Redis, amplíe su /data/web/magento2/app/etc/env.php con el siguiente fragmento. Agréguelo a sus claves de caché. (Sin la clave de caché en el snippet.

'cache' => array(

   'frontend' => array(

       'default' => array(

           'backend'         => 'Cm_Cache_Backend_Redis',

           'backend_options' => array(

               'server' => '127.0.0.1',

               'port'   => '6379',

           ),

       ),

   ),

),

Ahora borre el caché:

rm -rf /data/web/magento2/var/cache/*

redis-cli flushall

Configurar Redis Full Page Caching para Magento 2

Para habilitar el almacenamiento en caché de la página de Redis, amplíe su `/ data / web / magento2 / app / etc / env.php` con el siguiente fragmento.

Debes pegarlo entre las claves de `caché`, así que omite la etiqueta de caché en este fragmento.

'cache' => array (

       'frontend' => array (

           'default' => array (

               'backend'         => 'Cm_Cache_Backend_Redis',

               'backend_options' => array (

                   'server' => '127.0.0.1',

                   'port'   => '6379',

               ),

           ),

           // Start of snippet

           'page_cache' => array (

               'backend'         => 'Cm_Cache_Backend_Redis',

               'backend_options' => array (

                   'server'        => '127.0.0.1',

                   'port'          => '6379',

                   'database'      => '1',

                   'compress_data' => '0',

               ),

           ),

           // End of snippet

       ),

   ),

Se puede ver un ejemplo completo aquí.

Ahora borre el caché:

rm -rf /data/web/magento2/var/cache/*

redis-cli flushall

Vaciar la caché

Para borrar la caché de Magento, borre la base de datos de Redis correspondiente a la base de datos de Redis configurada:

redis-cli -n $db flushdb

o alternativamente

n98-magerun2 o la herramienta cli de Magento:

 

## Flush using n98-magerun2

n98-magerun2 cache:flush


## Flush using magento cli

cd /data/web/magento2 && php bin/magento cache:flush

 

Para borrar todas las sesiones, cachés, etc. (Vaciar toda la instancia de Redis), use el siguiente comando:

 

redis-cli flushall

Modificación de la biblioteca de compresión

Puede utilizar la biblioteca de compresión «Snappy». Puede encontrar más información sobre Snappy en el registro de cambios: Release-4224 .

 

Para usar la biblioteca de compresión Snappy para la caché de Redis, debe agregar ‘compress_library’ => ‘snappy’ , en su env.php en:

 

‘page_cache’ => array (

‘backend’         => ‘Cm_Cache_Backend_Redis’,

‘backend_options’ => array (

Configurar Magento 2 para utilizar Redis como Session Store

¡También puede usar Redis para memorizar sesiones!

 

De esta manera, las sesiones se almacenan en la memoria, lo que hace que la tienda sea más rápida y usa menos IO que cuando se usa MySQL o archivos como el archivo de sesión.

Configura Magento 2 per archiviare le sessioni in Redis

Poiché Magento 2 supporta completamente Redis, non è necessario installare estensioni aggiuntive per configurare Redis.

Todo lo que necesita hacer es extender su app / etc / env.php  y borrar la caché.

Para habilitar el archivado de sesiones en Redis, amplíe su /data/web/magento2/app/etc/env.php con el siguiente fragmento:

‘session’ => array(

   ‘save’ => ‘redis’,

   ‘redis’ => array(

       ‘host’                  => ‘redismaster’,

       ‘port’                  => ‘6379’,

       ‘password’              => »,

       ‘timeout’               => ‘2.5’,

       ‘persistent_identifier’ => »,

       ‘database’              => ‘2’,

       ‘compression_threshold’ => ‘2048’,

       ‘compression_library’   => ‘gzip’,

       ‘log_level’             => ‘1’,

       ‘max_concurrency’       => ‘6’,

       ‘break_after_frontend’  => ‘5’,

       ‘break_after_adminhtml’ => ’30’,

       ‘first_lifetime’        => ‘600’,

       ‘bot_first_lifetime’    => ’60’,

       ‘bot_lifetime’          => ‘7200’,

       ‘disable_locking’       => ‘0’,

       ‘min_lifetime’          => ’60’,

       ‘max_lifetime’          => ‘2592000’,

   ),

),

 

Ahora actualiza la caché

rm -rf /data/web/magento2/var/cache/*

redis-cli flushall

Habilite la segunda instancia de Redis para las sesiones

Hemos hecho posible habilitar una segunda instancia de Redis más personalizada para guardar los datos de la sesión (se puede encontrar más información en nuestro changelog)

Para habilitar la segunda instancia de Redis para las sesiones, ejecute el comando: systemctl settings redis_persistent_instance –value True

Después de habilitar la segunda instancia de Redis, debe actualizar el archivo /data/web/public/app/etc/local.xml y cambiar el valor del puerto a 6378 en lugar del 6379 predeterminado. También debe agregar la siguiente línea a su crontab:

* * * * * redis-cli -p 6378 bgsave

Compruebe si sus sesiones están archivadas en Redis

Para comprobar si su configuración funciona correctamente, primero borre el almacén de sesiones o session store:

rm / data / web / public / var / sessions / *

Ahora abra el sitio en su navegador y presione F5 varias veces o inicie sesión en el panel de administración.

Con suerte, no se deben escribir archivos de sesión adicionales en / data / web / var / sessions , sino en la base de datos de Redis:

redis-cli -n 2 keys \*

Solución de problemas

Una nota rápida, cuando se encuentre con el límite máximo de memoria configurado, asegúrese de que las claves de Redis necesarias estén configuradas como volátiles (asegúrese de que caduque). De lo contrario, toda la memoria configurada asignada se llenará y Redis se «colgará».

Cuando la memoria de la instancia de Redis está llena y llega una nueva escritura, Redis quita las claves para dejar espacio para la escritura de acuerdo con la política de maxmemory de la instancia. Esto se llama política de desalojo.

En algunos casos, vemos que cuando Redis alcanza el límite configurado e intenta caducar las claves para hacer espacio, la política de desalojo se atasca en un bucle. Esto significa que las claves no caducarán y Redis alcanza el límite.

Una solución alternativa es borrar la caché de Redis, puede hacerlo usando el comando flushall:

redis-cli flushall

Esto eliminará todas las bases de datos de Redis disponibles. Tenga en cuenta que esta es solo una solución temporal. La causa subyacente está en el código de la aplicación y debe corregirse de forma permanente.

Puede encontrar una guía más extensa sobre la configuración de cachés de Redis en las páginas de ayuda de Magento .

Bot

Como sabe, las sesiones de su tienda en línea también se pueden almacenar en Redis. Si también usa el almacenamiento en caché de Redis y las sesiones de almacenamiento en Redis, deberá compartir la memoria de Redis disponible. Esto no debería ser un problema, sin embargo, hemos visto escenarios en los que una tienda almacena sus sesiones en Redis y ha tenido algunos robot / crawler visitando la tienda. Esto ha provocado que Redis almacene muchas más sesiones de lo habitual, lo que hace que Redis llene la memoria en poco tiempo y que Redis se bloquee.

Si desea tener una vista más detallada del tráfico de bots, puede usar el comando pnl –yesterday –php –bots –fields ua | ordina | uniq -c | sort -n para obtener una descripción general de los 10 bots principales que visitaron su tienda en línea ayer. 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.