Removing Members from a Redis Sorted Set Using ZREM
📖 Scenario: You are managing a leaderboard for a game using Redis sorted sets. Players earn points, and their scores are stored in a sorted set. Sometimes, players leave the game or are disqualified, so you need to remove their names from the leaderboard.
🎯 Goal: Build a Redis command sequence that creates a sorted set with player scores, sets up a variable for the player to remove, removes that player from the sorted set using ZREM, and confirms the removal.
📋 What You'll Learn
Create a sorted set called leaderboard with these exact members and scores: "Alice" 50, "Bob" 75, "Charlie" 62
Create a variable called player_to_remove and set it to "Bob"
Use the ZREM command to remove the member stored in player_to_remove from the leaderboard sorted set
Add a command to check the members of leaderboard after removal using ZREVRANGE to list all members with their scores
💡 Why This Matters
🌍 Real World
Leaderboards, ranking systems, and real-time scoring in games or applications often use Redis sorted sets to store and manage scores efficiently.
💼 Career
Knowing how to manipulate Redis sorted sets with commands like ZADD and ZREM is essential for backend developers working with caching, real-time data, and leaderboard features.
Progress0 / 4 steps
1
Create the sorted set leaderboard with players and scores
Use the ZADD command to create a sorted set called leaderboard with these exact members and scores: "Alice" 50, "Bob" 75, and "Charlie" 62.
Redis
Hint
Use ZADD followed by the sorted set name, then pairs of score and member.
2
Set the variable player_to_remove to "Bob"
Create a variable called player_to_remove and set it to the string "Bob".
Redis
Hint
Assign the string "Bob" to the variable player_to_remove.
3
Remove the player stored in player_to_remove from leaderboard using ZREM
Use the ZREM command to remove the member stored in the variable player_to_remove from the sorted set leaderboard.
Redis
Hint
Use ZREM leaderboard $player_to_remove to remove the player.
4
Check the remaining members in leaderboard with their scores
Add a command to list all members and their scores in leaderboard after removal using ZREVRANGE leaderboard 0 -1 WITHSCORES.
Redis
Hint
Use ZREVRANGE leaderboard 0 -1 WITHSCORES to see the leaderboard sorted from highest to lowest score.
Practice
(1/5)
1. What does the Redis command ZREM do?
easy
A. Removes specified members from a sorted set
B. Adds new members to a sorted set
C. Returns the score of a member in a sorted set
D. Deletes the entire sorted set
Solution
Step 1: Understand the purpose of ZREM
The command ZREM is used to remove one or more members from a sorted set in Redis.
Step 2: Compare with other commands
Adding members is done by ZADD, getting scores by ZSCORE, and deleting the whole set by DEL, so these are not correct.
Final Answer:
Removes specified members from a sorted set -> Option A
Quick Check:
ZREM removes members = B [OK]
Hint: ZREM always removes members from sorted sets [OK]
Common Mistakes:
Confusing ZREM with ZADD
Thinking ZREM deletes the whole set
Assuming ZREM returns member scores
2. Which of the following is the correct syntax to remove members 'a' and 'b' from a sorted set named 'myzset' using ZREM?
easy
A. ZREM myzset (a,b)
B. ZREM myzset {a,b}
C. ZREM myzset ['a','b']
D. ZREM myzset a b
Solution
Step 1: Recall ZREM syntax
ZREM command syntax is: ZREM key member [member ...]. Members are listed separated by spaces.
Step 2: Analyze options
ZREM myzset a b uses space-separated members correctly. Options B, C, and D use invalid syntax with braces, brackets, or parentheses which Redis does not accept.
Final Answer:
ZREM myzset a b -> Option D
Quick Check:
Correct ZREM syntax = A [OK]
Hint: List members separated by spaces after key in ZREM [OK]
Common Mistakes:
Using brackets or braces around members
Separating members with commas
Passing members as a single string
3. Given a sorted set 'myzset' with members and scores: {"a":1, "b":2, "c":3}, what will be the result of ZREM myzset b d followed by ZCARD myzset?
medium
A. 1
B. 2
C. 3
D. 0
Solution
Step 1: Understand ZREM effect
ZREM removes specified members if they exist. 'b' exists and will be removed. 'd' does not exist and is ignored without error.
Step 2: Calculate remaining members
Initially 3 members: a, b, c. After removal of 'b', members left are 'a' and 'c', so 2 remain.
Final Answer:
2 -> Option B
Quick Check:
Removed 1 member, 2 remain = C [OK]
Hint: ZREM ignores missing members, count remaining with ZCARD [OK]
Common Mistakes:
Assuming error on removing non-existent member
Counting removed non-existent member
Confusing ZREM with ZADD effect
4. You run the command ZREM myzset without specifying any members. What will happen?
medium
A. Syntax error due to missing members
B. Returns 0 and does nothing
C. Removes the first member by default
D. Removes all members from 'myzset'
Solution
Step 1: Check ZREM command requirements
ZREM requires at least one member argument to remove. Omitting members is invalid syntax.
Step 2: Result of missing members
Running ZREM without members causes a syntax error, Redis will not execute the command.
Final Answer:
Syntax error due to missing members -> Option A
Quick Check:
ZREM needs members, missing causes syntax error = D [OK]
Hint: Always specify members to remove with ZREM [OK]
Common Mistakes:
Assuming ZREM clears entire set without members
Expecting default removal of first member
Thinking it returns 0 silently
5. You have a sorted set 'myzset' with members: {"x":10, "y":20, "z":30}. You want to remove all members with scores less than 25 using ZREM. Which approach correctly achieves this?
hard
A. Use ZREM myzset x y
B. Use ZREM myzset with a score range argument
C. Use ZREMRANGEBYSCORE myzset -inf 24
D. Use ZREM myzset z
Solution
Step 1: Understand ZREM limitations
ZREM removes specified members by name, it cannot remove by score range directly.
Step 2: Identify members to remove
Members x (score 10) and y (score 20) are less than 25, so to remove them by score range, use ZREMRANGEBYSCORE myzset -inf 24.
Step 3: Analyze options
A correctly uses ZREMRANGEBYSCORE to remove by score range. B is invalid syntax. C removes members by name but requires manual identification. D removes wrong member.
Final Answer:
Use ZREMRANGEBYSCORE myzset -inf 24 -> Option C
Quick Check:
Removing by score range requires ZREMRANGEBYSCORE = A [OK]
Hint: Use ZREMRANGEBYSCORE to remove members by score range [OK]
Common Mistakes:
Trying to remove by score with ZREM
Using invalid syntax with ZREM
Removing wrong members by name
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.