Caching ist ein Begriff aus der Informatik. Die Idee hinter einem Cache (ausgesprochen "Cash" /ˈkæʃ/ KASH ) ist sehr einfach: Sehr oft ist es sehr zeitaufwendig, ein Ergebnis für eine Berechnung zu erhalten, daher ist es im Allgemeinen eine gute Idee, das Ergebnis zu speichern. Es werden zwei Arten von Speichermedien verwendet: Die eine ist normalerweise ziemlich groß, aber der Zugriff darauf ist "langsam"; auf die andere kann viel schneller zugegriffen werden, aber im Allgemeinen ist sie klein. Die Grundidee hinter dem Caching besteht darin, das Medium, auf das schnell zugegriffen werden kann, zu verwenden, um Kopien von Daten zu erhalten. Es gibt keinen Unterschied zwischen der Kopie und dem Original. Der Zugriff auf die Originaldaten kann lange dauern oder teuer sein (z.B. die Ergebnisse eines schwierigen Problems, dessen Lösung viel Zeit in Anspruch nimmt). Aus diesem Grund ist es viel "billiger", einfach die Kopie der Daten aus dem Cache zu verwenden. Anders ausgedrückt: Ein Cache ist ein temporärer Speicherbereich, der Kopien von Daten enthält, die häufig verwendet werden. Wenn sich eine Kopie der Daten in diesem Cache befindet, ist es schneller, diese Kopie zu verwenden, als die Originaldaten neu abzurufen oder neu zu berechnen. Dadurch verkürzt sich die für den Zugriff auf die Daten durchschnittlich benötigte Zeit. Wenn ein neuer Wert in einen Cache gestellt wird, bedeutet dies oft, dass ein älterer Wert ersetzt werden muss. Es gibt verschiedene Ideen (gewöhnlich "Strategien" genannt), wie der zu ersetzende Wert ausgewählt werden kann.

Ein Puffer ist einem Cache sehr ähnlich. Der Unterschied besteht darin, dass der Client, der auf die Daten in einem Puffer zugreift, weiß, dass es einen Puffer gibt; der Puffer wird von der Anwendung verwaltet. Bei einem Cache muss der Client, der auf die Daten zugreift, nicht wissen, dass es einen Cache gibt.

Typische Computeranwendungen greifen auf sehr ähnliche Weise auf Daten zu. Angenommen, die Daten sind in "Blöcke" strukturiert, auf die einzeln zugegriffen werden kann. Wenn eine Anwendung auf einen Block zugreift, ist es sehr wahrscheinlich, dass sie auch auf einen Block zugreift (oder darauf verweist), der "nahe" am ursprünglichen Block liegt. Dies wird als "Lokalität der Referenz" bezeichnet. Es gibt verschiedene Arten einer solchen "Lokalität". Die "Lokalität der Referenz" ist einer der Gründe, warum Caches in vielen Bereichen der Datenverarbeitung gut funktionieren.

Um gut arbeiten zu können, sind die Caches im Vergleich zur gesamten Datenmenge klein. Je größer der Cache, desto länger dauert es, einen Eintrag nachzuschlagen. Größere Caches sind auch teurer zu bauen.