📖 Scenario: You are managing a leaderboard for a mobile game. Players earn points, and you want to keep track of the top scorers in real-time.
🎯 Goal: Build a Redis sorted set to store player scores, then query the top 3 players with the highest scores.
📋 What You'll Learn
Create a Redis sorted set called game_leaderboard with 5 players and their scores.
Add a new player score to the game_leaderboard.
Query the top 3 players with the highest scores using a Redis command.
Retrieve the scores along with the player names.
💡 Why This Matters
🌍 Real World
Leaderboards in games, ranking systems in apps, or any scenario where you need to keep track of top scores or ratings in real-time.
💼 Career
Understanding Redis sorted sets and top-N queries is valuable for backend developers working on performance-critical applications like gaming, social media, and analytics platforms.
Progress0 / 4 steps
1
Create the initial leaderboard with 5 players
Use the Redis command ZADD game_leaderboard to add these exact players and scores: "Alice" 1500, "Bob" 1200, "Charlie" 1800, "Diana" 1600, "Eve" 1400.
Redis
Hint
Use ZADD followed by the sorted set name, then pairs of score member.
2
Add a new player score
Add a new player "Frank" with a score of 1700 to the game_leaderboard using the ZADD command.
Redis
Hint
Use ZADD game_leaderboard 1700 Frank to add Frank's score.
3
Query the top 3 players by score
Use the Redis command ZREVRANGE game_leaderboard 0 2 WITHSCORES to get the top 3 players with the highest scores and their scores.
Redis
Hint
Use ZREVRANGE with 0 2 to get the top 3, and WITHSCORES to include scores.
4
Retrieve and display the top 3 players with their scores
Use the Redis command ZREVRANGE game_leaderboard 0 2 WITHSCORES to retrieve the top 3 players and their scores, completing the leaderboard query.
Redis
Hint
This command returns the top 3 players and their scores in descending order.
Practice
(1/5)
1. What Redis command is used to get the top N highest scores from a sorted set?
easy
A. ZRANGE
B. ZREVRANGE
C. ZADD
D. ZREM
Solution
Step 1: Understand sorted set ordering
Redis sorted sets store elements with scores. To get highest scores, we want descending order.
Step 2: Identify the correct command
ZREVRANGE returns elements in descending order by score, perfect for top N queries.
Final Answer:
ZREVRANGE -> Option B
Quick Check:
Top N highest = ZREVRANGE [OK]
Hint: Use ZREVRANGE for top scores in descending order [OK]
Common Mistakes:
Using ZRANGE which returns lowest scores first
Confusing ZADD (adds elements) with query commands
Using ZREM which removes elements
2. Which of the following is the correct syntax to get the top 3 highest scoring members from sorted set players?
easy
A. ZREVRANGE players 1 3
B. ZRANGE players 0 2
C. ZREVRANGE players 0 2
D. ZRANGE players -3 -1
Solution
Step 1: Understand index ranges in ZREVRANGE
Indexes start at 0. To get top 3, use 0 to 2 inclusive.
Step 2: Choose correct command and range
ZREVRANGE returns highest scores first. So ZREVRANGE players 0 2 gets top 3.
Final Answer:
ZREVRANGE players 0 2 -> Option C
Quick Check:
Top 3 highest = ZREVRANGE players 0 2 [OK]
Hint: Use 0 to N-1 indexes with ZREVRANGE for top N [OK]
Common Mistakes:
Using ZRANGE which returns lowest scores
Starting index at 1 instead of 0
Using negative indexes incorrectly
3. Given a sorted set scores with members and scores: {"alice": 50, "bob": 70, "carol": 60}, what is the result of ZREVRANGE scores 0 1 WITHSCORES?
medium
A. ["carol", "60", "alice", "50"]
B. ["alice", "50", "carol", "60"]
C. ["bob", "70", "alice", "50"]
D. ["bob", "70", "carol", "60"]
Solution
Step 1: Order members by descending score
Scores descending: bob(70), carol(60), alice(50).
Step 2: Select top 2 with scores
ZREVRANGE 0 1 returns first two: bob and carol with their scores.
Final Answer:
["bob", "70", "carol", "60"] -> Option D
Quick Check:
Top 2 with scores = bob(70), carol(60) [OK]
Hint: ZREVRANGE 0 N-1 gets top N in descending order [OK]
Common Mistakes:
Mixing ascending and descending order
Forgetting WITHSCORES returns pairs
Selecting wrong index range
4. You run ZREVRANGE leaderboard 0 4 but get an empty list. What is the most likely cause?
medium
A. The sorted set leaderboard does not exist or is empty
B. The command syntax is incorrect
C. ZREVRANGE only works with hashes, not sorted sets
D. The indexes 0 to 4 are out of range for the sorted set
Solution
Step 1: Check command syntax validity
ZREVRANGE syntax is correct for sorted sets, so syntax is not the issue.
Step 2: Understand empty result causes
If the sorted set does not exist or is empty, ZREVRANGE returns an empty list.
Final Answer:
The sorted set leaderboard does not exist or is empty -> Option A
Quick Check:
Empty result means no data in sorted set [OK]
Hint: Empty list means sorted set missing or empty [OK]
Common Mistakes:
Assuming syntax error without checking data
Thinking ZREVRANGE works on hashes
Believing index out of range causes error instead of empty list
5. You want to get the top 5 players with the lowest scores from a sorted set game_scores. Which command should you use?
hard
A. ZRANGE game_scores 0 4
B. ZRANGE game_scores -5 -1
C. ZREVRANGE game_scores -5 -1
D. ZREVRANGE game_scores 0 4
Solution
Step 1: Identify order for lowest scores
ZRANGE returns elements in ascending order by score, so lowest scores first.
Step 2: Select correct range for top 5
Indexes 0 to 4 select first 5 elements, which are lowest scores.
Final Answer:
ZRANGE game_scores 0 4 -> Option A
Quick Check:
Lowest 5 scores = ZRANGE 0 4 [OK]
Hint: Use ZRANGE 0 N-1 for lowest N scores [OK]
Common Mistakes:
Using ZREVRANGE which returns highest scores
Using negative indexes incorrectly
Confusing ascending and descending order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.