Bird
Raised Fist0
Redisquery~20 mins

Top-N queries in Redis - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Top-N Redis Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ query_result
intermediate
2:00remaining
Retrieve top 3 highest scores from a sorted set
Given a Redis sorted set game_scores with player scores, which command returns the top 3 players with the highest scores?
Redis
ZADD game_scores 50 player1 70 player2 60 player3 90 player4 80 player5
AZREVRANGE game_scores 0 2 WITHSCORES
BZRANGEBYSCORE game_scores 0 3 WITHSCORES
CZRANGE game_scores 0 2 WITHSCORES
DZREVRANGEBYSCORE game_scores 3 0 WITHSCORES
Attempts:
2 left
💡 Hint
Remember that sorted sets are ordered by score ascending by default. Use the command that retrieves elements in descending order.
📝 Syntax
intermediate
2:00remaining
Identify the correct syntax to get top 5 elements by score
Which of the following Redis commands correctly retrieves the top 5 elements with the highest scores from a sorted set named leaderboard?
AZRANGE leaderboard 0 5
BZRANGEBYSCORE leaderboard 5 -inf
CZREVRANGE leaderboard 1 5
DZREVRANGE leaderboard 0 4
Attempts:
2 left
💡 Hint
Indexes in Redis commands start at 0 and are inclusive. Use the command that returns elements in descending order.
❓ optimization
advanced
2:30remaining
Efficiently retrieve top 10 elements with scores above 50
You want to get the top 10 elements from a sorted set scores where scores are greater than 50. Which command is the most efficient and correct?
AZRANGEBYSCORE scores 50 +inf LIMIT 0 10
BZREVRANGEBYSCORE scores +inf 50 LIMIT 0 10
CZREVRANGEBYSCORE scores 50 +inf LIMIT 0 10
DZRANGEBYSCORE scores +inf 50 LIMIT 0 10
Attempts:
2 left
💡 Hint
To get top elements with scores above 50, use reverse range by score from highest to lowest.
🔧 Debug
advanced
2:00remaining
Why does this top-N query return empty?
You run the command ZREVRANGEBYSCORE players 100 50 LIMIT 0 5 on a sorted set players but get an empty result. What is the reason?
AThe sorted set <code>players</code> is empty.
BThe LIMIT clause is invalid and causes no results.
CThe min and max scores are reversed; max should be greater than min.
DZREVRANGEBYSCORE does not support LIMIT.
Attempts:
2 left
💡 Hint
Check the order of min and max scores in the command.
🧠 Conceptual
expert
3:00remaining
Understanding Top-N queries with Redis sorted sets and lexicographical order
You have a sorted set users where scores are all equal (e.g., 0), but you want to get the top 5 users sorted by their names alphabetically. Which command achieves this?
AZRANGEBYLEX users - + LIMIT 0 5
BZRANGEBYSCORE users 0 0 LIMIT 0 5
CZREVRANGEBYLEX users + - LIMIT 0 5
DZREVRANGEBYSCORE users 0 0 LIMIT 0 5
Attempts:
2 left
💡 Hint
Use lexicographical range commands when scores are equal.

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

  1. Step 1: Understand sorted set ordering

    Redis sorted sets store elements with scores. To get highest scores, we want descending order.
  2. Step 2: Identify the correct command

    ZREVRANGE returns elements in descending order by score, perfect for top N queries.
  3. Final Answer:

    ZREVRANGE -> Option B
  4. 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

  1. Step 1: Understand index ranges in ZREVRANGE

    Indexes start at 0. To get top 3, use 0 to 2 inclusive.
  2. Step 2: Choose correct command and range

    ZREVRANGE returns highest scores first. So ZREVRANGE players 0 2 gets top 3.
  3. Final Answer:

    ZREVRANGE players 0 2 -> Option C
  4. 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

  1. Step 1: Order members by descending score

    Scores descending: bob(70), carol(60), alice(50).
  2. Step 2: Select top 2 with scores

    ZREVRANGE 0 1 returns first two: bob and carol with their scores.
  3. Final Answer:

    ["bob", "70", "carol", "60"] -> Option D
  4. 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

  1. Step 1: Check command syntax validity

    ZREVRANGE syntax is correct for sorted sets, so syntax is not the issue.
  2. Step 2: Understand empty result causes

    If the sorted set does not exist or is empty, ZREVRANGE returns an empty list.
  3. Final Answer:

    The sorted set leaderboard does not exist or is empty -> Option A
  4. 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

  1. Step 1: Identify order for lowest scores

    ZRANGE returns elements in ascending order by score, so lowest scores first.
  2. Step 2: Select correct range for top 5

    Indexes 0 to 4 select first 5 elements, which are lowest scores.
  3. Final Answer:

    ZRANGE game_scores 0 4 -> Option A
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard