Du siehst Dir gerade den Artikel zu einer älteren Shopware Version an!

Caches & Indizes

Bitte beachte, dass sich dieser Artikel nur an die Nutzer eines self-hosted Shops wendet. Für Nutzer einer Shopware 6 SaaS-Umgebung ist dies nicht relevant.

Im Modul Caches & Indizes hast Du die Möglichkeit, den Cache zu leeren und aufzuwärmen. Außerdem erhältst Du eine Übersicht zu einigen System-Konfigurationen.

 

Konfigurationsübersicht

In der Übersicht erhältst Du die Information, ob Dein Shop im Produktiv-Modus eingesetzt wird. Dies wird durch den Eintrag "Production" beim Punkt Umgebung (1) angezeigt.
Außerdem kannst Du hier erkennen, ob der HTTP-Cache aktiv (2) ist und welcher Cache-Adapter (3) verwendet wird.

Den Umgebungsmodus und den HTTP-Cache kannst Du in der .env-Datei im Shopware-Hauptverzeichnis anpassen.
Weitere Informationen, wie Du die Umgebungseinstellungen anpassen kannst, findest Du hier.
Der HTTP-Cache wird über den Eintrag


SHOPWARE_HTTP_CACHE_ENABLED=1

aktiviert. (=0) deaktiviert den Cache.

 

Caches & Indizes verwalten

Im unteren Bereich des Moduls hast du verschiedene Funktionen für den Cache und die Indizes.

  • Caches leeren (4)
    Hierüber kannst Du die Caches leeren, ohne dass Diese anschließend direkt wieder aufgewärmt werden.
    Dies ist auch über die Konsole möglich
    
    php bin/console cache:clear
  • Löschen und Aufwärmen (5)
    Zunächst wird ein neuer Cache erzeugt. Sobald dieser vorhanden ist, wird der alte Cache entfernt.
  • Indizes aktualisieren (6)
    Aktualisiert die Indizes wie die Kategorie- und Produktindizes sowie die SEO-URLs.
    In der Konsole kann dies über den Befehl
    
    php bin/console dal:refresh:index
    erfolgen.
    Über das Dropdown Menü (7) kannst Du alle Indizes anwählen, die beim Indizes aktualisieren nicht mit aktualisiert werden sollen. Einträge mit einem "-" sind Unterpunkte zu dem darüber aufgeführten Index. Sofern der Hauptindex ausgewählt wird, werden auch die Unterpunkte mit ausgewählt. 
IndizesBedeutung
category.indexerErstellt einen Index für die Kategorien
- category.child-countErstellt einen Index über die Anzahl der Subkategorien
- category.treeErstellt einen Index
- category.breadcrumbErstellt einen Index des Kategoriebaums um den Navigationspfad (Breadcrumb) darzustellen
- category.seo-urlErstellt einen Index über die SEO-URLs der Kategorien
customer.indexerErstellt einen Suchindex über alle Kundeneinträge
- customer.many-to-many-id-fieldIst ein unterstützender Task um die Verbindungen der Tabellen herzustellen
landing_page.indexerErstellt einen Index über alle Landingpages
- landing_page.many-to-many-id-fieldIst ein unterstützender Task um die Verbindungen der Tabellen herzustellen
- landing_page.seo-urlErstellt einen Index über die SEO-URLs der Landingpages
media.indexerErstellt einen Index zu den Mediendateien
- media_folder.indexerErstellt einen Index zu den Medienordnern
- media_folder.child-countErmittelt die Anzahl der Unterverzeichnisse im Medienordner
media_folder_configuration.indexerAktualisiert die Vererbung innerhalb der Medienordner
payment_method.indexerErstellt einen Index über die Zahlungsarten
product.indexerErstellt einen Index zu allen Produkten
- product.inheritanceAktualisiert die Vererbung zwischen den Hauptprodukten und Varianten
- product.stockIndiziert die verfügbare Lagermenge der Produkte
- product.variant-listingErstellt einen Index über alle Varianten der Produkte
- product.child-countZählt die Anzahl der Varianten
- product.many-to-many-id-fieldIst ein unterstützender Task um die Verbindungen der Tabellen herzustellen
- product.category-denormalizerLöst gespeicherte Verbindungen der Produktzuweisungen zu Kategorien, die nicht mehr verwendet werden.
- product.cheapest-priceErmittelt die günstigsten Produkte
- product.rating-averagetErstellt einen Mittelwert über die Bewertungspunkte der Produktbewertungen
- product.streamErstellt die Produktlisten aus den Dynamischen Produktgruppen
- product.search-keywordErstellt eine Liste der Suchbegriffe aus allen Produkten
- product.seo-urlErstellt eine Liste der SEO-URLs der Produkte
product_stream.indexerErstellt einen Index über die Dynamischen Produktgruppen
product_stream_mapping.indexerErstellt einen Index über die Zuweisungen der Dynamischen Produktgruppen zu Kategorien sowie Aktionen und Rules.
promotion.indexerErstellt einen Index über alle Rabatte & Aktionen
- promotion.exclusionErstellt einen Index über die Ausschlüsse der Rabatte (Nicht kombinierbar mit...)
- promotion.redemptionErstellt einen Index zu bereits verwendeten Rabatten durch Kunden.
rule.indexerErstellt einen Index zu den eingetragenen Rules des Rule Builders
- rule.payloadErstellt einen Index zu den eingestellten Bedingungen der Rules
sales_channel.indexerErstellt einen Index über alle Verkaufskanäle
- sales_channel.many-to-manyIst ein unterstützender Task um die Verbindungen der Tabellen herzustellen
flow.indexerErstellt einen Index für die vorhandenen Flows
newsletter_recipient.indexerErstellt einen Index über die eingetragenen Newsletter-Empfänger
  • Elasticsearch Indizes (8)
    Es werden alle Indizes asynchron aktualisiert. Die Option steht nur mit installierter Advanced Search Erweiterung zur Verfügung.

Cache automatisiert leeren

Im Shopware 6 Standard wird der Cache nicht automatisiert geleert. Das kann auf Dauer dazu führen, dass die Shopinstallation immer größer wird und immer mehr Speicher auf dem Server benötigt.

Um den Cache des Shops manuell zu leeren kannst Du die Shopware CLI benutzen. Wie Du die Shopware CLI benutzen kannst findest Du auch hier.

Um Deinen Cache zu leeren kannst Du dann folgenden Befehl in der Shopware CLI benutzen:

 

php bin/console cache:clear

Auf einem Livesystem empfehlen wir nach an einem Cache löschen, diesen auch wieder aufzuwärmen. Den Cache kannst Du mit folgenden Befehl aufwärmen:


php bin/console http:cache:warm:up

Damit diese Befehle nicht in regelmäßigen Abständen manuell ausgeführt werden müssen, empfehlen wir diese per Cronjob einmal täglich ausführen zu lassen. Dies sollte dann ausgeführt werden, wenn der Traffic auf dem Shop am geringsten ist. Dies kann dann beispielsweise immer Nachts erfolgen. Wie Du einen regelmäßigen Cronjob beispielsweise auf einem Linux Server einrichten lassen kannst, erfährst Du hier.

Sollte sich der Cache nicht über den Shopware CLI Befehl löschen lassen, kannst Du versuchen mit folgendem Befehl die Cache Ordner manuell zu löschen:


rm -rf SHOPWARE-ROOT-VERZEICHNIS/var/cache/*

Warum ist es sinnvoll, diesen zu leeren/aktualisieren?  

Der Cache in Shopware 6 speichert Daten mit dem Zweck, zukünftige Anfragen zu beschleunigen. Grundsätzlich können die in einem Cache gespeicherten Daten das Ergebnis einer früheren Interaktion mit Websites sein. Bei einem Shopware 6-Index handelt es sich um eine Liste von Daten, die in einem einfachen Textformat gespeichert sind. In den meisten Fällen stellen Indizes eine Gruppe von Dateien oder Datenbankeinträgen dar, die schnell von einem Suchalgorithmus durchsucht werden. Folglich werden Such- und Sortiervorgänge erheblich verbessert und somit eine neue Leistung erreicht.

War dieser Artikel hilfreich?