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.



Shopware stellt in der offiziellen Dokumentation weitere Informationen und Adapter bereit.

Zur Shopware Dokumentation →