Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Caching-Ebenen für Ingenieure

Jeder Cache zwischen einem Besucher und der Datenbank einer Exponential-Website aus Sicht eines Ingenieurs - was jede Ebene speichert, wonach sie geschlüsselt ist, ob sie eingeschaltet ausgeliefert wird, wen sie…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/software-engineers/caching-layers-for-engineers.md

On this page

This page is a translation. Read the English original

Caching-Ebenen für Ingenieure

Diese Seite richtet sich an Ingenieure, die Leistung und Korrektheit zusammen betrachten. Exponential hat viele Caches; die meiste Leistungsarbeit besteht darin zu wählen, welche eingeschaltet werden, und die meisten Fehler mit "veralteter Seite" sind einer davon, der antwortet, wenn er es nicht sollte. Die Sicht der Betreiber auf dieselben Ebenen ist Caching-Ebenen, und die Administrationsseite ist unter Caches beschrieben.

Inhalt

  1. Die Ebenen der Reihe nach
  2. Wonach jede Ebene geschlüsselt ist
  3. Geteilt oder je Knoten
  4. Risiken für die Korrektheit
  5. Wählen, was eingeschaltet wird

Die Ebenen der Reihe nach

Vom Besucher hinunter zur Datenbank:

#EbeneAusgeliefertBedientQuelle
1Browser-Cache für statische DateienVelocity: StaticMaxAge ein JahralleHTTP-Caching
2Browser-Cache für Seitenaus ([HTTPHeaderSettings])anonyme Besucher, wenn eingeschaltetHTTP-Caching
3CDN oder Caching-Proxynicht Teil von Exponentialwie konfiguriertExponential sendet keine Purges
4Antwort-Cache von Velocityunter Velocity an (velocity.ini [CacheSettings] Enabled=enabled)anonyme BesucherAntwort-Cache von Velocity
5Rollenbewusster HTTP-Cacheaus (httpcache.ini)anonyme und angemeldete Besucher, je BerechtigungskontextHTTP-Cache
6Statischer Cacheausanonyme Besucher, als DateienStandards des statischen Cache
7View-Cache für Inhaltean ([ContentSettings] ViewCaching=enabled)jeden BesucherCaches
8Cache für Template-Blöckean ([TemplateSettings] TemplateCache=enabled)jeden BesucherDie Template-Engine und die Design-Kette
9Kompilierte Templates, INI- und Override-Cachesanjede AnfrageCaches
10Redis oder Valkey für Views, Blöcke, INInur mit sevenx_valkey_cachejede Anfragesevenx_valkey_cache
11SQL-Abfrage-Cacheaus (querycache.ini Mode=off)jede Anfrage, die er beantworten kannDer SQL-Abfrage-Cache
12OPcache, APCuje PHP-Prozessjede AnfrageIhre PHP-Konfiguration

Den Antwort-Cache von Velocity gibt es nur unter der Engine qbix: FrankenPHP hat noch keinen, und PHP-FPM hinter Apache oder nginx hat keinen eigenen (Anwendungsserver).

Wonach jede Ebene geschlüsselt ist

EbeneSchlüssel (kurz)Invalidiert durch
Antwort-Cache von Velocitydie Anfrage eines anonymen Besuchers; Lebensdauer [CacheSettings] DefaultTtl (mitgeliefert 30 Sekunden), sofern Cache-Control der Seite nichts anderes sagtLebensdauer, ./console exp:velocity cache clear --apply
Rollenbewusster HTTP-Cachedie Inhaltsansicht und der Berechtigungskontext (anonym, ein gemeinsamer Rollenkontext oder privat)Purges bei Inhaltsänderungen (standardmäßig ContentChangePurges=all), --clear-id=exphttpcache
View-Cache für Inhalteder Knoten, die Ansicht und ihre Parameter und der Zugriffskontext des BenutzerseZContentCacheManager beim Veröffentlichen, --clear-tag=content
Cache für Template-Blöckedie in {cache-block} geschriebenen Schlüssel und sein AblaufAblauf, --clear-id=template-block
INI-Cachedie Dateien der Kaskade für einen Siteaccess (und eine Umgebung)--clear-tag=ini
SQL-Abfrage-Cachedie SELECT-Anweisungein Schreibvorgang in eine der gelesenen Tabellen

Geteilt oder je Knoten

Die Caches in var/ sind Dateien, die über den Cluster-Datei-Handler geschrieben werden, sodass derselbe Code sie auf Cluster-Speicher teilen kann. Der Antwort-Cache von Velocity und der Speicherzustand seiner Worker gelten je Serverprozess; OPcache und APCu je PHP-Prozess. Entscheiden Sie bei mehreren Webknoten für jede Ebene, ob sie geteilt, auf jedem Knoten geleert oder ablaufen gelassen wird (Skalierung und Clustering).

Risiken für die Korrektheit

  • Leeren vor dem Neuladen. Eine Seite, die der alte Code zwischen dem Leeren eines Cache und dem Neuladen von PHP-FPM oder Velocity rendert, wird erneut zwischengespeichert; leeren Sie Seiten-Caches zuletzt (Eine Änderung bereitstellen).
  • Schreibvorgänge von außen. Eine Wiederherstellung oder ein Schreibvorgang über einen SQL-Client umgeht die Invalidierung des SQL-Abfrage-Cache; leeren Sie ihn danach.
  • Cache-Blöcke ohne die richtigen Schlüssel. Ein {cache-block}, der nicht nach dem schlüsselt, was die Ausgabe ändert, liefert das Fragment eines Benutzers oder einer Seite an einen anderen aus.
  • Velocity hält Einstellungen im Speicher. Nach einer INI-Änderung genügt unter Velocity das Leeren des INI-Cache nicht; starten Sie es neu.
  • Statischer Cache. War er an, erzeugte jedes Veröffentlichen jede betroffene Seite über HTTP innerhalb der Anfrage des Redakteurs neu; das Projekt liefert ihn ausgeschaltet aus und empfiehlt, ihn ausgeschaltet zu lassen.

Wählen, was eingeschaltet wird

  1. Behalten Sie die mitgelieferten Standards: View-Cache, Template-Blöcke, kompilierte Templates, INI-Cache.
  2. Für anonymen Verkehr bringt unter Velocity der Antwort-Cache den größten Gewinn je Änderung.
  3. Für angemeldeten Verkehr hält der rollenbewusste HTTP-Cache ganze Ansichten je Berechtigungskontext.
  4. Für Seiten, die sich nicht als Ganzes speichern lassen (die Administration, private Kontexte, Skripte), der SQL-Abfrage-Cache.
  5. Bei mehreren Webknoten erwägen Sie Redis oder Valkey für Views, Blöcke und INI.

Messen Sie jeden Schritt (Leistungsmessung und Benchmarks).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x