Bird
Raised Fist0
Redisquery~20 mins

HSET and HGET for fields in Redis - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Redis Hash Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
1:30remaining
What is the output of this Redis command sequence?
Consider the following Redis commands executed in order:

HSET user:1 name "Alice" age 30
HGET user:1 name

What will be the output of the HGET command?
Redis
HSET user:1 name "Alice" age 30
HGET user:1 name
AAlice
Bnil
C30
DError: wrong type
Attempts:
2 left
💡 Hint
HSET stores fields and values in a hash. HGET retrieves the value of a given field.
❓ query_result
intermediate
1:30remaining
What happens if you HGET a non-existing field?
Given the hash key user:2 with fields:
HSET user:2 name "Bob"

What is the result of:
HGET user:2 age?
Redis
HSET user:2 name "Bob"
HGET user:2 age
Anil
B"" (empty string)
C0
DError: field not found
Attempts:
2 left
💡 Hint
HGET returns nil if the field does not exist in the hash.
📝 Syntax
advanced
1:30remaining
Which command correctly sets multiple fields in a hash?
You want to set the fields 'name' to 'Carol' and 'age' to 25 in the hash 'user:3'. Which command is correct?
AHSET user:3 (name, Carol, age, 25)
BHSET user:3 name Carol age 25
CHSET user:3 [name, Carol, age, 25]
DHSET user:3 {name: Carol, age: 25}
Attempts:
2 left
💡 Hint
HSET takes the key followed by field and value pairs as separate arguments.
❓ optimization
advanced
2:00remaining
Which approach is more efficient to update multiple fields in a Redis hash?
You need to update 5 fields in a Redis hash. Which is the best approach?
AUse HGET to get all fields, modify locally, then HSET all fields again
BUse 5 separate HSET commands, one per field
CUse one HSET command with all 5 field-value pairs at once
DUse multiple HGET commands, one per field, then HSET for each
Attempts:
2 left
💡 Hint
Minimizing the number of commands sent to Redis improves performance.
🧠 Conceptual
expert
2:00remaining
What is the result of this Redis command sequence?
Given the commands:
HSET user:4 name "Dave" age 40
HSET user:4 age 41
HGET user:4 age

What is the output of the last command?
Redis
HSET user:4 name "Dave" age 40
HSET user:4 age 41
HGET user:4 age
A"40"
BError: field not found
Cnil
D"41"
Attempts:
2 left
💡 Hint
HSET overwrites existing fields with new values.

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