Caching este un termen utilizat în informatică. Ideea din spatele unui cache (pronunțat "cash" /ˈkæʃ/ KASH ) este foarte simplă: Foarte des, obținerea unui rezultat pentru un calcul este foarte consumatoare de timp, astfel încât stocarea rezultatului este în general o idee bună. Se folosesc două tipuri de medii de stocare: Unul este de obicei destul de mare, dar accesarea lui este "lentă"; celălalt poate fi accesat mult mai rapid, dar în general este mic. Ideea de bază din spatele memoriei cache este de a utiliza mediul care este rapid de accesat pentru a avea copii ale datelor. Nu există nicio diferență între copie și original. Accesarea datelor originale poate dura mult timp sau poate fi costisitoare (de exemplu: rezultatele unei probleme dificile a căror rezolvare durează mult timp). Din acest motiv, este mult mai "ieftin" să se utilizeze pur și simplu copia datelor din memoria cache. Altfel spus, o memorie cache este o zonă de stocare temporară care are copii ale datelor care sunt utilizate des. Atunci când o copie a datelor se află în această memorie cache, este mai rapid să se utilizeze această copie decât să se recupereze sau să se recalculeze datele originale. Astfel, timpul mediu necesar pentru accesarea datelor va fi mai scurt. Introducerea unei noi valori într-o memorie cache înseamnă adesea că o valoare mai veche trebuie înlocuită. Există diferite idei (denumite de obicei "strategii") privind modul de selectare a valorii de înlocuit.
Un buffer este foarte asemănător cu o memorie cache. Este diferită prin faptul că clientul care accesează datele dintr-un buffer știe că există un buffer; bufferul este gestionat de aplicație. În cazul unui cache, clientul care accesează datele nu trebuie să știe că există un cache.
Aplicațiile informatice tipice accesează datele în moduri foarte asemănătoare. Să presupunem că datele sunt structurate în "blocuri", care pot fi accesate individual. Atunci când o aplicație accesează un bloc, este foarte probabil să acceseze (sau să facă trimitere) la un bloc care este "apropiat" de blocul original. Acest lucru este cunoscut sub numele de localitate de referință. Există diferite tipuri de astfel de "localitate". Localitatea de referință este unul dintre motivele pentru care memoria cache funcționează bine în multe domenii de calcul.
Pentru a funcționa bine, memoria cache trebuie să fie mică, în comparație cu întreaga cantitate de date. Cu cât memoria cache este mai mare, cu atât mai mult durează căutarea unei intrări. De asemenea, crearea unor memorii cache mai mari este mai costisitoare.

