Usar Redis para el almacenamiento de sesión
Commerce ahora proporciona opciones de línea de comandos para configurar el almacenamiento de sesión de Redis. En versiones anteriores, editó el archivo <Commerce install dir>app/etc/env.php
. La línea de comandos proporciona validación y es el método de configuración recomendado, pero aún puede editar el archivo env.php
.
Ejecute el comando setup:config:set
y especifique los parámetros específicos de Redis.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
donde
--session-save=redis
habilita el almacenamiento de sesión de Redis. Si esta función ya se ha habilitado, omita este parámetro.
--session-save-redis-<parameter_name>=<parameter_value>
es una lista de pares de parámetro/valor que configuran el almacenamiento de la sesión:
Problemas conocidos con phpredis y php-fpm.
Importante: Si usa Redis para más de un tipo de almacenamiento en caché, los números de la base de datos deben ser diferentes. Se recomienda asignar el número de base de datos de almacenamiento en caché predeterminado a 0, el número de base de datos de almacenamiento en caché de páginas a 1 y el número de base de datos de almacenamiento de sesión a 2.
suhosin.session.encrypt = On
).Problema conocido con cadenas de más de 64 KB.
Establezca cualquiera de las siguientes opciones, enumeradas en orden de menos detallado a más detallado:
- 0 (emergencia: solo los errores más graves)
- 1 (alerta: acción inmediata requerida)
- 2 (crítico: componente de aplicación no disponible)
- 3 (error: errores de tiempo de ejecución, no críticos, pero deben monitorizarse)
- 4 (advertencia: información adicional, recomendada)
- 5 (aviso: condición normal pero significativa)
- 6 (información: mensajes informativos)
- 7 (depurar: la información más importante solo para desarrollo o pruebas)
Ejemplo
En el ejemplo siguiente se establece Redis como almacén de datos de sesión, se establece el host en 127.0.0.1
, se establece el nivel de registro en 4 y se establece el número de base de datos en 2. El resto de parámetros se definen con el valor predeterminado.
bin/magento setup:config:set --session-save=redis --session-save-redis-host=127.0.0.1 --session-save-redis-log-level=4 --session-save-redis-db=2
Resultado
Commerce agrega líneas similares a las siguientes a <magento_root>app/etc/env.php
:
'session' => [
'save' => 'redis',
'redis' => [
'host' => '127.0.0.1',
'port' => '6379',
'password' => '',
'timeout' => '2.5',
'persistent_identifier' => '',
'database' => '2',
'compression_threshold' => '2048',
'compression_library' => 'gzip',
'log_level' => '4',
'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',
],
],
Verificar conexión de Redis
Para comprobar que Redis y Commerce funcionan juntos, inicie sesión en el servidor que ejecuta Redis, abra un terminal y utilice el comando Redis monitor o el comando ping.
Redis monitor, comando
redis-cli monitor
Salida de almacenamiento de sesión de muestra:
1476824834.187250 [0 127.0.0.1:52353] "select" "0"
1476824834.187587 [0 127.0.0.1:52353] "hmget" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "data" "writes"
1476824834.187939 [0 127.0.0.1:52353] "expire" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "1200"
1476824834.257226 [0 127.0.0.1:52353] "select" "0"
1476824834.257239 [0 127.0.0.1:52353] "hmset" "sess_sgmeh2k3t7obl2tsot3h2ss0p1" "data" "_session_validator_data|a:4:{s:11:\"remote_addr\";s:12:\"10.235.34.14\";s:8:\"http_via\";s:0:\"\";s:20:\"http_x_forwarded_for\";s:0:\"\";s:15:\"http_user_agent\";s:115:\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36\";}_session_hosts|a:1:{s:12:\"10.235.32.10\";b:1;}admin|a:0:{}default|a:2:{s:9:\"_form_key\";s:16:\"e331ugBN7vRjGMgk\";s:12:\"visitor_data\";a:3:{s:13:\"last_visit_at\";s:19:\"2016-10-18 21:06:37\";s:10:\"session_id\";s:26:\"sgmeh2k3t7obl2tsot3h2ss0p1\";s:10:\"visitor_id\";s:1:\"9\";}}adminhtml|a:0:{}customer_base|a:1:{s:20:\"customer_segment_ids\";a:1:{i:1;a:0:{}}}checkout|a:0:{}" "lock" "0"
... more ...
Redis ping, comando
redis-cli ping
PONG
debe ser la respuesta.
Si ambos comandos se ejecutan correctamente, Redis se configura correctamente.
Inspección de datos comprimidos
Para inspeccionar los datos de sesión comprimidos y la caché de página, RESP.app admite la descompresión automática de la caché de página y sesión de Commerce 2 y muestra los datos de sesión PHP en un formato legible en lenguaje natural.