1

Shopware 6: Sessions über Redis steuern

Hinweis

Die folgende Anleitung ist zu Teilen veraltet.
Wir empfehlen für die Einrichtung von Redis die offizielle Dokumentation von Shopware.

Diese finden Sie hier: https://developer.shopware.com/docs/guides/hosting/performance/session

Standardmäßig speichert Symfony die Sessions auf Dateiebene. Im folgendem Artikel wird beschrieben, wie die Sessions über Redis gesteuert werden können.

Hinweis

Aktuell wird Redis von Shopware 6 nicht offiziell unterstützt. Der beschriebe Weg entspricht der Symfony Dokumentation.

Redis kann momentan ausschließlich auf einem eigenem FlexServer verwendet werden. Vorab müssen wir jedoch Redis installieren, kommen Sie dafür gerne auf uns zu.

In der genutzten php.ini wird die Redis Extension hinzugefügt werden:

extension="redis.so"

Anschließend werden folgende Dateien hinzugefügt:

config/services.yaml

services:
Redis:
class: Redis
calls:
- method: connect
arguments:
- '%env(REDIS_SESSION_SOCKET)%'
Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
arguments:
- '@Redis'

config/packages/framework.yaml

framework:
session:
handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler

In der .env Datei wird die entsprechende Variable zum Socket noch gesetzt:

.env

REDIS_SESSION_SOCKET=/home/tmp/redis.sock

Damit die Änderung greifen muss, muss der Cache geleert werden:

$ php bin/console cache:clear
$ php bin/console theme:compile