Bird
Raised Fist0
Redisquery~10 mins

Memory-efficient data structures in Redis - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a memory-efficient Redis string key with a small value.

Redis
SET mykey [1]
Drag options to blanks, or click blank then click option'
A""
B"this is a very long string value that uses a lot of memory"
C1000000
D"small"
Attempts:
3 left
💡 Hint
Common Mistakes
Using a very long string wastes memory.
Using an empty string might not be useful.
2fill in blank
medium

Complete the code to add multiple small elements efficiently to a Redis list.

Redis
LPUSH mylist [1]
Drag options to blanks, or click blank then click option'
A"element1"
B"a very long element that wastes memory"
C1000000
D""
Attempts:
3 left
💡 Hint
Common Mistakes
Adding large elements increases memory usage.
Adding empty strings might not be useful.
3fill in blank
hard

Fix the error in the command to create a memory-efficient Redis hash with small fields.

Redis
HSET myhash field1 [1]
Drag options to blanks, or click blank then click option'
A"this is a very long value that wastes memory"
B""
C"smallvalue"
D1000000
Attempts:
3 left
💡 Hint
Common Mistakes
Using large values increases memory usage.
Using empty strings might not be useful.
4fill in blank
hard

Fill both blanks to create a memory-efficient Redis sorted set with small scores and members.

Redis
ZADD myzset [1] [2]
Drag options to blanks, or click blank then click option'
A1
B"member1"
C1000000
D"averylongmembername"
Attempts:
3 left
💡 Hint
Common Mistakes
Using large scores or long member names wastes memory.
5fill in blank
hard

Fill all three blanks to create a memory-efficient Redis set with small members and add a new member.

Redis
SADD myset [1] [2] [3]
Drag options to blanks, or click blank then click option'
A"a"
B"b"
C"c"
D"averylongmembername"
Attempts:
3 left
💡 Hint
Common Mistakes
Adding long member names wastes memory.

Practice

(1/5)
1. Which Redis data structure is best suited for storing many small key-value pairs efficiently in memory?
easy
A. List
B. Set
C. Hash
D. String

Solution

  1. Step 1: Understand Redis data structures

    Hashes store multiple field-value pairs under one key, saving memory compared to many separate keys.
  2. Step 2: Compare with other structures

    Lists and sets store collections but are less memory-efficient for many small pairs; strings store single values only.
  3. Final Answer:

    Hash -> Option C
  4. Quick Check:

    Hashes = memory-efficient key-value pairs [OK]
Hint: Use hashes for many small key-value pairs to save memory [OK]
Common Mistakes:
  • Choosing List or Set for key-value pairs
  • Thinking String can store multiple pairs
  • Ignoring memory efficiency of Hashes
2. Which of the following is the correct Redis command to add a field-value pair to a hash named user:1?
easy
A. HSET user:1 name "Alice"
B. SADD user:1 name "Alice"
C. LPUSH user:1 name "Alice"
D. SET user:1 name "Alice"

Solution

  1. Step 1: Identify the command for hashes

    HSET adds or updates a field in a hash key in Redis.
  2. Step 2: Check other commands

    SADD is for sets, LPUSH for lists, SET for strings; none add fields to hashes.
  3. Final Answer:

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

    HSET = add field to hash [OK]
Hint: Use HSET to add fields to hashes in Redis [OK]
Common Mistakes:
  • Using SADD or LPUSH for hashes
  • Confusing SET with HSET
  • Incorrect command syntax
3. Given the Redis commands:
HSET user:2 age 30
HSET user:2 city "NYC"
What will HGETALL user:2 return?
medium
A. ["age", "30", "city", "NYC"]
B. ["user:2", "age", "30", "city", "NYC"]
C. ["age", 30, "city", "NYC"]
D. ["age", "30", "city"]

Solution

  1. Step 1: Understand HSET commands

    Two fields, 'age' and 'city', are set with values '30' and 'NYC' in hash 'user:2'.
  2. Step 2: Check HGETALL output format

    HGETALL returns a flat list of field-value pairs as strings.
  3. Final Answer:

    ["age", "30", "city", "NYC"] -> Option A
  4. Quick Check:

    HGETALL returns field-value pairs list [OK]
Hint: HGETALL returns flat list of fields and values [OK]
Common Mistakes:
  • Expecting key name in output
  • Mixing data types (string vs integer)
  • Missing value for a field
4. You run the command HSET user:3 name "Bob" but get an error. Which is the most likely cause?
medium
A. Redis does not support hashes with string fields
B. The key user:3 already holds a string value
C. HSET requires a numeric field value
D. The field name is reserved and cannot be used

Solution

  1. Step 1: Understand Redis type errors

    If the key 'user:3' holds a string, trying to use HSET (hash command) causes a type error.
  2. Step 2: Check other options

    Field names are not reserved, HSET accepts strings, and Redis supports string fields in hashes.
  3. Final Answer:

    The key user:3 already holds a string value -> Option B
  4. Quick Check:

    Type mismatch causes HSET error [OK]
Hint: Check key type before using hash commands [OK]
Common Mistakes:
  • Assuming field names are restricted
  • Thinking HSET needs numeric values
  • Ignoring Redis data type rules
5. You want to store user preferences with many optional fields but minimize memory. Which Redis approach is best?
hard
A. Use a set with all field names as members
B. Use a list with all possible fields and empty strings for missing
C. Use separate string keys for each field
D. Use a hash with only fields that have values

Solution

  1. Step 1: Consider memory efficiency

    Hashes store only existing fields, saving memory by omitting empty or missing fields.
  2. Step 2: Evaluate other options

    Lists with empty strings waste memory; sets store unique members but not key-value pairs; separate keys increase overhead.
  3. Final Answer:

    Use a hash with only fields that have values -> Option D
  4. Quick Check:

    Hashes save memory by storing only present fields [OK]
Hint: Store only present fields in hashes to save memory [OK]
Common Mistakes:
  • Using lists with empty placeholders
  • Using sets for key-value data
  • Creating many separate keys
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