Bird
Raised Fist0
Redisquery~5 mins

HSET and HGET for fields in Redis

Choose your learning style10 modes available
Introduction
HSET and HGET let you store and get small pieces of information inside a bigger group, like putting notes in labeled folders.
You want to save user details like name and age under one user ID.
You need to update or read a specific setting in a configuration without changing others.
You want to keep track of scores for different players in a game.
You want to store product details like price and stock count under one product ID.
Syntax
Redis
HSET key field value
HGET key field
HSET adds or updates a field with a value inside a key that holds many fields.
HGET retrieves the value of a specific field inside the key.
Examples
Stores the name 'Alice' in the 'name' field under the key 'user:1'.
Redis
HSET user:1 name "Alice"
Gets the value stored in the 'name' field under 'user:1', which is 'Alice'.
Redis
HGET user:1 name
Sets the price field to 29.99 for the product with key 'product:100'.
Redis
HSET product:100 price 29.99
Retrieves the price of the product 'product:100'.
Redis
HGET product:100 price
Sample Program
This example stores age and city for user 42, then retrieves both values.
Redis
HSET user:42 age 30
HSET user:42 city "New York"
HGET user:42 age
HGET user:42 city
OutputSuccess
Important Notes
If the field does not exist, HGET returns nil (no value).
HSET creates the key if it does not exist already.
You can update a field by calling HSET again with the same field name.
Summary
HSET stores or updates a field inside a key.
HGET retrieves the value of a specific field.
They help organize related data under one key like a mini-database.

Practice

(1/5)
1. What does the Redis command HSET do?
easy
A. Stores or updates a field and its value inside a hash key
B. Retrieves the value of a field from a hash key
C. Deletes a field from a hash key
D. Lists all keys in the database

Solution

  1. Step 1: Understand the purpose of HSET

    The HSET command is used to store or update a field-value pair inside a Redis hash key, organizing related data together.
  2. Step 2: Differentiate from other commands

    HGET retrieves values, HDEL deletes fields, and KEYS lists keys, so they do not match the description of HSET.
  3. Final Answer:

    Stores or updates a field and its value inside a hash key -> Option A
  4. Quick Check:

    HSET stores/updates field = A [OK]
Hint: HSET adds or changes a field inside a hash key [OK]
Common Mistakes:
  • Confusing HSET with HGET
  • Thinking HSET deletes fields
  • Mixing HSET with key listing commands
2. Which of the following is the correct syntax to set field name to John in hash key user:1 using Redis?
easy
A. HSET user:1 name John
B. HGET user:1 name John
C. SET user:1 name John
D. HSET name user:1 John

Solution

  1. Step 1: Recall HSET syntax

    The correct syntax is HSET key field value. Here, key is user:1, field is name, and value is John.
  2. Step 2: Check each option

    HSET user:1 name John matches the syntax exactly. HGET user:1 name John uses HGET which is for retrieval. SET user:1 name John uses SET which is for string keys, not hashes. HSET name user:1 John swaps field and key, which is incorrect.
  3. Final Answer:

    HSET user:1 name John -> Option A
  4. Quick Check:

    HSET key field value = C [OK]
Hint: Remember: HSET key field value order [OK]
Common Mistakes:
  • Using HGET instead of HSET to set values
  • Swapping field and key positions
  • Using SET for hash fields
3. Given these Redis commands executed in order:
HSET user:2 age 30
HSET user:2 city London
HGET user:2 age
What is the output of the last command?
medium
A. London
B. 30
C. user:2
D. nil

Solution

  1. Step 1: Analyze the HSET commands

    The first command sets field age to 30 in user:2. The second sets city to London.
  2. Step 2: Understand HGET command

    HGET user:2 age retrieves the value of field age from user:2, which was set to 30.
  3. Final Answer:

    30 -> Option B
  4. Quick Check:

    HGET user:2 age = 30 [OK]
Hint: HGET returns the value of the requested field [OK]
Common Mistakes:
  • Confusing field names and values
  • Expecting HGET to return the key name
  • Assuming HGET returns all fields
4. You run the command HGET user:3 email but get (nil) as output. What could be the reason?
medium
A. The key user:3 is not a hash but a string
B. The Redis server is down
C. The field email does not exist in the hash user:3
D. The syntax of HGET is incorrect

Solution

  1. Step 1: Understand (nil) output in HGET

    When HGET returns (nil), it means the requested field does not exist in the hash key.
  2. Step 2: Evaluate other options

    If the key was not a hash, Redis would return a type error, not (nil). Server down would cause connection errors, and incorrect syntax would cause errors, not (nil).
  3. Final Answer:

    The field email does not exist in the hash user:3 -> Option C
  4. Quick Check:

    HGET nil means field missing = B [OK]
Hint: Nil means field missing, not syntax or server error [OK]
Common Mistakes:
  • Assuming (nil) means server or syntax error
  • Confusing missing field with missing key
  • Ignoring data type errors
5. You want to store user profile data in Redis using a hash key profile:100. You run:
HSET profile:100 name Alice
HSET profile:100 age 0
HGET profile:100 age
What will the last command return and why?
hard
A. Empty string, because age is unset
B. nil, because zero is treated as a missing value
C. Error, because age cannot be zero
D. 0, because Redis stores numeric zero as a valid string value

Solution

  1. Step 1: Understand storing zero in Redis hash

    Redis stores all hash field values as strings. The value 0 is stored as the string "0", which is a valid value.
  2. Step 2: Check HGET behavior for zero value

    HGET returns the exact stored string. Since age was set to 0, it returns "0", not nil or empty.
  3. Final Answer:

    0, because Redis stores numeric zero as a valid string value -> Option D
  4. Quick Check:

    HGET returns stored string '0' = D [OK]
Hint: Zero is stored as string '0', not nil or empty [OK]
Common Mistakes:
  • Thinking zero is treated as missing or false
  • Expecting errors for numeric zero
  • Confusing empty string with zero
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard