Redis 有序集合是string类型元素的集合,元素不允许重复。

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

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

1、zadd  key  score1  value1  score2  value2 .....    //往有序集合中添加一个或多个元素。score是数值型,支持整数、浮点数,支持负数。z代表sorted set。

示例: zadd students 1 zhangsan 2 lisi 3 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 1 a 2 b 3 c 4 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 [1 (2     //获取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也提供了计算交集、并集的命令,此处不再一一介绍。

转载于:https://www.cnblogs.com/chy18883701161/p/11079970.html

Redis sorted set(有序集合)相关推荐

  1. redis 数据类型之有序集合(sorted set) 详细介绍

    Redis的有序集合(sorted set)同时具有"有序"和"集合"两种性质,这种数据结构中的每个元素都由一个成员和一个与成员相关联的分值组成,其中成员以字符 ...

  2. 对 Redis 中的有序集合SortedSet的理解

    本篇说一下Redis中的 有序集合类型,曾几何时,我们想把所有数据存到内存中的 数据结构 中,但为了多机器共享内存,不得不将这块内存包装成wcf单独部署,同时还要考虑怎么序列化,烦心事太多太多...后 ...

  3. Redis数据结构之有序集合

    本文来说下Redis数据结构之集合 文章目录 概述 Redis有序集合的部分命令 相关命令 集合内 集合间 内部编码 ziplist(压缩列表) skiplist(跳跃表) 使用场景 本文参考 本文小 ...

  4. redis数据库hset(有序集合)类型常用命令

    redis数据库hset类型常用命令 1 向有序集合添加一个或多个成员,或者更新已存在成员的分数 zadd key score1 member1 [score2 member2] 2 获取有序集合的成 ...

  5. Redis 与 zset(sorted set有序集合) 相关的常用命令

    1.  zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5 向 zset01 中添加 v1,v2,v3,v4,v5 这 5 个元素,前面的数字就是 score,用来排 ...

  6. redis基础之有序集合应用

    '''音乐播放排名''' import redisr = redis.Redis(host='127.0.0.1', port=6379, password='123456', db=0) r.zad ...

  7. 为什么redis取出来是null_跳表:为什么Redis一定要用跳表来实现有序集合

    上两节我们讲了二分查找算法.当时我讲到,因为二分查找底层依赖的是数组随机访问的特性,所以只能用数组来实现.如果数据存储在链表中,就真的没法用二分查找算法了吗? 实际上,我们只需要对链表稍加改造,就可以 ...

  8. 17 | 跳表:为什么Redis一定要用跳表来实现有序集合?

    问题:如果数据存储在链表中,就真的没法用二分查找算法了吗?可以对链表进行"改造",就可以支持类似"二分"的查找算法. 跳表 定义:对链表经过改造之后的数据结构叫 ...

  9. Redis 集合 有序集合 python操作集合

    集合数据类型(set) 文章目录 集合数据类型(set) 基本命令 案例: 新浪微博的共同关注 python操作set 有序集合sortedset 特点 有序集合常用命令 python操作sorted ...

  10. redis有序集合(Zset)

    2019独角兽企业重金招聘Python工程师标准>>> Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员.不同的是每个元素都会关联一个double类型 ...

最新文章

  1. Git 常用操作(3)- 本地分之显示、创建、切换、合并和删除操作
  2. appium+python搭建自动化测试框架_TestAPP框架(三)
  3. 【面试题】C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别
  4. 玛纽尔扫地机器人怎样_扫地机器人怎样选?科沃斯超能王VS云鲸对比测试,看完你就懂了...
  5. Linux中硬盘转速查看
  6. 查询计算机端口号被谁占用了
  7. linux --- 基础指令
  8. day28 java的IO流 (1)对IO的初步了解
  9. 201671030116 宋菲菲 实验十四 团队项目评审课程学习总结
  10. mysql 外键 150_mysql之创建外键报150错误的处理方法
  11. 凤凰系统运行linux,把凤凰系统装进U盘里,打造PC上的可移动android系统
  12. 百度智能云人脸库的创建与使用
  13. dbf转成excel_怎么样把dbf文件转换成excel/dbf转excle
  14. 同步 IO 和异步 IO
  15. php webm文件头,webm EBML文件头分析
  16. VS2017+海康威视工业相机调用查找不到设备的问题
  17. iOS 技术支持网址
  18. nodejs 做动态网页
  19. mysql中的int(11)到底代表什么意思?
  20. 2020-11-21 芯片测试golang实现

热门文章

  1. 物联卡可以持续使用的时间有多久?
  2. 翰文进度计划软件横道图不显示文字_作为工程新人总是加班?这份工程软件+算量套表直接帮助你,共享...
  3. 鸿蒙系统适配机型_余承东:华为手机鸿蒙系统体验比安卓更好,主流应用已完成适配...
  4. AcWing 837. 连通块中点的数量
  5. c 调用 android jar包,Unity调用AndroidStudio导出的Jar包
  6. Hive Cli 和 Beeline
  7. 因果推断笔记——数据科学领域因果推断案例集锦(九)
  8. django前后端数据交互
  9. java ArrayList倒序
  10. alarm之后调用sleep会这样