Step by Step learning Redis
This is an introductory blog on Redis where we discuss the features that Redis provides, install it and then play with the redis cli.
7 December, 2022
8
8
0
Contributors
In this blog, we will take a look at what Redis is, how it works, and how to use it. Then we will also play with the Redis CLI and learn some basic Redis Commands. So let's start.
Introduction
Redis stands for REmote DIctionary Server.
In simple words, Redis is an in-memory data structure store and is mainly popular for its low-level latency. The fact that it is in-memory means that the time taken to access the data is very low compared to in-disk databases. This can be useful for applications that require fast data access and manipulation, such as real-time bidding systems or gaming servers.
Redis was created by Salvatore Sanfilippo in 2009, also known as "antirez," in order to provide a fast, in-memory database that could be used for a variety of purposes. It has since become widely popular for its performance, reliability, and flexibility.
Salvatore Sanfilippo
It is because of its low latency and high performance that Redis is used by a lot of major companies, such as:
•
Twitter
•
Snapchat
•
GitHub
•
Pinterest
•
Craigslist
Companies that use Redis
How does Redis work?
Redis is a key-value store, which means that it stores data in the form of key-value pairs. The key is used to access the value, and the value can be of any type, such as a
string
, a list
, a set
, a sorted set
, a hash
. These data types are supported natively by Redis and provide a rich set of commands for manipulating and querying the data.In addition to these data types, Redis can be extended with Redis Modules. Some of these modules are provided by Redis Labs, and some are provided by the community. Some of the modules provided by Redis Labs are:
•
RediSearch: This module provides full-text search capabilities for Redis, allowing users to index, search, and query text data stored in Redis similar to Elasticsearch.
•
RedisGraph: This module provides graph database capabilities for Redis, allowing users to store, query, and manipulate graph data structures similar to Neo4j.
•
RedisTimeSeries: This module provides time series data management capabilities for Redis, allowing users to store, query, and visualize time series data similar to InfluxDB.
•
RedisJSON: This module provides native support for JSON data in Redis, allowing users to store, manipulate, and query JSON data using Redis commands similar to MongoDB.
•
RedisBloom: This module provides probabilistic data structures for Redis, allowing users to store and query data using bloom filters, count-min sketches, and other data structures that can approximate data sets.
These are just a few examples of the many Redis Modules that are available. There are many more modules that provide a wide range of additional functionality for Redis. For a complete list of available modules, you can visit the Redis Modules registry at the following URL: redis.io/resources/modules.
This makes Redis a multi-model database.
Installing Redis
Redis can be installed on Linux, Windows, and macOS using the following steps:
Linux
Begin by updating your local package index with the latest package information:
Windows
Redis is not officially supported on Windows. However, you can install Redis on Windows for development by following the instructions mentioned in the website.
macOS
Install the Redis server and command-line tools using Homebrew:
Once the installation is complete, you can start the Redis server using the following command:
To enable Redis to start automatically when the system boots, you can use the following command:
Once, you have redis installed, you can start it by running the following command:
Redis Server started
Using Redis
Redis provides a command-line interface (CLI) that can be used to interact with the Redis server. You can start the Redis CLI using the following command:
Basic Redis Commands
You can set a key-value pair in Redis using the
SET
command. For example, to set the key name
to the value John
, you can use the following command:It will return
OK
if the operation is successful.Now, to get the value of the key
name
, you can use the GET
command:It will return
John
.You can also delete a key using the
DEL
command:It will return
1
if the operation is successful. Now, if you try to get the value of the key name
, it will return (nil)
.To get a list of all the keys in the database, you can use the
KEYS
command:Here is how it looks like:
To get the number of keys in the database, you can use the
DBSIZE
command:It will return
3
in this case.Setting Expiration Time
The expiration time of a key refers to the amount of time that the key will remain in the database before it is automatically deleted. We can set the expiration time of a key using the
EXPIRE
command. For example, to set the expiration time of the key name
to 10 seconds, you can use the following command:It will return
1
if the operation is successful. Now, if you try to get the value of the key name
, it will return (nil)
after 10 seconds.To find out the remaining time before the key expires, you can use the
TTL
command:It will return
-2
if the key does not exist, -1
if the key does not have an expiration time, or the number of seconds remaining before the key expires.Handling Lists
Redis provides a data structure called a list that can be used to store a collection of strings. You can create a list using the
RPUSH
command. For example, to create a list named colors
and add the values red
, green
, and blue
to it, you can use the following command:Here
RPUSH
refers to the right push operation. It will return 3
(the number of elements pushed) if the operation is successful.Note: Like RPUSH
there are other commands like LPUSH
(left push), LPOP
(left pop), and RPOP
(right pop) that can be used to push and pop elements from the list.
To get all the elements in the list, you cannot use the
GET
. This is because you are dealing with lists, so you have to use the LRANGE
command:Here 0 refers to the starting index and -1 refers to the ending index. It will return all the elements in the list.
Handling Sets
Sets are similar to lists, but they do not allow duplicate elements. You can create a set using the
SADD
command. For example, to create a set named employee_ids and add the values 1001, 1002, and 1003 to it, you can use the following command:To get all the elements in the set, you can use the
SMEMBERS
command:If you try to add an element that already exists in the set, it will be ignored. For example, if you try to add the value 1001 to the set employee_ids, it will be ignored.
In the case of sets, to check if an element exists in the set, you can use the
SISMEMBER
command:To remove an element from the set, you can use the
SREM
command:Handling Hashes
Hashes are also key-value pairs. So, using hashes in Redis is like using key-value pairs inside key-value pairs.
To create a hash, you can use the
HSET
command. For example, to create a hash named employee
and add the values id
, fname
, and lname
to it, you can use the following command:And to get the value of a field in the hash, you can use the
HGET
command:To get all the fields in the hash, you can use the
HKEYS
command:To get all the values in the hash, you can use the
HVALS
command:To get everything in the hash, you can use the
HGETALL
command:To delete a field from the hash, you can use the
HDEL
command:To check if a field exists in the hash, you can use the
HEXISTS
command:You can see initially the field id exists in the hash employee so the output was 1. After deleting it, it no longer exists and hence the value is 0.
Another very useful command is
flushall
. It will delete all the keys in the database. So, if you want to delete all the keys in the database, you can use the following command:Conclusion
•
In conclusion, Redis is a popular and powerful data management tool that is widely used by organizations for a variety of purposes.
•
Its key features and benefits include high performance, flexibility, and support for a wide range of data structures.
•
Once you have installed it, you can use a variety of basic Redis commands, such as
SET
, GET
, DEL
, and KEYS
, to manage and manipulate data in Redis. By understanding and using these commands effectively, you can unlock the full potential of Redis to support your specific use cases.I would encourage you to experiment with Redis and explore its capabilities to gain a deeper understanding of how it can help your organization.
If you like this article, please share it with your friends and colleagues who are interested in Redis. If you have any questions or comments, please feel free to leave them below. I will be happy to answer them. For more articles on Redis, please follow me.
My Website: arnabsen.dev
tutorials
tutorial
handsontutorial
develevate