Redis für Sitzungsspeicher verwenden
Commerce bietet jetzt Befehlszeilenoptionen zum Konfigurieren des Redis-Sitzungsspeichers. In früheren Versionen haben Sie die <Commerce install dir>app/etc/env.php
-Datei bearbeitet. Die Befehlszeile bietet eine Validierung und ist die empfohlene Konfigurationsmethode. Sie können die env.php
-Datei jedoch weiterhin bearbeiten.
Führen Sie den setup:config:set
Befehl aus und geben Sie Redis-spezifische Parameter an.
bin/magento setup:config:set --session-save=redis --session-save-redis-<parameter_name>=<parameter_value>...
Hierbei gilt
--session-save=redis
aktiviert die Speicherung von Redis-Sitzungen. Wenn diese Funktion bereits aktiviert ist, lassen Sie diesen Parameter weg.
--session-save-redis-<parameter_name>=<parameter_value>
ist eine Liste von Parameter/Wert-Paaren, die den Sitzungsspeicher konfigurieren:
Bekannte Probleme mit phpredis und php-fpm.
Wichtig: Wenn Sie Redis für mehr als einen Caching-Typ verwenden, müssen die Datenbanknummern unterschiedlich sein. Es wird empfohlen, die standardmäßige Caching-Datenbanknummer 0, die Seitencaching-Datenbanknummer 1 und die Sitzungsspeicher-Datenbanknummer 2 zuzuweisen.
suhosin.session.encrypt = On
empfohlen).Bekanntes Problem mit Zeichenfolgen über 64 KB.
Legen Sie eine der folgenden Einstellungen fest, die in der Reihenfolge von der letzten Ausführlichkeit bis zur letzten Ausführlichkeit aufgeführt sind:
- 0 (Notfall: nur die schwerwiegendsten Fehler)
- 1 (Warnhinweis: sofortiges Handeln erforderlich)
- 2 (Kritisch: Anwendungskomponente nicht verfügbar)
- 3 (Fehler: Laufzeitfehler, nicht kritisch, aber zu überwachen)
- 4 (Warnung: zusätzliche Informationen, empfohlen)
- 5 (Hinweis: Normaler, aber signifikanter Zustand)
- 6 (INFO: Informationsnachrichten)
- 7 (Debugging: Die meisten Informationen nur für Entwicklung oder Tests)
Beispiel
Im folgenden Beispiel wird Redis als Sitzungsdatenspeicher, der Host als 127.0.0.1
, die Protokollebene als 4 und die Datenbanknummer als 2 festgelegt. Alle anderen Parameter sind auf den Standardwert eingestellt.
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',
],
],
Redis-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 Befehl ping.
Redis-Monitorbefehl
redis-cli monitor
Beispielausgabe für Sitzungsspeicher:
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 ...
Redigieren des Befehls
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 überprüfen, 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.