Redis gebruiken voor sessieopslag
Commerce biedt nu opdrachtregelopties voor het configureren van Redis-sessieopslag. In vorige versies hebt u het bestand <Commerce install dir>app/etc/env.php
bewerkt. De opdrachtregel biedt validatie en dit is de aanbevolen configuratiemethode, maar u kunt het env.php
-bestand wel bewerken.
Voer de opdracht setup:config:set
uit en geef Redis-specifieke parameters op.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
waar
--session-save=redis
schakelt de opslag van Redis-sessies in. Laat deze parameter weg als deze functie reeds is toegelaten.
--session-save-redis-<parameter_name>=<parameter_value>
is een lijst van parameter/waardeparen die zittingsopslag vormen:
Bekende kwesties met phpredis en php-fpm.
Belangrijk: Als u Redis voor meer dan één type van caching gebruikt, moeten de gegevensbestandaantallen verschillend zijn. U wordt aangeraden het standaard cachedatabasenummer aan 0, het databasenummer voor het in cache plaatsen van pagina's aan 1 en het databasenummer voor de sessieopslag aan 2 toe te wijzen.
suhosin.session.encrypt = On
).Bekende kwestie met koorden van meer dan 64 KB.
Stel de volgende waarden in op een van de volgende volgorde, van minimale breedtegraad tot breedste breedte:
- 0 (noodsituatie: alleen de ernstigste fouten)
- 1 (waarschuwing: onmiddellijke actie vereist)
- 2 (kritiek: toepassingscomponent niet beschikbaar)
- 3 (fout: fouten bij uitvoering, niet kritiek, maar moet worden gecontroleerd)
- 4 (waarschuwing: aanvullende informatie, aanbevolen)
- 5 (mededeling: normale maar significante toestand)
- 6 (info: informatieve berichten)
- 7 (foutopsporing: de meeste informatie die u alleen kunt ontwikkelen of testen)
Voorbeeld
In het volgende voorbeeld wordt Redis ingesteld als opslaglocatie voor sessiegegevens, wordt de host ingesteld op 127.0.0.1
, wordt het logniveau ingesteld op 4 en wordt het databasenummer ingesteld op 2. Alle andere parameters worden ingesteld op de standaardwaarde.
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
Resultaat
Commerce voegt soortgelijke regels toe aan <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',
],
],
Redis-verbinding verifiëren
Om te verifiëren dat Redis en Commerce samenwerken, login aan de server die Redis in werking stelt, een terminal openen, en Redis monitorbevel gebruiken of pingel bevel.
Redis-monitor, opdracht
redis-cli monitor
Voorbeeld van sessieopslaguitvoer:
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, opdracht
redis-cli ping
PONG
moet de reactie zijn.
Als beide opdrachten zijn uitgevoerd, wordt Redis op de juiste wijze ingesteld.
Gecomprimeerde gegevens controleren
Om de samengeperste gegevens van de Zitting en het Geheime voorgeheugen van de Pagina te inspecteren, RESP.appsteunt de automatische decompressie van Commerce 2 Sessie en het geheime voorgeheugen van de Pagina en toont PHP zittingsgegevens in een mens-leesbare vorm.