Bird
Raised Fist0
Redisquery~30 mins

ZRANGE and ZREVRANGE for reading in Redis - Mini Project: Build & Apply

Choose your learning style10 modes available
Using ZRANGE and ZREVRANGE to Read Sorted Sets in Redis
📖 Scenario: You are managing a leaderboard for a game. Players earn points, and you want to store their scores in a Redis sorted set. You want to learn how to read the top players and the lowest scoring players using Redis commands.
🎯 Goal: Build Redis commands to create a sorted set of players with scores, then read the players in ascending and descending order using ZRANGE and ZREVRANGE.
📋 What You'll Learn
Create a sorted set called game_leaderboard with exact player-score pairs
Set a variable for the range start and end indexes
Use ZRANGE to get players with lowest scores
Use ZREVRANGE to get players with highest scores
💡 Why This Matters
🌍 Real World
Leaderboards in games, ranking systems, and priority queues often use Redis sorted sets to store and retrieve ordered data efficiently.
💼 Career
Knowing how to read sorted sets with ZRANGE and ZREVRANGE is essential for backend developers working with Redis to implement features like leaderboards, recommendation systems, and real-time analytics.
Progress0 / 4 steps
1
Create the sorted set game_leaderboard with players and scores
Use the Redis command ZADD to create a sorted set called game_leaderboard with these exact player-score pairs: "Alice" 50, "Bob" 75, "Charlie" 62, "Diana" 85, and "Eve" 40.
Redis
Hint

Use ZADD followed by the sorted set name, then pairs of score member.

2
Set variables for the range start and end indexes
Create two variables called start and end and set them to 0 and 2 respectively. These will be used to read the first three players from the leaderboard.
Redis
Hint

Assign 0 to start and 2 to end.

3
Use ZRANGE to get players with lowest scores
Use the Redis command ZRANGE with the sorted set game_leaderboard and the variables start and end to get the players with the lowest scores. Include the WITHSCORES option to see their scores.
Redis
Hint

Use ZRANGE game_leaderboard $start $end WITHSCORES to get players and their scores.

4
Use ZREVRANGE to get players with highest scores
Use the Redis command ZREVRANGE with the sorted set game_leaderboard and the variables start and end to get the players with the highest scores. Include the WITHSCORES option to see their scores.
Redis
Hint

Use ZREVRANGE game_leaderboard $start $end WITHSCORES to get top players and their scores.

Practice

(1/5)
1. What does the Redis command ZRANGE myset 0 2 do?
easy
A. Deletes the first three elements from the sorted set 'myset'.
B. Returns the first three elements with the lowest scores from the sorted set 'myset'.
C. Returns the last three elements with the highest scores from the sorted set 'myset'.
D. Returns all elements from the sorted set 'myset' without any order.

Solution

  1. Step 1: Understand ZRANGE command behavior

    ZRANGE returns elements in ascending order by score, from the start index to the end index.
  2. Step 2: Apply the index range 0 to 2

    Indexes 0 to 2 mean the first three elements with the lowest scores are returned.
  3. Final Answer:

    Returns the first three elements with the lowest scores from the sorted set 'myset'. -> Option B
  4. Quick Check:

    ZRANGE with 0 2 = first 3 lowest scored items [OK]
Hint: ZRANGE gets items low to high by index range [OK]
Common Mistakes:
  • Confusing ZRANGE with ZREVRANGE order
  • Thinking it deletes elements
  • Assuming it returns all elements unordered
2. Which of the following is the correct syntax to get the top 5 highest scored elements from a sorted set named 'scores'?
easy
A. ZREVRANGE scores 0 4
B. ZRANGE scores -5 -1
C. ZRANGE scores 0 4 WITHSCORES
D. ZREVRANGE scores 5 0

Solution

  1. Step 1: Identify command for highest scores first

    ZREVRANGE returns elements from highest to lowest score.
  2. Step 2: Use index range 0 to 4 for top 5 elements

    Indexes 0 to 4 select the first 5 elements in descending order.
  3. Final Answer:

    ZREVRANGE scores 0 4 -> Option A
  4. Quick Check:

    Top 5 highest = ZREVRANGE 0 4 [OK]
Hint: Use ZREVRANGE 0 N-1 for top N highest scores [OK]
Common Mistakes:
  • Using negative indexes incorrectly with ZRANGE
  • Confusing ZRANGE and ZREVRANGE
  • Wrong index order like 5 0
3. Given a sorted set 'players' with elements and scores: {"Alice":10, "Bob":20, "Carol":15}, what is the output of ZRANGE players 0 1 WITHSCORES?
medium
A. ["Bob", "20", "Carol", "15"]
B. ["Alice", "10", "Bob", "20"]
C. ["Carol", "15", "Bob", "20"]
D. ["Alice", "10", "Carol", "15"]

Solution

  1. Step 1: Sort elements by score ascending

    Sorted order by score: Alice(10), Carol(15), Bob(20).
  2. Step 2: Select indexes 0 to 1 with scores

    Indexes 0 and 1 correspond to Alice and Carol with their scores.
  3. Final Answer:

    ["Alice", "10", "Carol", "15"] -> Option D
  4. Quick Check:

    ZRANGE 0 1 WITHSCORES = Alice and Carol with scores [OK]
Hint: ZRANGE returns low to high; WITHSCORES adds scores after each element [OK]
Common Mistakes:
  • Mixing order of elements
  • Forgetting WITHSCORES doubles output
  • Assuming ZREVRANGE order
4. You run ZREVRANGE leaderboard 0 2 but get unexpected results. Which of these is a likely cause?
medium
A. ZREVRANGE does not support index ranges.
B. You used ZRANGE instead of ZREVRANGE.
C. The sorted set 'leaderboard' is empty or does not exist.
D. The index range 0 2 is invalid for ZREVRANGE.

Solution

  1. Step 1: Check if sorted set exists and has elements

    If 'leaderboard' is empty or missing, ZREVRANGE returns empty result.
  2. Step 2: Validate command and index usage

    ZREVRANGE supports index ranges; 0 2 is valid; using ZRANGE instead would change order but not cause empty result.
  3. Final Answer:

    The sorted set 'leaderboard' is empty or does not exist. -> Option C
  4. Quick Check:

    Empty set causes empty ZREVRANGE output [OK]
Hint: Empty or missing set returns empty list [OK]
Common Mistakes:
  • Thinking index range is invalid
  • Confusing ZRANGE and ZREVRANGE effects
  • Believing ZREVRANGE lacks index support
5. You want to get the middle 3 elements by score from a sorted set 'scores' with 10 elements, ordered from lowest to highest. Which command correctly retrieves elements ranked 4th to 6th (0-based index) with their scores?
hard
A. ZRANGE scores 3 5 WITHSCORES
B. ZREVRANGE scores 3 5 WITHSCORES
C. ZRANGE scores 4 6 WITHSCORES
D. ZREVRANGE scores 4 6 WITHSCORES

Solution

  1. Step 1: Identify index range for middle 3 elements

    Elements ranked 4th to 6th correspond to indexes 3, 4, 5 (0-based).
  2. Step 2: Use ZRANGE for ascending order and WITHSCORES to get scores

    ZRANGE scores 3 5 WITHSCORES returns elements at indexes 3 to 5 with their scores.
  3. Final Answer:

    ZRANGE scores 3 5 WITHSCORES -> Option A
  4. Quick Check:

    Middle 3 elements = ZRANGE 3 5 WITHSCORES [OK]
Hint: ZRANGE with correct indexes gets middle elements low to high [OK]
Common Mistakes:
  • Using ZREVRANGE which reverses order
  • Off-by-one errors in index range
  • Confusing rank with index
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