Advertisement

In the previous blog on Redis, we learned the basic commands in Redis like get, set, del, etc. This time we will learn Redis Hash Commands with example.

What are Hashes?

Hashes are maps between the string field and the string values. You can also relate it as an object in programming.

Redis Hash
Redis Hash

In Redis HASHes can store upto 4 billion field-value pairs.

Set Multiple Field Value in Redis Hash

HMSET in Redis is used to set multiple field value pairs.

hmset key field value [field value ...]

$ 127.0.0.1:6379> hmset student:1 name "Divyanshu Shekhar" rollNo   17 class 10
  OK

Set Field in Hash

Redis HSET is used to set a Field in a pre-existing Redis Hash.

HSET Key Field Value

$ 127.0.0.1:6379> hset student:1 subject "CS"
  (integer) 1
$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"
  3) "class"
  4) "10"
  5) "subject"
  6) "CS"

Set Field if it doesn’t exist – Redis HSETNX

Redis HSETNX is used to first check if the field exists in the Hash. If the key doesn’t exist then it adds the field in the Hash else drops it.

HSETNX Key Field Value

$ 127.0.0.1:6379> hsetnx student:1 marks 99
  (integer) 1
$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"
  3) "marks"
  4) "99"

Get a Single Field Value from Hash

Redis HGET command is used to get a single field’s value from a Redis Hash.

HGET key field

$ 127.0.0.1:6379> hget student:1 name
  "Divyanshu Shekhar"
$ 127.0.0.1:6379> hget student:1 class
  "10"

Get all Fields & Values from a Hash

Redis HGETALL command is used to display all the field and values of a Hash.

HGETALL key

$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"
  3) "rollNo"
  4) "17"
  5) "class"
  6) "10"

Get all the Fields in Redis Hash

Just like key * was used to get all the keys, we can get all the Fields using the Redis HKEYS Command.

HKEYS Key

$ 127.0.0.1:6379> hkeys student:1
  1) "name"
  2) "marks"

Get Specific Field Values in Redis Hash

When the Hash gets big it’s difficult to view all the fields and thus we need some kind of command that filters the Fields.

Redis HMGET Command display only the Fields which you want to see.

HMGET Key Field [Field ...]

$ 127.0.0.1:6379> hmget student:1 name marks
  1) "Divyanshu Shekhar"
  2) "109"

Get all the Values in a Redis Hash

Redis HVALS Command is used to get all the Values of a Redis Hash.

$ 127.0.0.1:6379> hvals student:1
  1) "Divyanshu Shekhar"
  2) "99"

Check if Field Exists in Redis Hash

HEXISTS in Redis, lets us know whether a Key exists in a Redis Hash or not.

HEXIST Key Field

$ 127.0.0.1:6379> hexists student:1 name
  (integer) 1
$ 127.0.0.1:6379> hexists student:1 firstname
  (integer) 0

Redis HEXISTS returns 1 if the field exists in the HASH else it returns 0.

Total Number of Fields in Redis Hash

HLEN Command in Redis returns the total number of fields in the Redis Hash.

$ 127.0.0.1:6379> hlen student:1
  (integer) 4

Delete a Redis Hash Field

Redis HDEL Command lets us delete a Field from a HASH.

HDEL Key Field [Field ...]

$ 127.0.0.1:6379> hdel student:1 rollNo
  (integer) 1
$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"
  3) "class"
  4) "10"

Delete Multiple Fields in Redis Hash

Redis HDEL take also delete more than one Field in a Redis Hash.

$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"
  3) "class"
  4) "10"
  5) "subject"
  6) "CS"
$ 127.0.0.1:6379> hdel student:1 subject class
  (integer) 2
$ 127.0.0.1:6379> hgetall student:1
  1) "name"
  2) "Divyanshu Shekhar"

Redis Hash Increment Command

Redis HINCRBY Command performs increment on a field value in the HASH.

$ 127.0.0.1:6379> hincrby student:1 marks 10
  (integer) 109

HDECRBY Command doesn’t exist in Redis. Use the Negative value in HINCRBY to perform subtraction.

Learn more about Redis Hash Commands from Redis official Documentation.

About Author
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Scroll to Top