Caching é um termo usado na ciência da computação. A idéia por trás de um cache (pronuncia-se "cash" /ˈkæʃ/ KASH ) é muito simples: Muito freqüentemente, obter um resultado para um cálculo é muito demorado, portanto, armazenar o resultado é geralmente uma boa idéia. Dois tipos de mídia de armazenamento são utilizados: Um é normalmente bastante grande, mas o acesso é "lento"; o outro pode ser acessado muito mais rápido, mas geralmente é pequeno. A idéia básica por trás do caching é usar o meio que é rápido de acessar para ter cópias dos dados. Não há diferença entre a cópia, e o original. O acesso aos dados originais pode levar muito tempo, ou pode ser caro (por exemplo: os resultados de um problema difícil que leva muito tempo para ser resolvido). Por esta razão, é muito "mais barato" simplesmente usar a cópia dos dados do cache. Dito de outra forma, um cache é uma área de armazenamento temporário que tem cópias de dados que são usados com freqüência. Quando uma cópia dos dados está neste cache, é mais rápido usar esta cópia em vez de buscar novamente ou recalcular os dados originais. Isto fará com que o tempo médio necessário para acessar os dados seja menor. Colocar um novo valor em um cache muitas vezes significa que um valor mais antigo precisa ser substituído. Há diferentes idéias (geralmente chamadas de "estratégias") sobre como selecionar o valor a ser substituído.

Um buffer é muito semelhante a um cache. É diferente porque o cliente que acessa os dados em um buffer sabe que existe um buffer; o buffer é gerenciado pela aplicação. Com um cache, o cliente que acessa os dados não precisa estar ciente de que existe um cache.

Aplicações típicas de computador acessam dados de formas muito semelhantes. Suponha que os dados sejam estruturados em "blocos", que podem ser acessados individualmente. Quando uma aplicação acessa um bloco, também é muito provável que acesse (ou faça referência) a um bloco que esteja "próximo" do bloco original. Isto é conhecido como localidade de referência. Existem diferentes tipos de tais "localidades". A localidade de referência é uma das razões pelas quais os caches funcionam bem em muitas áreas de computação.

Para funcionar bem, as caches são pequenas, em comparação com a quantidade total de dados. Quanto maior o cache, mais tempo se leva para procurar uma entrada. As caches maiores também são mais caras de se construir.