Redis sorted set(有序集合)
Redis 有序集合是string类型元素的集合,元素不允许重复。
有序集合中的每个元素都会关联一个数值型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的(不可重复),但分数(score)可以重复。
1、zadd key score1 value1 score2 value2 ..... //往有序集合中添加一个或多个元素。score是数值型,支持整数、浮点数,支持负数。z代表sorted set。
示例: zadd students zhangsan lisi wangwu //返回此次添加的元素个数。score只是附加信息,真正的元素还是value1,value2,......
说明:hash、list、set、sorted set,在Reids2.4之前的版本中,1次只支持添加一个元素,不支持1次添加多个元素。
2、zcard key //返回元素个数
3、zcount key minScore maxScore //返回分数值在[minScore,maxScore]上的元素个数
4、zlexcount key minValue maxValue //返回元素值在[minValue,maxValue]上的元素个数。
不能直接用元素值,有3种写法:
- [value 表示包含此元素
- (value 表示不包含此元素
- -表示第一个元素(包含),+表示最后一个元素(包含)
示例:
zadd set1 a b c d
zlexcount set1 - + //返回总元素个数,4
zlexcount set1 [a [b //2 。即[a,b]上元素个数
zlexcount set1 (a [b //1。(a,b]
不能缺省 [ 或 (
5、zrange key minIndex maxIndex [withscores] //返回索引在[minIndex,maxIndex]上的所有元素。
索引从0开始,支持负数,-1表示倒数第一个元素,-2表示倒数第二个元素。
withscores是可选参数,带上则还会显示分数,不带则只显示元素值。
6、zrangebyscore key minScore maxScore [withscores]
返回score在[minScore,maxScore]上的所有元素值。
默认使用[ ,闭区间。也可以显示指定为 [ 或 ( 。
withscores可选,带上时会显示元素的score,不带上时不显示score。
示例: zrangebyscore set1 [ ( //获取score在[1,2)上的所有元素
7、zrank key elementValue //返回该元素值的索引。默认按score进行升序排列。索引从0开始。
以上3个命令都是按score升序排列的。下面的3个命令:
- zrevrange
- zrevrangebyscore
- zrevrank
前缀加不是z,而是zrev。和之前的3个命令一一对应,用法完全相同,只不过是按score降序排列计算的。
8、zscore key elementValue //返回该元素值对应的score值
9、zincrby key increment elementValue //increment是增量,将指定元素的score增加increment。increment支持负数,即减。
10、zrem key value1 value2 ..... //移除一个或多个元素
11、zremrangebyrank key startIndex endIndex //移除下标在[startIndex,endIndex]上的所有元素。zremrangebyrank即z remove range by rank
12、zremrangebyscore key minScore maxScore //移除score在[minScore,maxScore]上的所有元素
13、zremrangebylex key value1 value2 //移除这2个元素值之间的所有元素。
不能直接写元素值,可以用- +表示,或者在元素值前面加[ (
14、zscan key cursor [match pattern] [count num] //迭代
sorted set也提供了计算交集、并集的命令,此处不再一一介绍。
最新文章
- Windows forfiles(删除历史文件)
- 正则表达式(http://tieba.baidu.com/p/882391125)
- maven项目,导入的jar包,没有包含在pom文件中,install失败
- html中间块居中宽度自适应
- json python api
- 解决js中post提交数据并且跳转到指定页面的问题总结
- 爬取博主所有文章并保存到本地(.txt版)--python3.6
- Linux Shell 脚本攻略学习--四
- 基于django的视频点播网站开发
- Hyperledger Fabric之模型
- [Java] Windows/Linux路径不同时,统一war的最简办法
- 使用h5py操作hdf5文件
- java Switch中的case后面加上大括号({})和不加大括号的区别
- css sprite---css精灵网页图片应用处理方式分析
- 胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM
- 转:Android文件操作总结
- 性能监控工具YourKit
- vue(6)生态
- NYOJ 喷水装置(二)
- 解决MySQL版本之间造成的乱码、数据查询不出的问题
热门文章
- QT(3)第一个QT程序
- The specified named connection is either not found in the configuration, not intended to be used
- ipv4 ipv6简介
- 读取web应用下的资源文件(例如properties)
- 如何解决WAMP Server 与IIS端口冲突问题
- [golang] Glide 包管理工具,在windows10 64位系统上的bug修复方案
- POJ - 1458 Common Subsequence DP最长公共子序列(LCS)
- gridview把textbox的值修改还是旧值的解决方法
- 新手必看】Highcharts的100个基础问答
- react-router-dom