Een cache is snelle tussenopslag voor data die eerder is opgehaald of berekend, zodat de volgende keer het langzame originele pad overgeslagen kan worden. Vrijwel elke laag van een computersysteem heeft er een.
| Cache | Versnelt |
|---|---|
| CPU-cache (L1/L2/L3) | Toegang tot RAM |
| Page cache (Linux) | Toegang tot de schijf |
| DNS-cache | Naamopzoekingen |
| Browsercache | Opnieuw laden van webpagina's |
| CDN | Ophalen bij de oorspronkelijke server |
Linux gebruikt vrij geheugen automatisch als cache voor schijfblokken. Daarom lijkt het RAM altijd "vol" — dat is gezond gedrag:
free -h # kolom buff/cache is direct beschikbaar voor programma's
Heeft een programma geheugen nodig, dan geeft de kernel cache meteen vrij.
Een cache kan verouderde data bevatten. Daarom krijgt cache-inhoud een levensduur (TTL, zoals bij DNS-records) of wordt hij actief ongeldig gemaakt bij wijzigingen. Dat laatste goed doen is berucht lastig — vandaar de klassieker: "There are only two hard things in computer science: cache invalidation and naming things." Als iets onverklaarbaar oud gedrag vertoont, is een verouderde cache een van de eerste verdachten.