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
相关推荐
我不会起名字3221 小时前
Redis pipeline 用了反而更慢:3 类误用与正确的批量姿势
redis·pipeline·lua·rtt·批量
Tsuki_tl1 小时前
【总结】Redis五大数据类型应用场景及基本命令
数据库·redis·后端·缓存·缓存中间件·redis命令·redis 五大数据类型
黎相思2 小时前
BTree
数据结构·b树·b+树
UIU11413 小时前
P1233 [ICPC 2001 Taejon R] 木棍加工
数据结构·c++·算法·动态规划
niyongsheng16 小时前
3D 装箱算法工程化:数据结构、放置启发式与支撑规则
数据结构·算法·rust
代码丰17 小时前
大 JSON 放进 Redis 之后,如何用 Stream 解耦耗时任务?
redis·后端·系统架构
叉烧滑蛋18 小时前
B站台湾大学郭彦甫|MATLAB 学习笔记|04 变量与档案存取
数据结构
j7~18 小时前
【穷举、深搜与回溯算法】一棵决策树讲透全排列与子集
数据结构·c++·算法·leetcode·回溯·递归
枫子有风20 小时前
卡码网盘项目深挖
java·redis·jwt·es·pgvector
福大大架构师每日一题20 小时前
redis 8.10.3正式发布:聚焦集群总线超大消息传播场景的安全修复,8.10.3 Latest更新解读
数据库·redis·安全