Redis stores key and value pairs in the data structure server. It contains unique keys to each data value.

Key only contains string type. values contain the following data types in Redis.

  • Strings
  • Lists
  • Sets
  • SortedSet
  • Hashes
  • HyperLogLogs
  • Bitmaps(BitStrings)

Redis Strings

Redis strings contain raw strings that contain a sequence of characters. The allowed maximum string size is 512 megabytes in length. It stores any sequence of data and it is binary safe. Following commands used to interact with strings process in Redis

Command Description
SET key value Assign the value to the key
GET key Retrieve the value for the given key
DEL key Deletes the given key and value from a cache

Here is an add, get and delete the keys in Redis interactive shell

127.0.0.1:6379> set name anderw
OK
127.0.0.1:6379> get name
"anderw"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> del name
(integer) 1

Lists in Redis

The list is used to store the sequence of strings as values in insertion order for a given key.

List elements can be inserts head and tail, with linked strings. It is also called LinkedList.

Adding and insertion to the list perform better than retrieving the elements.

Following is a list of operations in the Redis list.

Command Description
LPUSH key value add an element to the left end of a list
RPUSH key value add an element to right end of a list
RANGES key start end Retrieve the list of values with start and index items for a given key,0 is a start and -1 is the end index
LPOP key delete an element from the left end of a list
RPOP key remove an element from the right end of a list
LINDEX key index Retrieves the element from the given key at index position

Let’s see an examples

roles as keys values as admin,sales,hr,support,finance

let’s create a roles of type lists by adding left to the end of the list. Since It is an empty list added admin as one of the elements.

127.0.0.1:6379> lpush roles admin
(integer) 1

use lrange to retrieve a range of items in a list. 0 is starting index, and -1 is the end index of a list.

127.0.0.1:6379> lrange roles 0 -1
1) "admin"

Lets add a few more elements to the left and right end of a list

127.0.0.1:6379> lpush roles sales
(integer) 2
127.0.0.1:6379> lrange roles 0 -1
1) "sales"
2) "admin"


127.0.0.1:6379> rpush roles finance
(integer) 3
127.0.0.1:6379> lrange roles 0 -1
1) "sales"
2) "admin"
3) "finance"
127.0.0.1:6379> rpush roles support
(integer) 4
127.0.0.1:6379> rpush roles hr
(integer) 5
127.0.0.1:6379> rpush roles billing
(integer) 6
127.0.0.1:6379> lrange roles 0 -1
1) "sales"
2) "admin"
3) "finance"
4) "support"
5) "hr"
6) "billing"

Next, get an element from a list using an index with lindex

127.0.0.1:6379> lindex roles 0
"sales"
127.0.0.1:6379> lindex roles 1
"admin"

you can remove elements from the list using rpop or lpop

127.0.0.1:6379> rpop roles
"billing"
127.0.0.1:6379> lrange roles 0 -1

1) "sales"
2) "admin"
3) "finance"
4) "support"
5) "hr"