Redis 从入门到精通(八):有序集合操作详解

系列导读:本篇将深入讲解 Redis 有序集合(ZSet)的所有操作命令及实际应用场景。


文章目录


一、有序集合命令总览

命令 说明
ZADD 添加元素
ZREM 删除元素
ZSCORE 获取分数
ZRANK 获取排名
ZRANGE 按排名范围获取
ZRANGEBYSCORE 按分数范围获取
ZCARD 获取元素数量
ZINCRBY 增加分数

二、基础操作命令

2.1 添加与删除

bash 复制代码
# 添加元素
ZADD leaderboard 100 "player1"
ZADD leaderboard 200 "player2" 150 "player3"

# 删除元素
ZREM leaderboard "player1"

# 删除排名范围
ZREMRANGEBYRANK leaderboard 0 9

# 删除分数范围
ZREMRANGEBYSCORE leaderboard 0 100

2.2 分数操作

bash 复制代码
# 获取分数
ZSCORE leaderboard "player1"

# 增加分数
ZINCRBY leaderboard 50 "player1"

# 获取排名(从0开始)
ZRANK leaderboard "player1"

# 获取排名(倒序)
ZREVRANK leaderboard "player1"

2.3 统计操作

bash 复制代码
# 获取元素数量
ZCARD leaderboard

# 统计分数范围内元素数量
ZCOUNT leaderboard 100 200

三、范围查询命令

3.1 按排名查询

bash 复制代码
# 正序获取
ZRANGE leaderboard 0 9
ZRANGE leaderboard 0 9 WITHSCORES

# 倒序获取
ZREVRANGE leaderboard 0 9 WITHSCORES

3.2 按分数查询

bash 复制代码
# 按分数范围获取
ZRANGEBYSCORE leaderboard 100 200
ZRANGEBYSCORE leaderboard 100 200 WITHSCORES
ZRANGEBYSCORE leaderboard (100 (200  # 不包含边界

# 倒序按分数获取
ZREVRANGEBYSCORE leaderboard 200 100

3.3 集合运算

bash 复制代码
# 并集
ZUNIONSTORE result 2 zset1 zset2

# 交集
ZINTERSTORE result 2 zset1 zset2

四、实战应用场景

4.1 排行榜

bash 复制代码
# 更新分数
ZINCRBY game:rank 100 "player1"

# 获取Top 10
ZREVRANGE game:rank 0 9 WITHSCORES

# 获取用户排名
ZREVRANK game:rank "player1"

4.2 延时队列

bash 复制代码
# 添加延时任务(时间戳作为分数)
ZADD delay:queue 1712345678 "task:1"

# 获取到期任务
ZRANGEBYSCORE delay:queue 0 当前时间戳

4.3 热搜榜

bash 复制代码
# 增加热度
ZINCRBY hot:search 1 "Redis教程"

# 获取热搜
ZREVRANGE hot:search 0 9 WITHSCORES

总结

本文我们学习了:

基础操作 :ZADD/ZREM/ZSCORE/ZRANK

范围查询 :ZRANGE/ZRANGEBYSCORE

应用场景:排行榜、延时队列、热搜榜

下篇预告Redis 从入门到精通(九):事务详解


作者 :刘~浪地球
系列 :Redis 从入门到精通(八)
更新时间:2026-04-05

相关推荐
倔强的石头_9 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB11 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou642 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
用户3074596982072 天前
Redis 延时队列详解
redis
GBASE2 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
烤代码的吐司君3 天前
Redis 数据结构 ZSet, BIT, HyperLogLog,Geo 空间数据
redis·后端
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩4 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3505 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3505 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库