缓存是计算机科学中的一个术语。缓存(发音为"cash" /ˈkæʃ/ KASH )背后的想法非常简单。通常情况下,获取一个计算结果是非常耗时的,所以存储结果通常是一个好主意。有两种存储介质。一种通常是相当大的,但访问它是"慢"的;另一种可以更快地访问,但通常是小的。缓存背后很基本的思想就是利用访问速度快的介质来拥有数据的副本。副本,和原始数据没有区别。访问原始数据可能需要很长的时间,或者需要很高的成本(例如:一个困难问题的结果,需要很长时间才能解决)。出于这个原因,单纯使用缓存中的数据副本要"便宜"得多。换句话说,缓存是一个临时的存储区域,里面有经常使用的数据副本。当数据的副本在这个缓存中时,使用这个副本比重新获取或重新计算原始数据要快。这将使访问数据所需的平均时间缩短。将一个新的值放入缓存中,往往意味着需要替换一个旧的值。关于如何选择要替换的值,有不同的想法(通常称为"策略")。
缓冲区与缓存非常相似。它的不同之处在于,访问缓冲区中数据的客户端知道有一个缓冲区;缓冲区由应用程序管理。而在缓存中,访问数据的客户端不需要知道有一个缓存。
典型的计算机应用程序访问数据的方式非常相似。假设数据被结构化为"块",可以单独访问。当一个应用程序访问一个块时,它也很可能访问(或引用)一个与原始块"接近"的块。这就是所谓的"引用的位置性"。这种"位置性"有不同的种类。引用的位置性是缓存在许多计算领域工作良好的原因之一。
为了能很好地工作,与整个数据量相比,缓存是很小的。缓存越大,查找一个条目的时间就越长。更大的缓存构建成本也更高。

