📖 Scenario: Imagine you are managing a leaderboard for a game. You want to keep track of players' scores so that each player appears only once, and the list is always sorted from highest to lowest score.
🎯 Goal: Build a Redis sorted set that stores player names with their scores, ensuring each player is unique and the set is ordered by score.
📋 What You'll Learn
Create a sorted set with specific player-score pairs
Add a new player with a score to the sorted set
Retrieve the players ordered by their scores
Ensure no duplicate players exist in the sorted set
💡 Why This Matters
🌍 Real World
Leaderboards in games, ranking websites, or any system where unique items need to be sorted by a score or priority.
💼 Career
Understanding sorted sets is essential for roles involving caching, real-time analytics, and building efficient ranking systems using Redis.
Progress0 / 4 steps
1
Create a sorted set with initial players and scores
Use the Redis command ZADD to create a sorted set called game_leaderboard with these exact player-score pairs: 100 Alice, 150 Bob, 120 Charlie.
Redis
Hint
Use ZADD followed by the sorted set name, then pairs of score member.
2
Add a new player with a score to the sorted set
Add a new player David with a score of 130 to the existing sorted set game_leaderboard using the ZADD command.
Redis
Hint
Use ZADD game_leaderboard 130 David to add David with score 130.
3
Retrieve players ordered by their scores
Use the Redis command ZREVRANGE to get all players from game_leaderboard ordered from highest to lowest score, including their scores.
Redis
Hint
Use ZREVRANGE game_leaderboard 0 -1 WITHSCORES to get all players sorted from highest to lowest score.
4
Add a duplicate player with a new score to update the score
Add the player Alice again with a new score of 160 using ZADD to update her score in game_leaderboard. This should keep the player unique and update the score.
Redis
Hint
Use ZADD game_leaderboard 160 Alice to update Alice's score and keep her unique in the set.
Practice
(1/5)
1. What is the main reason Redis sorted sets combine uniqueness with ordering?
easy
A. To store unique members with associated scores for sorted retrieval
B. To allow duplicate members with different scores
C. To store unordered lists of members
D. To only store scores without members
Solution
Step 1: Understand uniqueness in sorted sets
Sorted sets store each member only once, ensuring uniqueness.
Step 2: Understand ordering in sorted sets
Each member has a score that determines its order in the set.
Final Answer:
To store unique members with associated scores for sorted retrieval -> Option A
Quick Check:
Uniqueness + ordering = unique members with scores [OK]
Hint: Remember: unique members + scores = sorted sets [OK]
Common Mistakes:
Thinking duplicates are allowed
Confusing sorted sets with lists
Ignoring the role of scores
2. Which of the following is the correct Redis command to add a member with a score to a sorted set?