In computing terms, a cache is a collection of temporary data that will be required to be accessed in the future, and can be retrieved extremely quickly. The data stored within a cache may be a simple reproduction of information held elsewhere or it may have been the results of a previous computation. Where data stored in the cache is requested, this is known as a cache hit. The advantage of a cache hit is that the request will be served considerably faster. The flipside, a cache miss, occurs when information has to be recalculated or retrieved from its original location, consuming more system resources and slower access. If 20% of data is accessed 80% of the time, and a system can be utilised which reduces the cost and time of obtaining that 20%, system performance will dramatically improve. Fine tuning a system to improve the cache hit rate speeds up overall system performance.
Caches are employed in a variety of different ways. For example, we see caches being used to store items in memory, to disk, and to a database. Caches are also frequently used to service DNS requests, as well as distributed caching where caches are used to to spread across different networked hosts.