⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: ⑤【Sorted Set】Redis常用数据类型: ZSet [使用手册]


⑤Redis Zset 操作命令汇总



  • Zset和set一样都是String类型的不可重复集合,但是有序的
  • ZSet集合是通过哈希表实现的,添加、删除、查找的复杂度都是O(1)
  • 每个元素都会关联一个double类型的分数,以此为集合成员进行由小到大的排序


快速理解:

Zset就是在set的基础上,每个值前加一个分数值

之前set是k1 v1 v2

现Zset是k1 score1 v1 score2 v2


1. zadd 添加或更新一个或多个成员


zadd key score member [score member ...]


# 有序集合z1,成员a b c分数值分别为10 20 30
zadd z1 10 a 20 b 30 c



2. zrange 返回指定区间范围的有序集合成员


zrange key start stop [WITHSCORES]


# 获取指定区间范围的有序集合成员,0值-1代表所有范围
 zrange z1 0 -1
# withscores可选参数,可将成员的分数值一并输出
 zrange z1 0 -1 withscores



3. zrevrange 根据分数从高到低,返回指定区间范围的有序集合成员


zrevrange key start stop [WITHSCORES]


# 根据分数从高到低,获取指定区间范围的有序集合成员,0值-1代表所有范围
 zrevrange z1 0 -1
# withscores可选参数,可将成员的分数值一并输出
 zrevrange z1 0 -1 withscores



4. zrangebyscore 获取指定分数范围的成员


zrangebyscore key min max [WITHSCORES] [LIMIT offset count]


# 获取指定分数值范围的有序集合成员
 zrangebyscore z1 10 30
# (10 30即:10值30范围但不包含10
 zrangebyscore z1 (10 30
 # 10 (30即:10值30范围但不包含30
 zrangebyscore z1 10 (30
 # withscores可选参数,可将成员的分数值一并输出
 zrangebyscore z1 10 30 withscores



5. zscore 获取指定成员的分数值


zscore key member


# 获取有序集合z1中指定成员的分数值
zscore z1 a
zscore z1 b
zscore z1 c



6. zcard 获取集合中成员的数量


zcard key


# 获取有序集合z1中成员的个数
zcard z1



7. zrem 移除有序集合中一个或多个成员


zrem key member [member ...]


# 移除有序集合z1中指定的成员
zrem z1 a b



8. zincrby 为指定成员的分数值添加增量


zincrby key increment member


# 为有序集合Z1成员c的分数值添加增量36,返回运算后的分数值
zrem z1 a b



9. zcount 获取指定分数范围内的成员数量


zcount key min max


# 获取指定分数范围内的成员数量
zcount z1 30 70



10. zmpop 从有序集合中移除第一个非空排序集合(可设置数量)


zmpop numkeys key [key ...] MIN|MAX [COUNT count]


# zmpop 移除个数 有序集合 min|max count 限制数
 zmpop 1 z1 min count 1



11. zrank 获取指定成员的下标索引


zrank key member


# 获取z1中指定成员的下标索引
zrank z1 cpp
zrank z1 java



12. zrevrank 逆序地获取指定成员的下标索引


zrevrank key member


# 逆序获取z1中指定成员的下标索引
zrevrank z1 cpp
zrevrank z1 java




相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
8天前
|
存储 NoSQL 关系型数据库
【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署
【Redis】Redis的特性和应用场景 · 数据类型 · 持久化 · 数据淘汰 · 事务 · 多机部署
20 0
|
8天前
|
NoSQL Redis 数据库
Redis中的常用命令非常丰富,涵盖了各种数据类型的基本操作以及服务器管理和维护的相关指令
【5月更文挑战第15天】Redis常用命令包括通用(如PING、SELECT)、键操作(KEYS、EXISTS、DEL)、字符串(SET、GET)、哈希(HSET、HGET)、列表(LPUSH、LPOP)、集合(SADD、SMEMBERS)和有序集合(ZADD、ZRANGE)等。这些命令用于数据操作及服务器管理,满足不同场景需求。了解更多命令,建议参考Redis官方文档。
20 2
|
8天前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
20 0
|
8天前
|
存储 NoSQL 定位技术
Redis常用数据类型及常用命令
这些是Redis中常用的数据类型和命令。Redis还提供了许多其他命令和功能,用于数据存储、操作和查询。你可以根据需要选择适当的数据类型和命令来满足你的应用程序需求。
30 4
|
8天前
|
存储 NoSQL Java
redis zset详解:排行榜绝佳选择
新发布的App中,搜索功能使用Redis的有序集合(ZSET)来显示四个热门搜索词。由于应用初期,热门搜索显示的是测试词汇,为提升专业形象,计划删除这些测试词。文章介绍了ZSET的特性,如有序性、唯一性和快速查找,并讲解了如何在命令行中操作ZSET。此外,还分享了利用ZSET实现热搜功能的思路,每次搜索时增加对应词的分数以实现排序。最后,提供了Java代码示例展示了如何在Redisson中操作ZSET数据,以及如何实现热搜词汇功能。
59 1
|
8天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-ZSet篇
Redis入门到通关之Redis数据结构-ZSet篇
37 1
|
8天前
|
存储 NoSQL Java
Redis入门到通关之ZSet命令
Redis入门到通关之ZSet命令
21 0
|
1天前
|
C++ 容器
【C++】红黑树模拟实现STL中的map与set
【C++】红黑树模拟实现STL中的map与set
|
1天前
|
算法 测试技术 C++
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(下)
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(下)
|
1天前
|
C++ 容器
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(上)
【C++】map&set的底层结构 -- AVL树(高度平衡二叉搜索树)(上)