Cachegeheugen is een klein, razendsnel blokje geheugen dat pal naast de processor van een computer zit en de data vasthoudt die het vaakst gebruikt wordt. Iets uit het hoofdgeheugen halen kost tijd. Cachegeheugen houdt de drukbezochte data binnen handbereik, zodat de processor minder hoeft te wachten.
Stel je een kok voor op een drukke werkplek. De voorraadkast aan de overkant van de keuken heeft alles, maar de kok houdt zout, olie en de paar ingrediënten voor de gerechten van vanavond gewoon op het aanrecht. Dat aanrecht is het cachegeheugen: piepklein vergeleken met de voorraadkast, maar je pakt er meteen iets uit. Moderne processors stapelen dit idee in niveaus die L1, L2 en L3 heten, steeds groter en iets trager naarmate ze verder van de kern liggen. Het is een stuk fysieke hardware, niet iets dat je in software instelt.
Staat de data die de processor zoekt al op dat aanrecht, dan heet dat een cache hit en is het werk vrijwel meteen klaar. Zo niet, een cache miss, dan moet de processor naar de voorraadkast lopen om het op te halen, wat veel trager is. Chipontwerpers steken enorm veel moeite in het raden wat je hierna nodig hebt, zodat hits vaak blijven.
Hetzelfde idee duikt op in software via caching, waarbij een applicatie een kopie van recente resultaten bewaart zodat hij niet hetzelfde werk opnieuw doet. Een webapp doet dat vaak in een caching-laag vóór de database. Het principe is identiek: houd wat je het meest nodig hebt dichtbij.
Bij TopDevs houden we deze afwegingen rond snelheid in het achterhoofd als we ontwerpen hoe het systeem van een klant data opslaat en ophaalt, zodat de onderdelen die gebruikers het vaakst aanraken vlot blijven.