--- Sorted Set (ZSet): 有序集合 ---
每个元素带有一个 Score,按 Score 排序
1. 排行榜 (Leaderboard)
添加玩家分数
ZADD leaderboard 100 "PlayerA"
ZADD leaderboard 200 "PlayerB"
ZADD leaderboard 150 "PlayerC"
2. 查询排名
获取前 3 名 (分数从低到高)
ZRANGE leaderboard 0 2 withscores
获取前 3 名 (分数从高到低 - 常用)
ZREVRANGE leaderboard 0 2 withscores
结果: PlayerB(200), PlayerC(150), PlayerA(100)
3. 更新分数
PlayerA 得分增加了 50
ZINCRBY leaderboard 50 "PlayerA"
4. 按分数范围查询
查询分数在 100 到 200 之间的玩家
ZRANGEBYSCORE leaderboard 100 200
5. 获取特定玩家的排名 (从 0 开始)
ZREVRANK leaderboard "PlayerA"
bash
127.0.0.1:6379> ZADD leaderboard 100 "PlayerA"
(integer) 1
127.0.0.1:6379> ZADD leaderboard 200 "PlayerB"
(integer) 1
127.0.0.1:6379> ZADD leaderboard 150 "PlayerC"
(integer) 1
127.0.0.1:6379> ZRANGE leaderboard 0 2 withscores
1) "PlayerA"
2) "100"
3) "PlayerC"
4) "150"
5) "PlayerB"
6) "200"
127.0.0.1:6379> ZREVRANGE leaderboard 0 2 withscores
1) "PlayerB"
2) "200"
3) "PlayerC"
4) "150"
5) "PlayerA"
6) "100"
127.0.0.1:6379> ZINCRBY leaderboard 50 "PlayerA"
"150"
127.0.0.1:6379> ZRANGEBYSCORE leaderboard 100 200
1) "PlayerA"
2) "PlayerC"
3) "PlayerB"
127.0.0.1:6379> ZREVRANK leaderboard "PlayerA"
(integer) 2