Introduction:
Hi team , we have seen during previous posts, how is working Redis , how to browse into data using Redis Insight and how to backup your database.
This time , in this first part ,we will go deeper by checking the different key type ,how to use it and their limitation.
So let’s go!
About Redis
As a reminder,let’s take a look again on the major advantages of using a Redis database:

Keys
- Definition
Redis keys are binary safe, this means that you can use any binary sequence as a key, from a string like “foo” to the content of a JPEG file. The empty string is also a valid key.
Best practice about keys:
- Very long keys are not a good idea. For instance a key of 1024 bytes is a bad idea not only memory-wise, but also because the lookup of the key in the dataset may require several costly key-comparisons. Even when the task at hand is to match the existence of a large value, hashing it (for example with SHA1) is a better idea, especially from the perspective of memory and bandwidth.
- Very short keys are often not a good idea. There is little point in writing “u1000flw” as a key if you can instead write “user:1000:followers“. The latter is more readable and the added space is minor compared to the space used by the key object itself and the value object. While short keys will obviously consume a bit less memory, your job is to find the right balance.
- Try to stick with a schema. For instance “object-type:id” is a good idea, as in “user:1000”. Dots or dashes are often used for multi-word fields, as in “comment:4321:reply.to” or “comment:4321:reply-to”.
- The maximum allowed key size is 512 MB.
Of course I invite you to visit Redis site which is really complete and useful ( also a lot of Redis item definition you will find here are extracted from the Redis official site itself.)
The different Key type
Below you will see all Key Type you can find on Redis ( I used RedisInsight to show you that )
Note that the commands are not case sensitive , in other words a HSET and a hset or HSeT will give the same result 🙂
We will list them and give:
- Their definition
- The basic commands
- A quick example
- The limitation of each command.

Hash Type
Hashes are record types structured as collections of field-value pairs. You can use hashes to represent basic objects and to store groupings of counters, among other things.
Basic commands
HSET
sets the value of one or more fields on a hash.HGET
returns the value at a given field.HMGET
returns the values at one or more given fields.HINCRBY
increments the value at a given field by the integer provideHGETALL
– Displays the entire hash content.HDEL
– Removes an existing key-value pair from a hash.
Example

Limits
Every hash can store up to 4,294,967,295 (2^32 – 1) field-value pairs. In practice, your hashes are limited only by the overall memory on the VMs hosting your Redis deployment.
Lists
Redis allows you to associate an ordered sequence of strings to a key. This linked list of strings lets you perform a set of operations such as:
Basic commands
LPUSH
adds a new element to the head of a list;RPUSH
adds to the tail.LPOP
removes and returns an element from the head of a list;RPOP
does the same but from the tails of a list.LLEN
returns the length of a list.LMOVE
atomically moves elements from one list to another.LTRIM
reduces a list to the specified range of elements.RPUSH
– Pushes the value to the tail end of the list.LRANGE
– Retrieves a range of items.LPOP/
RPOP
– Used to display and remove items from both ends.LINDEX
– Obtain a value from a specific position within the list.

Sets
A Redis set is an unordered collection of unique strings (members). You can use Redis sets to efficiently:
- Track unique items (e.g., track all unique IP addresses accessing a given blog post).
- Represent relations (e.g., the set of all users with a given role).
- Perform common set operations such as intersection, unions, and differences.
Basic commands
SADD
adds a new member to a set.SREM
removes the specified member from the set.SISMEMBER
tests a string for set membership.SINTER
returns the set of members that two or more sets have in common (i.e., the intersection).SCARD
returns the size (a.k.a. cardinality) of a set.SMEMBERS
– Retrieves all items from a set.
Example:

Limits
The max size of a Redis set is 2^32 – 1 (4,294,967,295) members.
Sorted sets
A Redis sorted set is a collection of unique strings (members) ordered by an associated score. When more than one string has the same score, the strings are ordered lexicographically. Some use cases for sorted sets include:
- Leaderboards. For example, you can use sorted sets to easily maintain ordered lists of the highest scores in a massive online game.
- Rate limiters. In particular, you can use a sorted set to build a sliding-window rate limiter to prevent excessive API requests.
Basic commands
ZADD
adds a new member and associated score to a sorted set. If the member already exists, the score is updated.ZRANGE
returns members of a sorted set, sorted within a given range.ZRANK
returns the rank of the provided member, assuming the sorted is in ascending order.ZREVRANK
returns the rank of the provided member, assuming the sorted set is in descending order.ZRANGEBYSCORE
– Fetches items from the sorted set based on the defined score range. Thewithscores
option produces the actual score values.ZREM
– Removes items from a sorted set.
Example
- Let’s use Redinsight to create the sorted set:

- We will create a new user and a score:

- List the score of the players:

Note:
Using ZREVRANK will display the rank of user from the highest score to the lowest , also first rank will start with 0

Strings
Redis strings store sequences of bytes, including text, serialized objects, and binary arrays. As such, strings are the most basic Redis data type. They’re often used for caching, but they support additional functionality that lets you implement counters and perform bitwise operations, too.
Basic Commands
SET
stores a string value.SETNX
stores a string value only if the key doesn’t already exist. Useful for implementing locks.GET
retrieves a string value.MGET
retrieves multiple string values in a single operation

Limits
By default, a single Redis string can be a maximum of 512 MB.
Conclusion
We have seen some of useful Redis command to create keys and play with it , there is some other remaining but we will see that in another post.
For the moment I invite you to share with us , visit the dbi bloggers and also to check my other blogs for Control-M or Jenkins for example :).
Stay tuned for the part 2!