Bird
Raised Fist0
Redisquery~5 mins

Hash vs string for objects in Redis - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is a Redis string?
A Redis string is a simple key-value pair where the value is a sequence of bytes or text. It can store any data like text, numbers, or serialized objects as a single value.
Click to reveal answer
beginner
What is a Redis hash?
A Redis hash is a data structure that stores a map of fields and values under a single key. It is like a small dictionary or object inside Redis, allowing you to store multiple related values together.
Click to reveal answer
intermediate
When should you use a Redis hash instead of a string for storing objects?
Use a Redis hash when you want to store multiple fields of an object separately and access or update them individually without rewriting the whole object.
Click to reveal answer
intermediate
What is a downside of storing objects as Redis strings?
When storing objects as strings, you must serialize and deserialize the entire object to update any part, which can be inefficient for frequent small updates.
Click to reveal answer
advanced
How does Redis handle memory for hashes compared to strings?
Redis hashes are memory efficient for storing many small fields because they use a special encoding for small hashes, while strings store the whole object as one chunk.
Click to reveal answer
Which Redis data type allows storing multiple fields under one key?
AHash
BString
CList
DSet
What is a main advantage of using a Redis hash over a string for objects?
AHashes cannot store text data
BHashes use more memory than strings
CYou can update individual fields without rewriting the whole object
DStrings allow multiple fields under one key
If you store an object as a Redis string, what must you do to update one field?
AUpdate the field directly
BUse a list command
CUse a hash command
DSerialize and rewrite the entire string
Which Redis data type is more memory efficient for many small fields?
AHash
BList
CString
DSet
What is a Redis string best suited for?
AStoring multiple fields separately
BStoring a single value or serialized object
CStoring unordered unique elements
DStoring ordered lists
Explain the differences between Redis hashes and strings for storing objects.
Think about how you would update or access parts of an object.
You got /5 concepts.
    When would you choose a Redis hash over a string for your data?
    Consider the frequency and granularity of updates.
    You got /4 concepts.

      Practice

      (1/5)
      1. In Redis, when should you prefer using a hash over a string to store data?
      easy
      A. When you want to store multiple related fields under one key, like an object.
      B. When you only need to store a single simple value per key.
      C. When you want to store large binary data efficiently.
      D. When you want to store data that changes very rarely.

      Solution

      1. Step 1: Understand Redis data types

        Strings store single values per key, while hashes can store multiple fields under one key.
      2. Step 2: Match use case to data type

        If you want to store an object with multiple fields (like name, age, email), hashes are better suited.
      3. Final Answer:

        When you want to store multiple related fields under one key, like an object. -> Option A
      4. Quick Check:

        Hash = multiple fields per key [OK]
      Hint: Use hashes for objects with many fields, strings for single values [OK]
      Common Mistakes:
      • Thinking strings can store multiple fields easily
      • Using hashes for simple single values
      • Confusing hashes with lists or sets
      2. Which of the following Redis commands correctly sets a field age to 30 in a hash named user:1?
      easy
      A. SET user:1 age 30
      B. HSET user:1 age 30
      C. HMSET user:1 age: 30
      D. SETFIELD user:1 age 30

      Solution

      1. Step 1: Identify command for setting a single field in a hash

        The HSET command sets a field in a hash key.
      2. Step 2: Check other options

        SET is for strings, HMSET is deprecated but similar to HSET, SETFIELD is invalid.
      3. Final Answer:

        HSET user:1 age 30 -> Option B
      4. Quick Check:

        HSET sets hash fields [OK]
      Hint: Use HSET to set one field in a hash [OK]
      Common Mistakes:
      • Using SET for hash fields
      • Using deprecated HMSET instead of HSET
      • Inventing commands like SETFIELD
      3. Given the following Redis commands executed in order:
      HSET user:2 name "Alice" age 25
      HSET user:2 city "Paris"
      GET user:2

      What will be the output of the GET user:2 command?
      medium
      A. null (no value)
      B. "Alice"
      C. A list of all fields and values in user:2.
      D. An error because user:2 is a hash, not a string.

      Solution

      1. Step 1: Understand data types and commands

        HSET creates a hash key user:2. GET works only on string keys.
      2. Step 2: Predict command behavior

        Using GET on a hash key causes a type error in Redis.
      3. Final Answer:

        An error because user:2 is a hash, not a string. -> Option D
      4. Quick Check:

        GET on hash key = error [OK]
      Hint: GET only works on strings, not hashes [OK]
      Common Mistakes:
      • Expecting GET to return hash fields
      • Confusing GET with HGETALL
      • Assuming null means no error
      4. You have this Redis command sequence:
      HSET user:3 name "Bob" age 40
      SET user:3 "simple string"

      What problem will occur and how to fix it?
      medium
      A. Error because user:3 key type conflicts; delete key before SET.
      B. No problem; Redis allows both hash and string on same key.
      C. The SET command will overwrite the hash silently.
      D. The HSET command will fail because key exists as string.

      Solution

      1. Step 1: Understand Redis key type rules

        A key can only hold one data type at a time. Setting a string on a key that is a hash causes an error.
      2. Step 2: Identify fix

        To set a string on the same key, delete the existing hash key first using DEL.
      3. Final Answer:

        Error because user:3 key type conflicts; delete key before SET. -> Option A
      4. Quick Check:

        Key type conflict = error, DEL key first [OK]
      Hint: Delete key before changing type to avoid errors [OK]
      Common Mistakes:
      • Assuming Redis allows multiple types on one key
      • Expecting SET to overwrite hash without error
      • Not deleting key before changing type
      5. You want to store user profiles with fields name, age, and email in Redis. You also want to efficiently update individual fields without rewriting the whole object. Which approach is best and why?
      hard
      A. Store each user as multiple string keys, one per field, like user:1:name, user:1:age.
      B. Store each user as a string with JSON and rewrite entire string on update.
      C. Store each user as a hash with fields for name, age, and email for easy updates.
      D. Store all users in one big hash with user IDs as fields and JSON strings as values.

      Solution

      1. Step 1: Consider update efficiency

        Updating individual fields is easiest with hashes because you can update one field without rewriting others.
      2. Step 2: Compare options

        Strings with JSON require rewriting whole string. Multiple string keys increase complexity. One big hash mixes users and complicates access.
      3. Final Answer:

        Store each user as a hash with fields for name, age, and email for easy updates. -> Option C
      4. Quick Check:

        Hashes = efficient field updates [OK]
      Hint: Use hashes for objects needing partial field updates [OK]
      Common Mistakes:
      • Using strings with JSON and rewriting whole data
      • Splitting fields into many string keys unnecessarily
      • Storing all users in one hash causing complexity
      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