Zum Inhalt springen

Glossar

Laravel-Cache: berechnete Ergebnisse aufheben statt neu erzeugen

Ein Zwischenspeicher für Ergebnisse, deren Berechnung teuer ist und die sich selten ändern.

Manche Ergebnisse sind teuer. Eine Auswertung über zwei Jahre Bestelldaten, eine Preisliste, die aus mehreren Quellen zusammenkommt, eine Berechtigungsprüfung mit vielen Verzweigungen. Wenn sich das Ergebnis selten ändert, ist es Verschwendung, es bei jedem Aufruf neu zu erzeugen.

Ein Cache hebt es auf. Beim nächsten Mal wird nicht gerechnet, sondern nachgesehen. Laravel bietet dafür eine einheitliche Schnittstelle, egal ob der Zwischenspeicher im Dateisystem liegt, in der Datenbank oder in Redis. Für alles, was schnell sein soll, ist Redis der übliche Unterbau.

Die schwierige Frage ist die zweite

Etwas aufzuheben ist einfach. Zu wissen, wann es nicht mehr gilt, ist die eigentliche Arbeit. Ein Preis ändert sich, ein Kunde bekommt eine andere Konditionsgruppe, ein Artikel wird deaktiviert. Jedes Mal muss der Zwischenspeicher davon erfahren.

Deshalb setzen wir Caching gezielt ein und nicht flächendeckend. Erst messen, wo die Zeit wirklich verlorengeht, dann genau dort aufheben, und für jede Stelle festlegen, wodurch der Eintrag ungültig wird. Ein Cache, den niemand ungültig macht, ist eine Fehlerquelle mit Verzögerung.

FAQ

Häufige Fragen

Wieso sehen wir manchmal alte Daten?
Dann hält ein Zwischenspeicher ein Ergebnis fest, das sich inzwischen geändert hat, und niemand hat ihm das gesagt. Deshalb gehört zu jedem Cache die Festlegung, wodurch er ungültig wird. Fehlt sie, entsteht genau dieser Effekt, und er ist schwer zu finden, weil alles funktioniert und nur die Zahlen nicht stimmen.

Verwandt

Begriffe, die dazugehören

Projekt oder Frage?

Schreiben Sie uns, worum es geht. Sie bekommen eine Einschätzung von jemandem, der selbst mit Laravel arbeitet — nicht vom Vertrieb.