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:
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