Zum Inhalt

Cache Tweaks: Reduziert Redis-Layout-Cache durch generische Handles

User Guide


CopeX GmbH
Web: https://copex.io
Email: office@copex.io


Inhaltsverzeichnis / Table of Contents

Abschnitt / Section Seite
1 Was es macht / What it does 3
2 Wann sinnvoll / When to use 3
3 Voraussetzungen / Requirements 4
4 Installation 4
5 Aktivierung / Activation 5
6 Verwendung / Usage 5
7 Was tun bei Problemen / Troubleshooting 6
8 Für Entwickler / For Developers 7

1 Was es macht

Magento erzeugt für jede Produktseite eigene Layout-Handles wie CATALOG_PRODUCT_VIEW_SKU_24-MB01 und CATALOG_PRODUCT_VIEW_ID_42. Das bedeutet: für jede einzelne SKU wird ein eigener Eintrag im Redis-Layout-Cache angelegt. Bei einem Katalog mit 50.000 Produkten ist der Layout-Cache riesig — Redis-Lookups werden träge, und der Speicherbedarf wächst unnötig.

Dieses Modul setzt direkt am Erzeugungspunkt dieser Handles an: es entfernt die id- und sku-Parameter aus den Layout-Handle-Parametern und ersetzt entity-spezifische Handles durch generische. Das Ergebnis: ein kleiner, stabiler Layout-Cache, der auch bei großen Katalogen performant bleibt.


2 Wann sinnvoll

  • Großer Produktkatalog (ab ca. 10.000 Produkten)
  • Redis-Layout-Cache wächst auffällig oder belegt zu viel Speicher
  • Layout-Cache-Lookups träge laut Redis-Monitoring
  • Redis-Evictions häufen sich trotz ausreichend konfigurierten Speicher

3 Voraussetzungen

  • Magento 2.4.x
  • PHP 8.1 oder höher (kompatibel mit 8.2, 8.3, 8.4, 8.5)
  • copex/module-core >1.1.0

4 Installation

composer require copex/module-performance-tweaks
bin/magento module:enable CopeX_Performance
bin/magento setup:upgrade
bin/magento cache:flush

Alternativ die komplette Suite installieren:

composer require copex/performance-suite-bundle

5 Aktivierung

Stores → Configuration → Advanced → Performance → Cache

Option Funktion
Disable Entity Specific Layout Handles Entfernt entity-spezifische Handles (z. B. CATALOG_PRODUCT_VIEW_TYPE_SIMPLE)
Disable Entity ID Layout Handles Entfernt ID- und SKU-spezifische Handles (z. B. CATALOG_PRODUCT_VIEW_SKU_MH01)

Beide Optionen sind per Default auf Ja gestellt.


6 Verwendung

Cache Tweaks arbeitet vollständig im Hintergrund — keine CLI-Befehle notwendig. Das Modul ist nach Aktivierung und Cache-Flush sofort aktiv.

Zur Überprüfung: Redis-Layout-Cache nach einem Cache-Flush neu befüllen lassen und Schlüsselanzahl beobachten. Mit aktivierten Optionen steigt die Anzahl der Layout-Cache-Einträge nur noch mit den Seitentypen (Kategorie, Produkt, Warenkorb), nicht mehr mit der Anzahl der Produkte.


7 Was tun bei Problemen

Optionen deaktivieren:

Stores → Configuration → Advanced → Performance → Cache → beide Optionen auf "Nein" stellen, dann Cache leeren. Das Modul wird zur No-Op — alle Handles werden wie im Magento-Standard erzeugt.

Einzelne Option deaktivieren:

  • Nur "Disable Entity ID Layout Handles" deaktivieren: SKU- und ID-Handles werden wieder erzeugt; entity-spezifische Handles bleiben weiterhin deaktiviert.
  • Nur "Disable Entity Specific Layout Handles" deaktivieren: SKU/ID-Keys werden weiterhin entfernt; der $entitySpecific-Flag wird nicht mehr überschrieben.

Layout-Probleme nach Aktivierung:

Falls ein Theme oder ein Modul zwingend auf SKU- oder ID-spezifische Layout-Handles angewiesen ist, beide Optionen auf "Nein" setzen und das Theme bzw. Modul anpassen, um generische Handles zu verwenden.


8 Für Entwickler

Das Modul registriert ein before-Plugin auf Magento\Framework\View\Result\Page::addPageLayoutHandles. Das Plugin liest die Konfiguration einmalig im Konstruktor (Store-Scope) und ist danach zustandslos.

Sortierung im DI-XML anpassen:

<type name="Magento\Framework\View\Result\Page">
    <plugin name="copex_performance_remove_entity_cache"
            type="CopeX\Performance\Plugin\RemoveEntityCache"
            sortOrder="10"/>
</type>

Eigene Plugins mit niedrigerem sortOrder laufen vor Cache Tweaks und sehen noch die originalen Parameter. Eigene Plugins mit höherem sortOrder sehen bereits die bereinigten Parameter.


CopeX GmbH — Web: https://copex.io — Email: office@copex.io