Redis核心数据结构-ZSet

--- 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
相关推荐
知识分享小能手11 小时前
Redis入门学习教程,从入门到精通, Redis Stack 完整语法知识点及使用指南(7)
数据库·redis·学习
tankeven11 小时前
【无标题】
数据结构·c++·算法
一个有温度的技术博主11 小时前
Redis系列八:Jedis连接池在java中的使用
java·redis·bootstrap
jing-ya12 小时前
day 59 图论part10
java·开发语言·数据结构·算法·图论
不染尘.12 小时前
最短路径之Bellman-Ford算法
开发语言·数据结构·c++·算法·图论
zx_zx_12313 小时前
定长滑动窗口和不定长滑动窗口
数据结构·算法
anzhxu13 小时前
Ubuntu上安装、使用Redis的详细教程
redis·ubuntu·bootstrap
自信1504130575913 小时前
选择排序算法
c语言·数据结构·算法·排序算法
小江的记录本13 小时前
【Redis】Redis常用命令速查表(完整版)
java·前端·数据库·redis·后端·spring·缓存
仰泳的熊猫14 小时前
题目2580:蓝桥杯2020年第十一届省赛真题-分类计数
数据结构·c++·算法·蓝桥杯