Bird
Raised Fist0
Redisquery~5 mins

ZADD for adding scored members in Redis - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: ZADD for adding scored members
O(log n)
Understanding Time Complexity

When we add members with scores to a sorted set in Redis, it is important to know how the time needed changes as we add more members.

We want to understand how the work grows when we add many scored members using ZADD.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


ZADD myset 10 member1
ZADD myset 20 member2
ZADD myset 15 member3
ZADD myset 25 member4
ZADD myset 5 member5
    

This code adds five members with scores to a sorted set named 'myset'. Each member is placed according to its score.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Inserting each member into the sorted set in the correct order.
  • How many times: Once per member added, so the number of insertions equals the number of members.
How Execution Grows With Input

Each time we add a member, Redis must find the right place in the sorted set to insert it, which takes more time as the set grows.

Input Size (n)Approx. Operations
10About 30 operations
100About 700 operations
1000About 10,000 operations

Pattern observation: The work grows a bit faster than the number of members because finding the right place takes longer as the set grows.

Final Time Complexity

Time Complexity: O(log n)

This means adding each member takes a little more time as the set gets bigger, but it grows slowly and efficiently.

Common Mistake

[X] Wrong: "Adding a member with ZADD always takes the same time no matter how big the set is."

[OK] Correct: Actually, Redis must find the correct position for the new member, which takes more steps as the set grows, so time increases slowly with size.

Interview Connect

Understanding how Redis handles sorted sets helps you explain efficient data storage and retrieval, a useful skill in many real-world projects.

Self-Check

"What if we added multiple members at once using a single ZADD command? How would the time complexity change?"

Practice

(1/5)
1. What does the Redis command ZADD do?
easy
A. Adds members with scores to a sorted set
B. Deletes members from a sorted set
C. Retrieves all members from a sorted set
D. Creates a new key with a string value

Solution

  1. Step 1: Understand the purpose of ZADD

    The ZADD command is used to add members with associated scores to a sorted set in Redis.
  2. Step 2: Compare with other commands

    Deleting members is done by ZREM, retrieving members by ZRANGE, and creating string keys by SET, so these are not correct.
  3. Final Answer:

    Adds members with scores to a sorted set -> Option A
  4. Quick Check:

    ZADD adds scored members [OK]
Hint: ZADD always adds scored members to sorted sets [OK]
Common Mistakes:
  • Confusing ZADD with ZREM or ZRANGE
  • Thinking ZADD creates string keys
  • Assuming ZADD deletes members
2. Which of the following is the correct syntax to add a member 'player1' with score 100 to a sorted set 'game_scores' using ZADD?
easy
A. ZADD game_scores 100 player1
B. ZADD 100 game_scores player1
C. ZADD game_scores player1 100
D. ZADD player1 100 game_scores

Solution

  1. Step 1: Recall ZADD syntax

    The correct syntax is: ZADD key score member. So the key comes first, then the score, then the member.
  2. Step 2: Match the syntax to options

    ZADD game_scores 100 player1 matches this order: ZADD game_scores 100 player1. Others have wrong order.
  3. Final Answer:

    ZADD game_scores 100 player1 -> Option A
  4. Quick Check:

    ZADD key score member order [OK]
Hint: Remember: ZADD key score member [OK]
Common Mistakes:
  • Swapping score and member positions
  • Putting member before key
  • Using wrong argument order
3. What will be the result of the following commands?
ZADD leaderboard 50 Alice 70 Bob 60 Charlie
ZRANGE leaderboard 0 -1 WITHSCORES
medium
A. ["Bob", "70", "Charlie", "60", "Alice", "50"]
B. ["Alice", "50", "Charlie", "60", "Bob", "70"]
C. ["Alice", "50", "Bob", "70", "Charlie", "60"]
D. ["Charlie", "60", "Alice", "50", "Bob", "70"]

Solution

  1. Step 1: Understand ZADD and ZRANGE behavior

    ZADD adds members with scores. ZRANGE with 0 -1 returns all members sorted by score ascending, WITHSCORES returns scores alongside.
  2. Step 2: Sort members by score ascending

    Scores: Alice=50, Charlie=60, Bob=70. Sorted ascending: Alice, Charlie, Bob.
  3. Final Answer:

    ["Alice", "50", "Charlie", "60", "Bob", "70"] -> Option B
  4. Quick Check:

    ZRANGE sorts ascending by score [OK]
Hint: ZRANGE returns members sorted by score ascending [OK]
Common Mistakes:
  • Assuming ZRANGE sorts by insertion order
  • Mixing up ascending and descending order
  • Ignoring WITHSCORES option
4. Identify the error in this Redis command: ZADD myset player1 100
medium
A. ZADD cannot add members with numeric scores
B. The key name 'myset' is invalid
C. The score and member are reversed; score must come before member
D. The command is correct and will work as expected

Solution

  1. Step 1: Check ZADD argument order

    ZADD syntax requires the key first, then the score, then the member. Here, 'player1' is before '100', which is reversed.
  2. Step 2: Validate other options

    Key name 'myset' is valid, numeric scores are allowed, so options B and C are incorrect. The command is not correct, so D is wrong.
  3. Final Answer:

    The score and member are reversed; score must come before member -> Option C
  4. Quick Check:

    ZADD requires score before member [OK]
Hint: Score always comes before member in ZADD [OK]
Common Mistakes:
  • Swapping score and member positions
  • Thinking key name is invalid
  • Believing numeric scores are disallowed
5. You want to add multiple players with their scores to a sorted set 'ranking' in one command. Which command correctly adds 'Anna' with 85, 'Ben' with 90, and 'Cara' with 80?
hard
A. ZADD ranking Anna 85 Ben 90 Cara 80
B. ZADD ranking Cara 80 85 Anna 90 Ben
C. ZADD ranking 85 Anna Cara 80 90 Ben
D. ZADD ranking 85 Anna 90 Ben 80 Cara

Solution

  1. Step 1: Recall ZADD syntax for multiple members

    ZADD syntax allows multiple score-member pairs: ZADD key score1 member1 score2 member2 ...
  2. Step 2: Match pairs correctly

    ZADD ranking 85 Anna 90 Ben 80 Cara lists pairs as 85 Anna, 90 Ben, 80 Cara, matching the players and scores in the order given.
  3. Final Answer:

    ZADD ranking 85 Anna 90 Ben 80 Cara -> Option D
  4. Quick Check:

    ZADD multiple pairs as score member [OK]
Hint: List pairs as score then member repeatedly [OK]
Common Mistakes:
  • Swapping member and score order
  • Mixing up pairs order
  • Using inconsistent score-member pairs
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