Shopware HTTP Cache mit Redis
Shopware speichert im Standard den HTTP Cache auf dem Dateisystem. Bei einer hohen Zugriffszahl des Shops kann dieses Verhalten zu Performance-Probleme führen. 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/server/redis/
Konfiguration über die Shopware Umgebungskonfiguration
Erstellen Sie eine neue Konfigurationsdatei unter dem Pfad: config/packages/framework.yaml
. Mithilfe dieser Konfigurationsdatei kann der HTTP Cache konfiguriert werden. Fügen Sie anschließend folgenden Inhalt in die Datei ein:
framework:
cache:
default_redis_provider: 'redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%'
pools:
cache.http:
adapter: cache.adapter.redis_tag_aware
provider: 'redis://%env(REDIS_HOST)%:%env(REDIS_PORT)%/%env(REDIS_DB_HTTP_CACHE)%'
tags: cache.tags
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_HTTP_CACHE | Redis-Datenbank für den HTTP Cache |
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
# [...]
# HTTP Cache Configuration
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB_HTTP_CACHE=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 HTTP Caches genutzt.
Weiterführende Links
Shopware stellt in der offiziellen Dokumentation weitere Informationen und Adapter bereit.