Konfigurieren von Cache-Frontends und -Typen

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

Verwenden Sie diese Beziehung, um zu entscheiden, wo jeder Cache-Typ Daten speichert:

cache type -> cache frontend -> cache backend

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 den Cache-Typ full_page einem page_cache-Frontend zuweisen, das eine dedizierte Valkey-Datenbank verwendet, während andere Cache-Typen das default-Frontend verwenden.

NOTE
Informationen zu Adobe Commerce in Cloud-Projekten finden Sie Best Practices für die Konfiguration von Redis und Valkey unter Cache-Konfigurationsanweisungen. Redis-Cache wird für Adobe Commerce 2.4.9 oder Patch-Versionen nach 2.4.5-p16, 2.4.6-p14, 2.4.7-p9 und 2.4.8-p5 nicht unterstützt. Verwenden Sie Valley für die Cache-Konfiguration, bei der Redis nicht unterstützt wird. Siehe Systemanforderungen für unterstützte Cache-Services nach Version.

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
Adobe Commerce 2.4.9 und höher verwenden vereinfachte Backend-Typnamen wie valkey oder file mit der Symfony Cache-Implementierung. Unter Cache-BackendOptionen) finden Sie Backend-Beispiele und versionsspezifische Anleitungen.

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' => 'valkey' für Commerce-Versionen 2.4.9+ und aktuelle Patch-Versionen für die Release-Zeilen 2.4.5 bis 2.4.8, wobei Valkey das unterstützte Cache-Backend ist.
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-Dokumentation für Zend-basierte Optionen. Informationen zur Konfiguration des Symfony-Caches finden Sie in den Redis und Valkey Artikeln in dieser Dokumentation.

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