Bird
Raised Fist0
Redisquery~5 mins

Object storage with hashes in Redis - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Redis hash?
A Redis hash is a data structure that stores a mapping between string fields and string values, similar to a dictionary or object. It is useful for storing objects with multiple attributes.
Click to reveal answer
beginner
How do you set a field in a Redis hash?
Use the HSET command with the hash key, field name, and value. For example: HSET user:1 name "Alice" sets the 'name' field to 'Alice' in the 'user:1' hash.
Click to reveal answer
beginner
How can you retrieve all fields and values from a Redis hash?
Use the HGETALL command with the hash key. It returns all fields and their values as a list.
Click to reveal answer
intermediate
Why use hashes for object storage in Redis instead of strings?
Hashes allow you to store multiple related fields under one key efficiently. You can update or retrieve individual fields without rewriting the entire object, saving memory and bandwidth.
Click to reveal answer
intermediate
What happens if you HSET a field that already exists in a Redis hash?
The existing field's value is overwritten with the new value. HSET returns 0 if the field was updated, and 1 if a new field was created.
Click to reveal answer
Which Redis command sets a field in a hash?
AHSET
BSET
CGET
DLPUSH
What does HGETALL return?
AOnly the values of a hash
BOnly the keys of a hash
CAll fields and values in a hash
DThe number of fields in a hash
If you want to update just one attribute of an object stored in Redis, which data structure is best?
AString
BHash
CList
DSet
What does HSET return when updating an existing field?
A0
B1
C-1
DError
Which of these is NOT a benefit of using Redis hashes for object storage?
AReduced bandwidth for partial updates
BAbility to update individual fields
CEfficient memory usage
DAutomatic data encryption
Explain how Redis hashes help in storing objects with multiple attributes.
Think about how you store a person's details like name, age, and email in one place.
You got /4 concepts.
    Describe the difference between using a Redis string and a Redis hash for storing user profile data.
    Consider updating just one piece of information like the email.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does a Redis hash store?
      easy
      A. A set of unique keys without duplicates
      B. Only a single string value per key
      C. A list of keys without values
      D. Multiple fields and their values under one key

      Solution

      1. Step 1: Understand Redis hash structure

        Redis hashes store multiple field-value pairs grouped under a single key.
      2. Step 2: Compare options with hash definition

        Only Multiple fields and their values under one key correctly describes storing multiple fields and values under one key.
      3. Final Answer:

        Multiple fields and their values under one key -> Option D
      4. Quick Check:

        Hashes = multiple fields + values [OK]
      Hint: Hashes group fields and values under one key [OK]
      Common Mistakes:
      • Thinking hashes store only one value
      • Confusing hashes with lists or sets
      • Assuming keys are stored without values
      2. Which Redis command correctly adds a field 'name' with value 'Alice' to a hash key 'user:1'?
      easy
      A. HGET user:1 name Alice
      B. HSET user:1 name Alice
      C. SET user:1 name Alice
      D. HMGET user:1 name Alice

      Solution

      1. Step 1: Identify command to add/update hash field

        HSET is the Redis command to set a field in a hash.
      2. Step 2: Check command syntax

        HSET key field value is correct; so HSET user:1 name Alice is valid.
      3. Final Answer:

        HSET user:1 name Alice -> Option B
      4. Quick Check:

        HSET adds/updates hash fields [OK]
      Hint: Use HSET to add or update hash fields [OK]
      Common Mistakes:
      • Using HGET instead of HSET to add data
      • Using SET which is for strings, not hashes
      • Confusing HMGET (retrieves multiple fields) with HSET
      3. Given the following Redis commands executed in order:
      HSET user:2 age 30
      HSET user:2 name Bob
      HGETALL user:2
      What is the output of HGETALL user:2?
      medium
      A. ["age", 30, "name", "Bob"]
      B. ["user:2", "age", "30", "name", "Bob"]
      C. ["age", "30", "name", "Bob"]
      D. ["name", "Bob"]

      Solution

      1. Step 1: Understand HSET commands

        HSET adds fields 'age' with '30' and 'name' with 'Bob' to hash 'user:2'.
      2. Step 2: Understand HGETALL output format

        HGETALL returns an array of field-value pairs as strings in order added.
      3. Final Answer:

        ["age", "30", "name", "Bob"] -> Option C
      4. Quick Check:

        HGETALL returns all fields and values as string pairs [OK]
      Hint: HGETALL returns flat list of field-value strings [OK]
      Common Mistakes:
      • Expecting key name in output
      • Mixing data types (number vs string)
      • Only getting one field instead of all
      4. You run the command HGET user:3 email but get a null response. What could be the reason?
      medium
      A. The field 'email' does not exist in the hash 'user:3'
      B. The key 'user:3' is a string, not a hash
      C. The Redis server is down
      D. The command syntax is incorrect

      Solution

      1. Step 1: Understand HGET behavior

        HGET returns null if the field does not exist in the hash.
      2. Step 2: Check other options

        Key being a string would cause an error, not null; server down or syntax error would cause different errors.
      3. Final Answer:

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

        Missing field in hash returns null [OK]
      Hint: Null means field missing, not syntax or server error [OK]
      Common Mistakes:
      • Assuming null means server or syntax error
      • Confusing key type errors with missing field
      • Expecting error instead of null for missing field
      5. You want to store user profiles with fields 'name', 'age', and 'email' in Redis hashes. Which approach is best to retrieve all user data efficiently?
      hard
      A. Store each user as a separate hash with key 'user:<id>' and use HGETALL to get all fields
      B. Store all users in one hash with fields like 'user1_name', 'user1_age', 'user2_name', etc.
      C. Store each field as a separate key like 'name:<id>', 'age:<id>', 'email:<id>'
      D. Store user data as JSON strings in simple keys

      Solution

      1. Step 1: Analyze storage options

        Storing each user as a separate hash groups related fields logically and allows efficient access.
      2. Step 2: Evaluate retrieval efficiency

        Using HGETALL on 'user:<id>' fetches all fields at once, simpler and faster than scattered keys or complex parsing.
      3. Final Answer:

        Store each user as a separate hash with key 'user:<id>' and use HGETALL to get all fields -> Option A
      4. Quick Check:

        Separate hashes per user = organized and efficient [OK]
      Hint: Use one hash per user for grouped fields and easy retrieval [OK]
      Common Mistakes:
      • Mixing all users in one hash causing complex keys
      • Using separate keys for each field complicates retrieval
      • Storing JSON loses Redis hash benefits
      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