Cache is a volatile type of computer memory that offers us the high-speed access to the data which was previously accessed. The word cache means or refers to a fast-intermediate memory, inside of an extensive memory system. Cache is a small sized memory which stores the copy of active data and keeps it ready for future reference. The whole idea is to reduce the data access time, latency and improve the user experience.

The cache is a memory which carries the copy of the original data. So, whenever the same data is searched over time, and again, the data is picked from the cache and not from the main system memory.

The original data can either belong to the main memory (in case of computer memory cache) or can belong to the server computer (in case of server cache).

There are different types of the cache according to where it is implemented or installed. Some of them are disk cache, server cache, browser cache, memory cache, database cache, etc.

What is cache?

Data is always stored in some form of the storage system such as main memory. As we use and access the data over and again, it is copied to a faster storage system called as a cache.

Now, whenever we need some data, the computer system searches in the cache initially. If the data is available there, it is given to the user from there itself.

But if the information is not present in the cache, then the system searches for it in the primary storage system, picks it up from there and delivers it to the user. Before providing the data, it saves a copy of it in the cache. Now, this copy can be used further for future references.

Example – Let us make things clear by taking an example of a software application which requires a user to click a few initial steps to make it function. Now for this requirement, the cache will come in play and stores steps at the time of opening the software application for the very first time.

Now, whenever you load this software application again, the basic instructions or steps will be directly picked from the cache and it will save the hassle for you selecting the same thing again. Also, this speeds up the overall time.

How does cache work?

Till now, you must have understood that cache stores the copy of original data files which resides in the primary storage for speeding up the whole process. But there could one significant problem related to the small size of cache memory compared to possible enormous data available in the primary storage.

The cache memory is a small sized memory and cannot fit a significant amount of data. So, it is impossible for the cache to store copies of most of the available data in the primary storage system. Then on what basis does cache store these data copies?

Well, cache stores data copies on the basis of how frequently some data is accessed over a period. The information, which is regularly used or the data which a user is referencing more often, is stored in the cache in the form of data copies.

In short, neither it is possible to store copies of all data, nor there is any such requirement.

Different Types of Cache

The cache can be implemented in multiple ways, and hence there are different types of caches. The major categories are –

Memory cache

It is a type of the cache which is externally implemented or is a part of computer’s RAM (Random Access Memory). It also called as RAM cache. It is built using static RAM, which has fast speed. The memory cache is designed for storing the data and programs that the CPU (Central Processing Unit) uses more often.

Nowadays, you cannot increase the cache memory of the computer since it is part of the CPU itself and also it is embedded on the motherboard. The only option left is to upgrade the computer system board with next-generation version.

Client Cache

The client cache is a kind of cache which is always synchronized with some remote cache. This synchronization takes place through the notifications. A notification is triggered by the remote cache, whenever the changes are made to the data.

Now as the client cache is present on the same system where the client application is running hence it saves a lot of time and a round trip to the server or the remote location, through the network.

It improves the performance of the application significantly as it is now much easier and faster for the application to fetch the data from the client cache and it doesn’t require to bring the same data again and again from the remote location.

Server Cache

The server cache is the cache which is implemented on the server side. This cache is useful in storing the server side actions no matter they are simple or complex. This type of cache saves the results of a client query before sending it back to the client, believing that it can be used later.

When in a client-server architecture, the client sends a request to the server. This request can be anything from opening a web page to searching an extensive database for calculating things, etc.

The server performs the required processing or calculation and responds to the client with the results. At this same time, it also caches the results. Now, this cached copy of the result can be useful for the cases when this same request is repeated and thus saving all the processing, calculation and time from being repeated.

Distributed Cache

It is the regular cache being spread over a span of multiple servers in different geolocation. Web servers and the web applications use the distributed cache for serving the content over the internet in no time.

Distributed cache determines the user location and accordingly the nearest server is selected for providing the requested data. All these servers are in sync.

The data which is being accessed or requested more recently and frequently from a particular web server or application server is cached. A common example of such cache is CDN (content delivery network), Cloud Flare, etc.

Another simple example – Try opening Google page from a non-USA location. You will see your localized version of Google. For instance, if I am trying to perform Google search from India, then I will be presented with a www.google.co.in page and not www.google.com web page.

This distributed cache increases the speed by fulfilling more number of requests in less time and also extends the storage capacity.

Disk Cache

A disk cache is a cache that we use to increase the speed of the processes like – storing and retrieving the data, from the hard disk of the computer system. It provides quick processing of data like – reading and writing.

Disk cache also enables the faster processing of commands in between the hard disk, memory and the input/ output units. The disk cache can be implemented on the hard disk and can also be part of the RAM.

When the disk cache is part of the RAM, it is known as soft disk cache. The work of disk cache is to store recently accessed data or programs. When an application requests for some data, the operating system looks for it in the disk cache.

Browser Cache

It is just another implementation of the cache where the cache is storing the most recent and frequently used web pages in your web browser on the local machine. It saves them there temporarily and hence increases the speed of browsing.

When the user searches for the same web page again, it downloads the web page components locally from the browser cache and thus gives a great browsing experience to the users.

It is to be noted that the browser cache does not save the whole web page. Instead, it searches for the things which are static and may not change over a period. Some of these static components of any web page could be things like images, logos, header, footer, etc.

You all must have noticed that sometimes when you open our web browser, the home page or google starting page gets downloaded even if there is no internet connection.

This is possible only because of the browser cache as it saves the most frequently browsed web pages in its cache.

Database Caching

In cases of multi-tier architectures, the application tier and the data storing level are always different. And the main aim of such structures is to increase the throughput of the application. But because of the network issues, the performance is still limited.

But this problem can get solved if the data storage or the database tier and the application tier are at the same level. If this happens, then it will automatically increase the throughput because the involvement of the network reduces.

But because the enterprise versions of the database systems require a lot of resources for its working, it gets nearly impossible to manage them both at one level only. And here comes the role of the database cache, which saves the data on the same tier where the application software is running.

The database cache saves the data from the enterprise level of the database in a much lightweight and easy to manage form.