Shopware Increment Storage mit Redis
Shopware speichert im Standard den increment storage auf dem Dateisystem transaktionssicher, was zu Sperren im Speicher führt. Dazu wird standardmäßig die Datenbanktabelle increment
verwendet.
Wenn mehrere message consumers ausgeführt werden, kann diese Tabelle häufig gesperrt werden, was die Leistung der worker beeinträchtigen kann. Abhilfe schafft hier der Linux basierte In-Memory Dienst Redis.
Vorbereitung in Shopware
Zunächst muss für den Server ein Redis-Server zur Verfügung gestellt werden. Dieser kann entweder lokal auf dem App-Server oder extern z.B. via einem Accelerator-Server eingerichtet werden. Mehr Informationen zu unseren Accelerator-Servern finden Sie hier: https://www.creoline.com/de/products/redis-server
Konfiguration über die Shopware Umgebungskonfiguration
Erstellen Sie eine neue Konfigurationsdatei unter dem Pfad: config/packages/storage.yaml
. Mithilfe dieser Konfigurationsdatei kann die Session konfiguriert werden. Fügen Sie anschließend folgenden Inhalt in die Datei ein:
shopware:
increment:
user_activity:
type: 'redis'
config:
url: 'redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%/%env(REDIS_DB_STORAGE)%'
message_queue:
type: 'redis'
config:
url: 'redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%/%env(REDIS_DB_STORAGE)%'
In dieser Konfigurationsdatei werden folgende Umgebungsvariablen genutzt:
Variable | Beschreibung |
---|---|
REDIS_HOST | Hostname oder IP-Adresse zum Redis-Server |
REDIS_PORT | TCP-Port für Redis Verbindungen (Standard: 6379) |
REDIS_DB_STORAGE | Redis-Datenbank für den Increment Storage |
Die hier verwendeten Variablen müssen anschließend in der Umgebungskonfiguration .env.local
von Shopware hinzugefügt werden. Öffnen Sie hierzu die .env.local
Datei im Shopware Root-Verzeichnis und ergänzen Sie folgenden Teil in der bestehenden Konfiguration:
# .env.local
# [...]
# Increment Storage Configuration
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB_STORAGE=2
Speichern Sie die Datei anschließend und leeren Sie den Shopware Cache über die Konsole:
bin/console cache:clear
Anschließend wird der Redis-Server zur Verwaltung des Increment Storages genutzt.
Weiterführende Links
Shopware stellt in der offiziellen Dokumentation weitere Informationen und Adapter bereit.