Verwenden von Redizes für die Sitzungsspeicherung
Commerce bietet jetzt Befehlszeilenoptionen zum Konfigurieren des Sitzungsspeichers für Redis. In früheren Versionen haben Sie die Datei "<Commerce install dir>app/etc/env.php
" bearbeitet. Die Befehlszeile bietet eine Validierung und ist die empfohlene Konfigurationsmethode, Sie können jedoch die Datei "env.php
"weiterhin bearbeiten.
Führen Sie den Befehl setup:config:set
aus und geben Sie Redis-spezifische Parameter an.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
where
--session-save=redis
aktiviert die Speicherung der Redis-Sitzung. Wenn diese Funktion bereits aktiviert wurde, lassen Sie diesen Parameter weg.
--session-save-redis-<parameter_name>=<parameter_value>
ist eine Liste von Parameter-/Wertpaaren, die die Sitzungsspeicherung konfigurieren:
Bekannte Probleme mit phpredis und php-fpm.
Wichtig: Wenn Sie Redis für mehr als einen Typ von Zwischenspeicherung verwenden, müssen die Datenbanknummern unterschiedlich sein. Es wird empfohlen, die standardmäßige Caching-Datenbanknummer auf 0, die Datenbank-Nummer für die Seitenspeicherung auf 1 und die Datenbanknummer für die Sitzungsspeicherung auf 2 zuzuweisen.
suhosin.session.encrypt = On
).Bekanntes Problem mit Zeichenfolgen von mehr als 64 KB.
Legen Sie einen der folgenden Werte fest, die in der Reihenfolge von "am wenigsten ausführlich"bis "am ausführlichsten"aufgeführt sind:
- 0 (Notfall: nur die schwersten Fehler)
- 1 (Warnhinweis: sofortiges Handeln erforderlich)
- 2 (kritisch: Anwendungskomponente nicht verfügbar)
- 3 (Fehler: Laufzeitfehler, nicht kritisch, sondern muss überwacht werden)
- 4 (Warnung: zusätzliche Informationen, empfohlen)
- 5 (Hinweis: normal, aber signifikant)
- 6 (Info: Informationsmeldungen)
- 7 (debug: die meisten Informationen nur für Entwicklung oder Tests)
Beispiel
Im folgenden Beispiel wird Redis als Sitzungsdatenspeicher festgelegt, der Host auf 127.0.0.1
gesetzt, die Protokollebene auf 4 festgelegt und die Datenbanknummer auf 2 festgelegt. Alle anderen Parameter werden auf den Standardwert gesetzt.
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
Ergebnis
Commerce fügt Zeilen ähnlich den folgenden zu <magento_root>app/etc/env.php
hinzu:
'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',
],
],
Rediv-Verbindung überprüfen
Um sicherzustellen, dass Redis und Commerce zusammenarbeiten, melden Sie sich bei dem Server an, auf dem Redis ausgeführt wird, öffnen Sie ein Terminal und verwenden Sie den Befehl Redis Monitor oder den Ping-Befehl.
Redis Monitor, Befehl
redis-cli monitor
Beispielausgabe für die Sitzungsspeicherung:
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, Befehl
redis-cli ping
PONG
sollte die Antwort sein.
Wenn beide Befehle erfolgreich waren, wird Redis ordnungsgemäß eingerichtet.
Überprüfen komprimierter Daten
Um komprimierte Sitzungsdaten und Seiten-Cache zu untersuchen, unterstützt RESP.app die automatische Dekomprimierung des Commerce 2-Sitzungs- und Seiten-Caches und zeigt PHP-Sitzungsdaten in einer für Menschen lesbaren Form an.