DokumentationCommerceKonfigurationshandbuch

Nur PaaS

Redis für Sitzungsspeicher verwenden

18. Dezember 2024
  • Themen:
  • Cache

Erstellt für:

  • Experte
  • Admin
  • Entwickler
IMPORTANT
Sie müssen Redis installieren, bevor Sie fortfahren.

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:

BefehlszeilenparameterParameternameBedeutungStandardwert
session-save-redis-hostHostVollqualifizierter Hostname, IP-Adresse oder absoluter Pfad bei Verwendung von UNIX-Sockets.localhost
session-save-redis-portPortLauschender Port des Redis-Servers.6379
session-save-redis-passwordPasswortGibt ein Kennwort an, wenn der Redis-Server eine Authentifizierung erfordert.leer
session-save-redis-timeoutZeitüberschreitungVerbindungs-Timeout, in Sekunden.2,5
session-save-redis-persistent-idpersistent_identifierEindeutige Zeichenfolge zum Aktivieren persistenter Verbindungen (z. B. SESS-DB0).
Bekannte Probleme mit phpredis und php-fpm.
session-save-redis-dbDatenbankEindeutige Redis-Datenbanknummer, die zum Schutz vor Datenverlust empfohlen wird.

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.
0
session-save-redis-compression-thresholdcompression_thresholdAuf 0 setzen, um die Komprimierung zu deaktivieren (wird bei der suhosin.session.encrypt = On empfohlen).
Bekanntes Problem mit Zeichenfolgen über 64 KB.
2048
session-save-redis-compression-libcompression_libraryOptionen: gzip, lzf, lz4 oder snappy.gzip
session-save-redis-log-levellog_level

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)
1
session-save-redis-max-concurrencymax_concurrencyMaximale Anzahl von Prozessen, die auf eine Sperre einer Sitzung warten können. Setzen Sie dies bei großen Produktions-Clustern auf mindestens 10% der Anzahl der PHP-Prozesse.6
session-save-redis-break-after-frontendbreak_after_frontendAnzahl der Sekunden, die gewartet werden soll, bevor versucht wird, die Sperre für die Frontend-Sitzung (d. h. Storefront) aufzuheben.5
session-save-redis-break-after-adminhtmlbreak_after_adminhtmlAnzahl der Sekunden, die gewartet werden soll, bevor versucht wird, die Sperre für eine Admin-HTML-Sitzung (d. h. Admin-Sitzung) aufzuheben.30
session-save-redis-first-lifetimefirst_lifeTimeDie Lebensdauer der Sitzung für Nicht-Bots beim ersten Schreiben in Sekunden oder 0 zum Deaktivieren.600
session-save-redis-bot-first-lifetimebot_first_lifeTimeDie Lebensdauer der Sitzung für Bots beim ersten Schreiben in Sekunden oder 0 zum Deaktivieren.60
session-save-redis-bot-lifetimebot_lifeTimeDie Lebensdauer der Sitzung für Bots bei nachfolgenden Schreibvorgängen in Sekunden oder 0 zur Deaktivierung.7200
session-save-redis-disable-lockeddisable_lockingDeaktivieren Sie die Sitzungssperre vollständig.0 (falsch)
session-save-redis-min-lifetimemin_lifeTimeMindestlebensdauer der Sitzung in Sekunden.60
session-save-redis-max-lifetimemax_lifeTimeMaximale Sitzungslebensdauer in Sekunden.2592000 (720 Stunden)
session-save-redis-sentinel-mastersentinel_masterRedis Sentinel Master-Nameleer
session-save-redis-sentinel-serverssentinel_serversListe der Redis Sentinel-Server, durch Kommata getrenntleer
session-save-redis-sentinel-verify-mastersentinel_verify_masterRedis-Sentinel-Master-Status-Flag überprüfen0 (falsch)
session-save-redis-sentinel-connect-retrysentinel_connect_retriesVerbindungsversuche für Sentinels5

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',
    ],
],
INFO
Die TTL für Sitzungseinträge verwendet den Wert für „Cookie-Lebensdauer“, der in der Admin konfiguriert wird. Wenn die Cookie-Lebensdauer auf 0 gesetzt ist (der Standardwert ist 3600), laufen Redis-Sitzungen in der in min_lifeTime angegebenen Anzahl von Sekunden ab (der Standardwert ist 60). Diese Diskrepanz ist auf Unterschiede in der Interpretation des Lebenszeitwerts 0 durch Redis und Sitzungs-Cookies zurückzuführen. Wenn dieses Verhalten nicht gewünscht ist, erhöhen Sie den Wert von min_lifeTime.

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.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c