Usar Redis para armazenamento de sessão
O Commerce agora fornece opções de linha de comando para configurar o armazenamento de sessão Redis. Em versões anteriores, você editava o arquivo <Commerce install dir>app/etc/env.php
. A linha de comando fornece validação e é o método de configuração recomendado, mas você ainda pode editar o arquivo env.php
.
Execute o comando setup:config:set
e especifique parâmetros específicos do Redis.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
onde
--session-save=redis
habilita o armazenamento de sessão Redis. Se esse recurso já tiver sido ativado, omita esse parâmetro.
--session-save-redis-<parameter_name>=<parameter_value>
é uma lista de pares parâmetro/valor que configuram o armazenamento da sessão:
Problemas conhecidos com phpredis e php-fpm.
Importante: se você usar Redis para mais de um tipo de cache, os números do banco de dados deverão ser diferentes. É recomendável atribuir o número do banco de dados de cache padrão a 0, o número do banco de dados de cache da página a 1 e o número do banco de dados de armazenamento da sessão a 2.
suhosin.session.encrypt = On
).Problema conhecido com sequências com mais de 64 KB.
Defina como qualquer um dos itens a seguir, listados na ordem do menos detalhado ao mais detalhado:
- 0 (emergência: apenas os erros mais graves)
- 1 (alerta: ação imediata necessária)
- 2 (crítico: componente do aplicativo indisponível)
- 3 (erro: erros de tempo de execução, não críticos, mas que devem ser monitorados)
- 4 (aviso: informações adicionais, recomendado)
- 5 (aviso: condição normal, mas significativa)
- 6 (informações: mensagens informativas)
- 7 (depurar: o máximo de informações somente para desenvolvimento ou teste)
Exemplo
O exemplo a seguir define Redis como o armazenamento de dados da sessão, define o host como 127.0.0.1
, define o nível de log como 4 e define o número do banco de dados como 2. Todos os outros parâmetros são definidos com o valor padrão.
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
O Commerce adiciona linhas semelhantes às seguintes 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 conexão Redis
Para verificar se o Redis e o Commerce estão trabalhando juntos, faça login no servidor executando o Redis, abra um terminal e use o comando Redis monitor ou o comando ping.
Comando do monitor Redis
redis-cli monitor
Exemplo de saída de armazenamento de sessão:
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 ...
comando Redis ping
redis-cli ping
PONG
deve ser a resposta.
Se ambos os comandos forem bem-sucedidos, o Redis será configurado corretamente.
Inspeção de dados compactados
Para inspecionar os dados de Sessão compactados e o Cache de Página, o RESP.app oferece suporte à descompactação automática do cache de Sessão e Página do Commerce 2 e exibe os dados de sessão do PHP de forma legível.