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

相关推荐
东风破_3 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
橙子家4 小时前
OSS 文件上传的几个风险点和解决方案
数据库
2601_962066496 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
愤怒的苹果ext6 小时前
MySQL Shell备份恢复数据库
数据库·mysql·备份恢复·mysqlsh
数字新视界8 小时前
DCIM管理系统的技术架构与部署模式详解
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统
何以解忧,唯有..8 小时前
Pydantic 介绍与使用:Python 数据校验的现代方案
数据库·python·microsoft
小白勇闯网安圈9 小时前
String、Hash、List、Set 四大数据结构与通用命令
redis
这个DBA有点耶9 小时前
数据库容灾进入“秒级时代”:同城双活架构原理、关键技术选型与落地实践
数据库·架构·dba
2601_9620748110 小时前
大数据-264 实时数仓 - Canal MySQL的binlog研究 存储目录 变动信息 配置MySQL
大数据·数据库·mysql
2601_9620711710 小时前
八. Spring Boot2 整合连接 Redis(超详细剖析)
spring boot·redis·后端