Lesson 8 of 17
Sorted Sets
Redis Sorted Sets
A sorted set is like a set (unique members) but each member has an associated floating-point score. Members are always kept in score order. Sorted sets are perfect for leaderboards, rankings, and priority queues.
ZADD — Add Members with Scores
ZADD leaderboard 100 "Alice" 85 "Bob" 92 "Charlie"
Returns the number of new members added (not updated).
ZRANGE — Get Members in Score Order (Ascending)
ZRANGE leaderboard 0 -1
ZRANGE leaderboard 0 -1 WITHSCORES
Output:
1) "Bob"
2) "Charlie"
3) "Alice"
---
1) "Bob"
2) "85"
3) "Charlie"
4) "92"
5) "Alice"
6) "100"
ZREVRANGE — Get Members in Reverse Order (Descending)
ZREVRANGE leaderboard 0 2 WITHSCORES
Returns top 3, highest score first.
ZRANK and ZREVRANK — Get Rank
ZRANK leaderboard "Alice" -- 2 (0-indexed, ascending)
ZREVRANK leaderboard "Alice" -- 0 (0-indexed, descending = rank 1)
ZSCORE — Get Score
ZSCORE leaderboard "Alice" -- "100"
ZINCRBY — Change Score
ZINCRBY leaderboard 15 "Bob"
ZSCORE leaderboard "Bob" -- "100"
ZCARD — Number of Members
ZCARD leaderboard -- 3
ZRANGEBYSCORE — Range by Score
ZRANGEBYSCORE leaderboard 90 100 -- members scoring 90-100
ZRANGEBYSCORE leaderboard -inf +inf -- all members
ZRANGEBYSCORE leaderboard (85 100 -- exclusive lower bound (>85)
Real-World Uses
Gaming leaderboard:
ZADD game:scores 1200 "Charlie" 1000 "Alice" 750 "Bob"
ZREVRANGE game:scores 0 2 WITHSCORES -- top 3
Priority queue:
ZADD tasks 1 "critical-bug" 5 "feature" 3 "refactor"
ZPOPMIN tasks -- get highest priority (lowest score)
Your Task
Build a leaderboard scores with: "Alice" at 100, "Bob" at 75, "Charlie" at 92, "Dave" at 88. Then use ZREVRANGE to get all members with scores, highest first.
Redis emulator loading...
Loading...
Click "Run" to execute your code.