Cache-Frontends konfigurieren

Ein Cache-Frontend ist eine Schnittstelle zwischen Commerce und dem Cache-Speicher-Backend. Sie können mehrere Frontends mit jeweils unterschiedlichen Backend-Einstellungen definieren und dann jedem Frontend Cache-Typen zuweisen.

Dies ist nützlich, wenn Sie verschiedene Cache-Backends oder Konfigurationen für verschiedene Arten von zwischengespeicherten Daten verwenden möchten. Beispielsweise können Sie full_page Zwischenspeicherung in einer dedizierten Redis-Datenbank verwenden, während Sie eine separate Datenbank für die default Zwischenspeicherung verwenden.

Standard-Frontend verwenden

Commerce bietet ein default Cache-Frontend, das für alle Cache-Typen funktioniert. Er erweitert Zend_Cache_Core durch die Implementierung des Magento\Framework\Cache\Core-Frontend-Cache.

In den meisten Fällen müssen Sie das Frontend nicht anpassen. Sie müssen nur das Backend konfigurieren. Siehe Cache-Backend-Optionen.

Definieren eines benutzerdefinierten Cache-Frontends

In den folgenden Schritten wird beschrieben, wie Sie ein Cache-Frontend einem Cache-Typ zuordnen.

Schritt 1: Definieren eines Cache-Frontends und Zuweisen von Cache-Typen

Um ein benutzerdefiniertes Cache-Frontend zu definieren, fügen Sie die -Konfiguration zu app/etc/env.php hinzu (wodurch di.xml überschrieben wird):

'cache' => [
    'frontend' => [
        '<unique frontend id>' => [
             <cache options>
        ],
    ],
    'type' => [
         <cache type 1> => [
             'frontend' => '<unique frontend id>'
        ],
         <cache type 2> => [
             'frontend' => '<unique frontend id>'
        ],
    ],
],

Dabei gilt:

  • <unique frontend id> - Ein eindeutiger Name zur Identifizierung des Frontends (z. B. default, page_cache, stale_cache_enabled)
  • <cache options> - Backend-Typ und Optionen für dieses Frontend (siehe Cache-Optionen)
  • <cache type> - Ein Commerce-Cache-Typ, der diesem Frontend zugewiesen werden soll (z. B. config, layout, block_html, full_page)
TIP
Moderne Symfony-Cache-Implementierung (2.4.9+): Ab Commerce 2.4.9 können Sie mit der modernen Symfony-Cache-Implementierung vereinfachte Backend-Typen wie redis, valkey oder file verwenden. Siehe Verwenden von Redis für ​-Cache und Verwenden von Valkey für ​-Cache) für Details.

Schritt 2: Konfigurieren der Frontend- und Backend-Optionen

Sie können die Konfigurationsoptionen für Frontend- und Backend-Cache in env.php oder di.xml angeben. Diese Aufgabe ist optional. Wenn Sie keine Optionen angeben, verwendet Commerce die standardmäßigen Frontend- und Backend-Einstellungen.

env.php:

'frontend' => <frontend_type>,
'frontend_options' => [
    <frontend_option> => <frontend_option_value>,
    ...
],
'backend' => <backend_type>,
'backend_options' => [
    <backend_option> => <backend_option_value>,
    ...
],

Dabei gilt:

  • <frontend_type> - Der Frontend-Cache-Typ auf niedriger Ebene. Geben Sie einen Klassennamen an, der mit Zend\Cache\Core kompatibel ist.
    Wenn ausgelassen, wird Magento\Framework\Cache\Core verwendet.

  • <frontend_option>, <frontend_option_value> - Name und Wert der Optionen, die das Commerce-Framework bei der Erstellung als assoziatives Array an den Frontend-Cache übergibt.

  • <backend_type> - Der Backend-Cache-Typ auf niedriger Ebene. Sie können Folgendes angeben:

    • Modern Symfony Cache (2.4.9+, empfohlen): Vereinfachte Namen wie redis, valkey oder file
    • Legacy (Zend-basiert) Vollständiger Klassenname kompatibel mit Zend_Cache_Backend, die Zend_Cache_Backend_Interface implementiert
  • <backend_option>, <backend_option_value> - Name und Wert der Optionen, die das Commerce-Framework bei der Erstellung als assoziatives Array an den Backend-Cache übergibt.

NOTE
Legacy-Implementierung vs. moderne Implementierung:
  • Legacy (Zend-basiert): 'backend' => 'Magento\\Framework\\Cache\\Backend\\Redis'
  • Modern (Symfony Cache): 'backend' => 'redis' (empfohlen für Commerce 2.4.9+)
Die moderne Symfony Cache-Implementierung bietet eine bessere Leistung durch PSR-6-Compliance, Igbinary-Serialisierung, Gzip-Komprimierung, Lua-Skripte und persistente Verbindungen.

Siehe die Laminas-) für Zend-basierte Optionen oder die modernen Symfony Cache-Handbücher für Redis und Valkey.

recommendation-more-help
commerce-operations-help-configuration