Sorted sets help keep items in order by score, making it easy to find top or bottom ranked items quickly.
Why sorted sets solve ranking problems in Redis
ZADD key score member [score member ...] ZRANGE key start stop [WITHSCORES] ZREVRANGE key start stop [WITHSCORES]
ZADD adds members with scores to the sorted set.
ZRANGE gets members in ascending order by score.
ZREVRANGE gets members in descending order by score.
ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Carol"
ZRANGE leaderboard 0 -1 WITHSCORES
ZREVRANGE leaderboard 0 1 WITHSCORES
This adds three players with scores and then retrieves the top 3 players by score in descending order.
ZADD leaderboard 100 "Alice" 200 "Bob" 150 "Carol" ZREVRANGE leaderboard 0 2 WITHSCORES
Sorted sets automatically keep members ordered by score, so you don't need to sort manually.
Scores can be updated easily with ZADD, and the order updates automatically.
Using WITHSCORES option helps see both members and their scores together.
Sorted sets store items with scores to keep them ordered.
This makes ranking tasks like leaderboards simple and fast.
Commands like ZADD and ZREVRANGE help add and retrieve ranked data easily.
Practice
Solution
Step 1: Understand sorted set structure
Sorted sets store each element with a numeric score that determines its order.Step 2: Relate ordering to ranking
This automatic ordering by score makes it easy to rank items, like players in a leaderboard.Final Answer:
Because they store elements with scores, keeping them automatically ordered. -> Option AQuick Check:
Sorted sets = ordered by score [OK]
- Thinking sorted sets store unordered data
- Confusing sorted sets with hashes
- Ignoring the role of scores in ordering
game_scores?Solution
Step 1: Recall ZADD syntax
ZADD command syntax is: ZADD key score member.Step 2: Match syntax to options
ZADD game_scores 1500 player1 uses ZADD with key 'game_scores', score 1500, and member 'player1' correctly.Final Answer:
ZADD game_scores 1500 player1 -> Option DQuick Check:
ZADD key score member = correct syntax [OK]
- Using SADD instead of ZADD for sorted sets
- Swapping member and score positions
- Using hash commands like HSET incorrectly
ZADD leaderboard 100 Alice 200 Bob 150 Carol, what does ZREVRANGE leaderboard 0 1 WITHSCORES return?Solution
Step 1: Understand ZREVRANGE behavior
ZREVRANGE returns members ordered from highest to lowest score.Step 2: Identify top two members
Scores: Bob=200, Carol=150, Alice=100. Top two are Bob and Carol.Final Answer:
["Bob", "200", "Carol", "150"] -> Option AQuick Check:
Highest scores first = Bob, Carol [OK]
- Confusing ZRANGE with ZREVRANGE order
- Ignoring WITHSCORES option format
- Mixing member order in output
ZADD scores player1 50 player2 100 but get an error. What is the likely cause?Solution
Step 1: Recall ZADD syntax
ZADD expects pairs of score and member: score1 member1 score2 member2 ...Step 2: Analyze given command
Command is ZADD scores player1 50 player2 100 -- after key, 'player1' (string) where score (number) expected, incorrect pairs.Final Answer:
ZADD requires score and member pairs; this command has incorrect pairs. -> Option CQuick Check:
Score must come before member in pairs [OK]
- Swapping score and member order
- Trying to add multiple members with wrong syntax
- Assuming key must pre-exist
Solution
Step 1: Add players with scores correctly
ZADD syntax requires score before member, so 'ZADD leaderboard 300 Alice 250 Bob 400 Carol' is correct.Step 2: Retrieve top 3 players by highest score
ZREVRANGE with 0 2 and WITHSCORES returns top 3 players in descending order with scores.Final Answer:
ZADD leaderboard 300 Alice 250 Bob 400 Carol; ZREVRANGE leaderboard 0 2 WITHSCORES -> Option BQuick Check:
Use ZADD with scores, then ZREVRANGE for top ranks [OK]
- Using SADD which ignores scores
- Swapping score and member in ZADD
- Using ZRANGE instead of ZREVRANGE for descending order
Ready to prove it?
Pass the test and this pattern moves unknown
