【Redis】基本数据类型常用操作 - Zset (有序集合)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 【Redis】基本数据类型常用操作 - Zset (有序集合)

有序集合和集合一样也是 string 类型元素的集合,且不允许重复的成员。


不同的是有序集合每个元素都会关联一个 double 类型的分数。redis 正是通过分数来为集合中的成员进行从小到大的排序。


有序集合的成员是唯一的,但分数(score)却可以重复。


集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是 O(1)。


一、zadd


将一个或多个成员元素及其分数值加入到有序集当中。分数值可以是整数值或双精度浮点数。


若有序集合 key 不存在,则创建一个空的有序集并执行zadd操作。


若 key 存在但不是有序集类型时,返回一个错误。


zadd myzset 1 one 1.11 two 3.25 three


1268169-20210617124707093-366233555.png


二、zrange


返回有序集中,指定区间内的成员。其中成员的位置按分数值递增(从小到大)来排序。

具有相同分数值的成员按字典序(lexicographical order )来排列。


zrange myzset 0 -1


还可以带上分数返回:


zrange myzset 0 -1 WITHSCORES


1268169-20210617125100210-1366706155.png


三、zrevrange


返回有序集中,指定区间内的成员。其中成员的位置按分数值递减(从大到小)来排列。


zrevrange myzset 0 -1 WITHSCORES


1268169-20210617222346865-1589448523.png


四、zrangebyscore


返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。


zrangebyscore myzset (1 2  # 这里相当于 1< score <=2
zrangebyscore myzset 1 2 # 这里相当于 1<= score <=2
zrangebyscore myzset -inf +inf # 这里-inf +inf 相当于 负无穷、正无穷,显示出所有


1268169-20210617223143033-1384752790.png


五、 zrem


移除有序集中的一个或多个成员,不存在的成员将被忽略。


zrem myzset one three four


1268169-20210617225331704-1038490398.png


六、zcard


用于计算集合中元素的数量。


zcard myzset


1268169-20210617225515276-625260071.png


七、zcount


用于计算有序集合中指定分数区间的成员数量。


zcount myzset 2 5


1268169-20210617230107988-1265839856.png


还有其他的命令,在使用过程中不清楚可以查看官方文档中的命令查询,非常详尽。

set的使用场景也很丰富,比如可以用来用作排序场景、存储工资表、班级成绩表、xx排行榜等等。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
21小时前
|
存储 消息中间件 NoSQL
Redis数据类型详解:选择合适的数据结构优化你的应用
Redis数据类型详解:选择合适的数据结构优化你的应用
|
21小时前
|
SQL NoSQL Java
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
Redis数据类型 Hash Set Zset Bitmap HyperLogLog GEO
17 0
|
21小时前
|
存储 NoSQL 定位技术
Redis常用数据类型及常用命令
这些是Redis中常用的数据类型和命令。Redis还提供了许多其他命令和功能,用于数据存储、操作和查询。你可以根据需要选择适当的数据类型和命令来满足你的应用程序需求。
24 4
|
21小时前
|
存储 NoSQL Java
redis zset详解:排行榜绝佳选择
新发布的App中,搜索功能使用Redis的有序集合(ZSET)来显示四个热门搜索词。由于应用初期,热门搜索显示的是测试词汇,为提升专业形象,计划删除这些测试词。文章介绍了ZSET的特性,如有序性、唯一性和快速查找,并讲解了如何在命令行中操作ZSET。此外,还分享了利用ZSET实现热搜功能的思路,每次搜索时增加对应词的分数以实现排序。最后,提供了Java代码示例展示了如何在Redisson中操作ZSET数据,以及如何实现热搜词汇功能。
52 1
|
21小时前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-ZSet篇
Redis入门到通关之Redis数据结构-ZSet篇
22 1
|
21小时前
|
存储 NoSQL Java
Redis入门到通关之ZSet命令
Redis入门到通关之ZSet命令
18 0
|
21小时前
|
存储 SQL NoSQL
Redis入门到通关之五大基本数据类型及其使用场景
Redis入门到通关之五大基本数据类型及其使用场景
17 0
|
21小时前
|
存储 NoSQL Redis
第十八章 Redis查看配置文件和数据类型
第十八章 Redis查看配置文件和数据类型
20 0
|
21小时前
|
存储 SQL NoSQL
Redis的数据类型
Redis的数据类型
20 0
|
21小时前
|
存储 NoSQL Java
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
【Redis】1、学习 Redis 的五大基本数据类型【String、Hash、List、Set、SortedSet】
57 0