Redis基本数据类型Zset有序集合常用操作


Posted in Redis onJune 01, 2022

Redis数据类型Zset有序集合

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

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

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

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

一、zadd

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

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

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

zadd myzset 1 one 1.11 two 3.25 three

Redis基本数据类型Zset有序集合常用操作

二、zrange

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

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

zrange myzset 0 -1

还可以带上分数返回:

zrange myzset 0 -1 WITHSCORES

Redis基本数据类型Zset有序集合常用操作

三、zrevrange

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

zrevrange myzset 0 -1 WITHSCORES

Redis基本数据类型Zset有序集合常用操作

四、zrangebyscore

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

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

Redis基本数据类型Zset有序集合常用操作

五、 zrem

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

zrem myzset one three four

Redis基本数据类型Zset有序集合常用操作

六、zcard

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

zcard myzset

Redis基本数据类型Zset有序集合常用操作

七、zcount

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

zcount myzset 2 5

Redis基本数据类型Zset有序集合常用操作

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

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

以上就是Redis基本数据类型Zset有序集合常用操作的详细内容,更多关于Redis数据类型Zset有序集合的资料请关注三水点靠木其它相关文章!


Tags in this post...

Redis 相关文章推荐
使用Redis实现秒杀功能的简单方法
May 08 Redis
Redis延迟队列和分布式延迟队列的简答实现
May 13 Redis
详解Redis基本命令与使用场景
Jun 01 Redis
Redis性能监控的实现
Jul 09 Redis
Redis入门教程详解
Aug 30 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
浅谈Redis跟MySQL的双写问题解决方案
Feb 24 Redis
sentinel支持的redis高可用集群配置详解
Apr 01 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
Redis Lua脚本实现ip限流示例
Jul 15 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 #Redis
Redis特殊数据类型HyperLogLog基数统计算法讲解
Jun 01 #Redis
Redis特殊数据类型bitmap位图
Jun 01 #Redis
浅谈Redis的事件驱动模型
May 30 #Redis
Redis 异步机制
Redis 报错 error:NOAUTH Authentication required
解决 redis 无法远程连接
You might like
BBS(php &amp; mysql)完整版(六)
2006/10/09 PHP
PHP 批量删除 sql语句
2009/06/05 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
2015/12/02 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
微信小程序 MINA文件结构
2016/10/17 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
vue 2.8.2版本配置刚进入时候的默认页面方法
2018/09/21 Javascript
[03:48]显微镜下的DOTA2第四期——TP动作
2014/06/20 DOTA
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
在python中利用最小二乘拟合二次抛物线函数的方法
2018/12/29 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
Python 元组拆包示例(Tuple Unpacking)
2019/12/24 Python
财务分析个人的自荐书范文
2013/11/24 职场文书
社区春季防火方案
2014/06/02 职场文书
永不妥协观后感
2015/06/10 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android