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也提供了计算交集、并集的命令,此处不再一一介绍。

最新文章

  1. Windows forfiles(删除历史文件)
  2. 正则表达式(http://tieba.baidu.com/p/882391125)
  3. maven项目,导入的jar包,没有包含在pom文件中,install失败
  4. html中间块居中宽度自适应
  5. json python api
  6. 解决js中post提交数据并且跳转到指定页面的问题总结
  7. 爬取博主所有文章并保存到本地(.txt版)--python3.6
  8. Linux Shell 脚本攻略学习--四
  9. 基于django的视频点播网站开发
  10. Hyperledger Fabric之模型
  11. [Java] Windows/Linux路径不同时,统一war的最简办法
  12. 使用h5py操作hdf5文件
  13. java Switch中的case后面加上大括号({})和不加大括号的区别
  14. css sprite---css精灵网页图片应用处理方式分析
  15. 胖子哥的大数据之路(9)-数据仓库金融行业数据逻辑模型FS-LDM
  16. 转:Android文件操作总结
  17. 性能监控工具YourKit
  18. vue(6)生态
  19. NYOJ 喷水装置(二)
  20. 解决MySQL版本之间造成的乱码、数据查询不出的问题

热门文章

  1. QT(3)第一个QT程序
  2. The specified named connection is either not found in the configuration, not intended to be used
  3. ipv4 ipv6简介
  4. 读取web应用下的资源文件(例如properties)
  5. 如何解决WAMP Server 与IIS端口冲突问题
  6. [golang] Glide 包管理工具,在windows10 64位系统上的bug修复方案
  7. POJ - 1458 Common Subsequence DP最长公共子序列(LCS)
  8. gridview把textbox的值修改还是旧值的解决方法
  9. 新手必看】Highcharts的100个基础问答
  10. react-router-dom