Bird
Raised Fist0
Redisquery~20 mins

HMSET and HMGET for bulk 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
2:00remaining
What is the output of this HMGET command?
Given the following Redis commands:

HMSET user:1 name "Alice" age "30" city "Paris"
HMGET user:1 name city

What is the output of the HMGET command?
Redis
HMSET user:1 name "Alice" age "30" city "Paris"
HMGET user:1 name city
A["Alice", null]
B["Alice", "Paris"]
C["name", "city"]
D["30", "Paris"]
Attempts:
2 left
💡 Hint
HMGET returns the values of the specified fields in the order requested.
📝 Syntax
intermediate
1:30remaining
Which HMSET command is syntactically correct?
Choose the correct syntax for setting multiple fields in a Redis hash with HMSET for key 'user:2' with fields 'name' as 'Bob' and 'age' as '25'.
AHMSET user:2 name Bob age 25
BHMSET user:2 {name: Bob, age: 25}
CHMSET user:2 [name Bob age 25]
DHMSET user:2 (name Bob, age 25)
Attempts:
2 left
💡 Hint
HMSET expects key followed by field and value pairs separated by spaces.
❓ optimization
advanced
2:00remaining
Which approach is best to retrieve multiple fields efficiently?
You want to get the values of fields 'name', 'age', 'city', and 'email' from a Redis hash 'user:3'. Which command is the most efficient to retrieve all these fields at once?
AHGETALL user:3
B
HGET user:3 name
HGET user:3 age
HGET user:3 city
HGET user:3 email
CGET user:3
DHMGET user:3 name age city email
Attempts:
2 left
💡 Hint
HMGET retrieves multiple specified fields in one command.
🔧 Debug
advanced
2:00remaining
Why does this HMGET command return null for one field?
Given these commands:

HMSET user:4 name "Eve" age "28"
HMGET user:4 name city

Why does the HMGET command return ["Eve", null]?
Redis
HMSET user:4 name "Eve" age "28"
HMGET user:4 name city
AThe field 'city' does not exist in the hash, so HMGET returns null for it.
BThe HMGET command syntax is incorrect, causing null to be returned.
CRedis hashes cannot store more than two fields, so 'city' is ignored.
DThe HMSET command failed to set any fields, so all values are null.
Attempts:
2 left
💡 Hint
HMGET returns null for fields that do not exist in the hash.
🧠 Conceptual
expert
2:30remaining
What is the main difference between HMSET and HSET in recent Redis versions?
Redis introduced HSET to replace HMSET. What is the key difference between HMSET and HSET when setting multiple fields in a hash?
AHMSET supports setting fields with expiration, HSET does not.
BHMSET can set multiple fields but HSET can only set one field at a time.
CHSET can set multiple fields at once and HMSET is deprecated but both behave similarly.
DHSET requires JSON format for fields, HMSET uses plain key-value pairs.
Attempts:
2 left
💡 Hint
Check Redis documentation about HMSET deprecation and HSET enhancements.

Practice

(1/5)
1. What does the Redis command HMSET do?
easy
A. Retrieves all keys from the database.
B. Deletes a hash key and all its fields.
C. Stores multiple fields and their values in a single hash key at once.
D. Increments a numeric value in a hash field.

Solution

  1. Step 1: Understand HMSET purpose

    The HMSET command is used to save many fields and their values inside one hash key in Redis.
  2. Step 2: Compare with other commands

    Other commands like DEL delete keys, and INCR increments values, so they do not match HMSET's bulk saving role.
  3. Final Answer:

    Stores multiple fields and their values in a single hash key at once. -> Option C
  4. Quick Check:

    HMSET saves many fields at once = B [OK]
Hint: HMSET saves many fields in one hash key at once [OK]
Common Mistakes:
  • Confusing HMSET with commands that delete keys
  • Thinking HMSET retrieves data instead of saving
  • Mixing HMSET with single field commands like HSET
2. Which of the following is the correct syntax to set multiple fields in a hash named user:1 using HMSET?
easy
A. HMSET user:1 ["name", "Alice", "age", 30, "city", "NY"]
B. HMSET user:1 (name, "Alice", age, 30, city, "NY")
C. HMSET user:1 {name: "Alice", age: 30, city: "NY"}
D. HMSET user:1 name "Alice" age 30 city "NY"

Solution

  1. Step 1: Recall HMSET syntax

    HMSET expects the key followed by field and value pairs separated by spaces, without brackets or braces.
  2. Step 2: Check each option

    HMSET user:1 name "Alice" age 30 city "NY" matches the correct syntax: key, field, value, field, value... Options B, C, and D use invalid brackets or JSON-like syntax not accepted by Redis.
  3. Final Answer:

    HMSET user:1 name "Alice" age 30 city "NY" -> Option D
  4. Quick Check:

    HMSET syntax is key + field value pairs space-separated = A [OK]
Hint: HMSET uses space-separated field-value pairs, no brackets [OK]
Common Mistakes:
  • Using brackets or braces in HMSET command
  • Putting fields and values inside parentheses
  • Confusing HMSET with JSON syntax
3. Given the following commands executed in Redis:
HMSET product:100 name "Laptop" price 1200 stock 30
HMGET product:100 name price
What will be the output of the HMGET command?
medium
A. ["Laptop", "1200"]
B. ["Laptop", 1200]
C. ["name", "price"]
D. ["Laptop"]

Solution

  1. Step 1: Understand HMSET stored data

    The HMSET command stores fields 'name' with value "Laptop" and 'price' with value "1200" (as string) in the hash 'product:100'.
  2. Step 2: Understand HMGET output

    HMGET fetches the values of the requested fields in order, returning an array of strings: ["Laptop", "1200"].
  3. Final Answer:

    ["Laptop", "1200"] -> Option A
  4. Quick Check:

    HMGET returns values as strings in array = A [OK]
Hint: HMGET returns values as strings in array order [OK]
Common Mistakes:
  • Expecting numeric types instead of strings
  • Confusing HMGET output with field names
  • Getting only one value instead of array
4. You run the command HMGET user:5 name age but get (nil) for both fields. What is the most likely reason?
medium
A. Redis server is down.
B. The hash key user:5 does not exist or has no such fields.
C. HMGET cannot fetch multiple fields at once.
D. HMGET syntax requires brackets around field names.

Solution

  1. Step 1: Interpret (nil) results

    Getting (nil) means the requested fields or the hash key do not exist in Redis.
  2. Step 2: Check command syntax and server status

    HMGET syntax is correct without brackets, and if the server was down, no response would be received.
  3. Final Answer:

    The hash key user:5 does not exist or has no such fields. -> Option B
  4. Quick Check:

    (nil) means missing key or fields = D [OK]
Hint: (nil) means key or fields missing, not syntax error [OK]
Common Mistakes:
  • Adding brackets around fields in HMGET
  • Assuming HMGET cannot fetch multiple fields
  • Thinking server down causes (nil) responses
5. You want to store user profile data with fields name, email, and age in Redis using HMSET, then retrieve only email and age with HMGET. Which sequence of commands is correct?
hard
A. HMSET user:10 name "Bob" email "bob@example.com" age 25
HMGET user:10 email age
B. HMSET user:10 {name: "Bob", email: "bob@example.com", age: 25}
HMGET user:10 [email, age]
C. HMSET user:10 (name "Bob", email "bob@example.com", age 25)
HMGET user:10 (email age)
D. HMSET user:10 name="Bob" email="bob@example.com" age=25
HMGET user:10 email age

Solution

  1. Step 1: Write correct HMSET command

    HMSET requires key followed by field-value pairs separated by spaces without brackets or equals signs, so HMSET user:10 name "Bob" email "bob@example.com" age 25
    HMGET user:10 email age is correct.
  2. Step 2: Write correct HMGET command

    HMGET takes the key and list of fields separated by spaces, so HMSET user:10 name "Bob" email "bob@example.com" age 25
    HMGET user:10 email age's HMGET is correct.
  3. Final Answer:

    HMSET user:10 name "Bob" email "bob@example.com" age 25
    HMGET user:10 email age
    -> Option A
  4. Quick Check:

    HMSET and HMGET use space-separated fields and values = C [OK]
Hint: Use space-separated fields and values, no brackets or equals [OK]
Common Mistakes:
  • Using JSON or bracket syntax in HMSET
  • Adding parentheses around fields in HMGET
  • Using equals signs in HMSET command
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