Backend, APIs & Daten · Fortgeschritten

Cache: beschleunigen, ohne veraltete Daten auszuliefern

In einem Satz: Bevor Sie einen Cache hinzufügen, entscheiden Sie, wie lange ein veraltetes Datum noch akzeptabel ist — das ist die einzige Frage, die wirklich zählt.

Wo man ihn platziert

Im Browser, im Verteilnetz, im App-Server und in einem gemeinsamen Schlüssel-Wert-Speicher. Jede Schicht ist schneller und schwerer zu invalidieren. Der meiste Schmerz kommt von Schichten, die ohne eine einzige entscheidende Richtlinie gestapelt sind.

Drei Strategien

Zeitablauf. Einfach und für die meisten Fälle genug. Wählen Sie eine kurze Zeit für sich ändernde Daten und eine logische für stabile.

Ereignisinvalidierung. Beim Schreiben den Schlüssel löschen. Genauer, und erfordert, jede schreibende Stelle zu bedenken.

Hintergrundauffrischung. Eine bestehende Kopie ausliefern und parallel auffrischen — ein reibungsloses Erlebnis, im Tausch gegen einen leicht veralteten Wert.

Fallstricke

Ein Cache-Schlüssel, der die Identität oder Berechtigungen des Nutzers nicht enthält — so werden Daten des einen dem anderen ausgeliefert. Massenablauf im selben Moment, der die Datenbank zu Fall bringt. Und ein Cache, der eine langsame Abfrage überdeckt, statt sie zu beheben.

Im Detail

Messen Sie die Cache-Trefferrate und auch die Antwortzeit ohne ihn. Ein Cache, der ein Problem verbirgt, statt es zu lösen, explodiert im schlimmsten Moment — wenn er sich leert und das System der vollen Last ausgesetzt ist, gegen die es nie getestet wurde.