Spring GDS 25. Jubiläum
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Caching bedeutet, das Ergebnis aufwendiger Arbeit zu speichern, damit die nächste Anfrage es wiederverwendet, statt es erneut zu erledigen. Eine Datenbankabfrage, die 200 Millisekunden dauert, läuft einmal, die Antwort wird an einem schnellen Ort abgelegt, und die nächsten tausend Anfragen lesen sie in unter einer Millisekunde. Die Arbeit geschieht einmal und zahlt sich vielfach aus.
Caches liegen in jeder Schicht eines Systems. Der Browser cacht Assets, damit ein erneuter Besuch sofort lädt. Ein CDN cacht Seiten und Dateien nah am Nutzer. Ein In-Memory-Speicher wie Redis cacht Abfrageergebnisse und Sessions. Die Datenbank cacht ihre eigenen heißen Seiten. Jede Schicht beantwortet dieselbe Frage: Kann ich diese Arbeit vermeiden? Der berüchtigt schwere Teil ist die Invalidierung. Ein Cache hält eine Kopie, und sobald sich das echte Datum ändert, ist diese Kopie eine Lüge, bis etwas sie räumt. Cachen Sie zu lange, sehen Nutzer veraltete Informationen. Cachen Sie zu wenig, verlieren Sie den Vorteil. Die Startseite einer Nachrichtenseite cacht ihre Artikelliste dreißig Sekunden lang, sodass eine Million Leser in diesem Fenster alle den Cache treffen, während die Seite nahezu live bleibt.
Übliche Strategien sind zeitbasierter Ablauf, ereignisbasierte Invalidierung, wenn sich Daten ändern, und tag-basierte Revalidierung, die zusammengehörige Einträge gemeinsam räumt.
Caching ist meist der günstigste, größte verfügbare Performancegewinn und der Ort, an dem sich die übelsten Bugs verstecken. Ein veralteter Preis, ein angemeldeter Nutzer, dem die gecachte Seite eines anderen ausgeliefert wird, ein Dashboard, das die Zahlen von gestern zeigt. Deshalb entwerfen wir die Invalidierung, bevor wir den Cache hinzufügen, nicht erst, nachdem ein Kunde den Bug meldet. Dieses vorausschauende Denken ist der Unterschied zwischen Caching, das hilft, und Caching, das still das Vertrauen in die Daten zersetzt.
Wir stimmen Caching pro Schicht und pro Route ab, denn die richtige Antwort für eine Marketingseite ist die falsche für einen Live-Kontostand. Ereignis- und tag-basierte Invalidierung halten gecachte Inhalte ehrlich, wenn sich die zugrundeliegenden Daten bewegen. Es ist ein wiederkehrender Teil unserer Performance Tests und unseres Monitorings und zieht sich durch unsere Webentwicklung und Web App Entwicklung, wann immer ein System heiße Pfade hat, die sich zu beschleunigen lohnen.
Seiten, die unter Last langsam werden, oder die Sorge, dass ein Cache veraltete Daten ausliefert? Bringen wir Ihre Caching-Strategie in Ordnung.
Ein Logistikunternehmen, das in 190 Länder versendet, hat etwas gebaut, um an sich selbst zu liefern.
Eine Marke in ein funktionierendes Geschäft verwandeln.
Eine halbe Million Menschen. Eine App. Null Chaos.















