What is Redis?
Every organization desires to grow.
When an organization grows, it means a large audience interaction, many database requests, and longer response times.
The overall impact will be a higher cost for resources.
One of the best ways to solve these problems is by ensuring that database requests are served faster.
If you're not good in IT, you may think that data can only be saved in a database, which is not true.
A technique called "Caching" can help organizations to save time when serving database requests.
In this article, we will discuss a popular Caching tool called "Redis".
But before discussing more about Redis, let me first help you understand the process of Caching in depth.
Table of Contents
You can skip to a specific section of this Redis tutorial using the table of contents below:
- What is Caching?
- What is Redis?
What is Caching?
Caching refers to the process of storing some data in a "Cache".
A Cache is a temporary storage area that stores data so that it can be accessed faster in future.
It takes a shorter period of time to access data stored in a cache than data stored in a database.
In caching, the data is stored in a fast access hardware like the RAM and it may be in correlation with a software component.
What is Redis?
Redis (REmote DIctionary Server) is an open source, fast, in-memory, key-value data store that is used as a database, cache, queue, and message broker.
Redis supports various data structures like Hashes, Strings, Sets, Lists, etc.
Due to this, Redis is referred to as a data structure server since its core data structures are similar to those provided by other programming languages.
It also comes with other features and data structures for stream processing, geolocation, and approximate counting.
Redis delivers sub-millisecond response times, supporting up to millions of requests per second for real-time applications in Financial Services, AdTech, IoT, Gaming, and Healthcare.
When an application is getting data from external sources, the throughput and latency of data sources can cause a performance bottleneck, especially when the application scales or traffic increases.
In such a case, one of the ways to improve performance is to store and modify the data in-memory, and that is exactly what Redis helps you achieve.
Redis stores all its data in-memory, providing the fastest possible speed when writing or reading data, and it has built-in replication capabilities that allow you to place data physically closer to the user.
Other features that characterize Redis are high availability, multiple levels of on-disk persistence, and support for Lua scripting.
Its popualr use cases include Gaming Leaderboards, Caching, Session Store, Rich Media Streaming, Geospatial, Machine Learning, Real-Time Analytics, Chat, Messaging, and Queues.
The following are some of the most popular features offered by Redis:
The Redis Sentinel is a stand-alone distributed system that developers use to calibrate their instances and increase their availability to clients.
It uses a series of monitoring processes, automatic failovers, and notifications to tell its users in case of faulty master and slave instances.
It also reconfigures new connections automatically for applications whenever it's necessary.
Redis Cluster <a name="cluster>
This is a distributed form of Redis that automatically divides datasets among various nodes.
It facilitates higher scalability and performance of database deployments, and ensures continuous operations even when node subsets cannot communicate with the other part of the cluster.
Since you can use publish and subscribe (Pub/Sub) commands in Redis, you can create high-performance messaging services for your services and applications.
You can also use the list data structures to execute atomic operations.
Redis relies on a persistent disk storage to avoid network bottlenecks and survive process outages.
Redis takes screenshots of data regularly and appends them with changes as they become available.
You can then configure it to generate database backups at automatic intervals or on demand to ensure database integrity and durability.
To run Redis commands on your computer, you should first install it.
You can get the installation instructions for Redis on its official website by opening the following URL on your web browser:
Although Redis is not native to Windows, Microsoft has made it sure that you can use Redis.
You can download the .zip or .msi file from GitHub by opening the following URL on your web browser:
To start Redis, just run the following command from the terminal of your operating system:
To check whether Redis is working, run the following command:
This will open the Redis prompt as shown below:
The 127.0.0.1 is the IP address of your computer (localhost) while the 6379 is the port number on which the Redis server is running.
PONG output shows that Redis is successfully installed on your computer.
Setting a Key
To set a Redis key, we use the
SET sample_key "Hello World"
The above command helps us set a key named
If the comamnd runs successfully, it should return "OK".
Getting a Key
To get the value of a key, we use the
GET command followed by the key name.
The command should return the value of the key named
sample_key as shown below:
Deleting a Key
To delete a Redis key, we use the
DEL command followed by the name of the key.
For example, let's delete the key named
Since the key was deleted, the result is nil.
Setting Keys with Expiry
You can set the expiry period of a key when creating it.
This requires that you use the
SETEX sample_key 50 "He said, Hello World!"
The key has been set with an expiry period of 50 seconds.
If the command runs succerssfully, it will only return
To see the total time left for a key to expire, use the
TTL (Total Time Left) command.
The command runs as follows:
The output shows that only 47 seconds are left for the key to expire!
Removing Key Timeout
To remove the expiry period from your Redis key, you should change it from being volatile to persistent.
This means that the key won't expire.
This is possible using the
The above command wil turn the key named
sample_key from volatile to persistent.
Renaming a Key
To rename the curreny key, use the
RENAME sample_key my_key
The above command will rename the key named
To flush everything that you've saved so far, use the
The nil output shows that nothing is saved in Redis.
This is what you've learnt in this article:
- Data stored in Cache can be accessed faster than data stored in disk.
- Redis is a great tool for implementing Caching in applications.
- Redis supports numerous data structures just like other programming languages.
- Although Redis is not native to Windows, Microsoft has provided a way to use Redis in Windows.