The practice of temporarily keeping copies of web content, such as web pages, photos, and videos, on servers that are closer to users is known as caching.
We temporarily store frequently accessed web pages or data, so that when the user asks for it again, we do not have to fetch it from Servers/or databases, rather just send the response data from Redis directly. The purpose of web caching is to improve the performance and efficiency of web browsing.
Let's understand it with an Analogy:
Consider that you are throwing a party at your home and a significant number of visitors are expected. You choose to set up a table near the entrance where you will place well-liked food and libations that the majority of people should enjoy. By doing this, you can avoid having to frequently return to the kitchen to get individual refreshments for each visitor. Instead, a convenient table close to the door allows visitors to swiftly grab their preferred food.
In this comparison, your home stands in for the website's server, the snacks on the table for the most popular web content, and the visitors stand in for the users.
Similarly, web caching works by placing caches (servers or systems) closer to users, just like the table near the entrance. When users request web content, instead of fetching it from the source(the website's server) every time, the cache can quickly provide the content if it is already stored. This saves time and resources required to fetch the content from the source, resulting in faster access and a smoother browsing experience for users.
The analogy highlights how web caching brings frequently accessed content closer to users, just as the snack table brings popular snacks closer to the guests, improving efficiency and reducing wait times.
Architecture:
The client requests some data. Request first goes to the Redis/Web Cache memory (It acts as a proxy server between the client and the original server), it checks if the resource is present or not. If it is present, Cache Server simply returns the data to the client.
If the resource is not found in the cache server, It requests it from the original server/Database. When data arrives at the cache server, it sends it to the client and stores a copy of it.
When a client requests the same resource again, it will be coming from the cache server. This makes response times faster!
REDIS?
Redis is an open-source, in-memory data structure store that can be used as a database, cache, and message broker. It provides high-performance and low-latency data access by storing data in memory.
Data Structure Support: Redis supports various data structures such as strings, lists, sets, hashes, sorted sets, and more. These data structures allow for efficient storage and retrieval of data, making Redis a versatile tool for different use cases.
In-Memory Storage: Redis stores data primarily in RAM, which enables fast data access and retrieval. This design choice makes Redis suitable for scenarios where low latency is crucial, such as caching frequently accessed data or maintaining real-time leaderboards.
Redis stores the data in key-value pairs!
To learn more about Redis, do go through: Web Dev Simplified and Redis Docs
How to set up Redis?
Visit the official documentation for installation: Redis Installation Docs
To start the server:
sudo servie redis-server start
Let us see a real-life scenario where Redis showed its magic!
Case study of Pinterest!
Pinterest implemented Redis as a caching layer to improve their website's performance and handle high traffic loads efficiently.
- Here is a link to a case study published by Redis Labs, the company behind Redis, that discusses how Pinterest utilized Redis caching:
Case study: Redis at Pinterest - https://redislabs.com/case-studies/pinterest/
In this case study, Pinterest explains how they used Redis as an in-memory data store to cache frequently accessed data and reduce the load on their backend servers.
After Redis data be like:
By leveraging Redis caching, Pinterest achieved significant improvements in their website's responsiveness, reduced database load, and provided a better user experience for their millions of users.
That's it for the theory part, let's see the result now!
visit my article: Redis Implementation🔥🔥