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
相关推荐
白狐_7986 小时前
408数据结构第5章:二叉树遍历序列题——技巧、判断与真题型总结
数据结构
Forever Nore9 小时前
学完C语言力扣第一题做不来正常吗
数据结构·算法
海上小飞龙9 小时前
Redis 分布式锁原理:从 SET NX EX 到 Redisson 看门狗
数据库·redis·分布式
旖旎夜光11 小时前
LeetCode 11:盛最多水的容器(双指针问题) —— 题解
数据结构·c++·算法·leetcode·双指针
万物皆字节13 小时前
【避坑】使用CacheEvict需要注意的坑
redis
不一样的故事12613 小时前
芯片设计是一个高度复杂、分工精细的系统工程
数据结构·经验分享
梁辰兴14 小时前
软件工程:面向数据结构的设计方法
数据结构·软件工程·梁辰兴·面向数据结构的设计方法·jackson方法·warnier方法·方法比较
白狐_79815 小时前
408数据结构第7章:查找②——顺序、折半、分块查找秒杀 + 真题
数据结构·算法
hold?fish:palm16 小时前
链表的基本原理和实现(C++版本)
数据结构·c++·链表
码完就睡16 小时前
数据结构——树、二叉树基础概念
数据结构·算法