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
相关推荐
用户30745969820720 小时前
Redis 延时队列详解
redis
CSharp精选营20 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
烤代码的吐司君1 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
leeyi3 天前
Checkpoint 机制:Agent 怎么在断电后接着跑
redis·aigc·agent
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
云技纵横4 天前
一个 @Async 让循环依赖暴雷:Spring 代理的暗坑
redis
犯困蛋挞yy5 天前
用Claude快速解决Redis代码报错反复无解的问题
redis
北域码匠5 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
用户31693538118311 天前
Java连接Redis
redis
Darling噜啦啦12 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试