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

Redis sorted set(有序集合)的更多相关文章

  1. Redis之Sorted Set 有序集合

    Redis Sorted Set 有序集合 Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分 ...

  2. Redis的Sorted Set有序集合命令

    Sorted Set是Set的一个升级版本,它在Set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序.可以理解为有两列的mysql表, ...

  3. 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表

    python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...

  4. Redis 源码简洁剖析 04 - Sorted Set 有序集合

    Sorted Set 是什么 Sorted Set 命令及实现方法 Sorted Set 数据结构 跳表(skiplist) 跳表节点的结构定义 跳表的定义 跳表节点查询 层数设置 跳表插入节点 zs ...

  5. (PHP)redis Zset(有序集合 sorted set)操作

    /** * * Zset操作 * sorted set操作 * 有序集合 * sorted set 它在set的基础上增加了一个顺序属性,这一属性在修改添加元素的时候可以指定,每次指定后,zset会自 ...

  6. 9、Redis五大数据类型---有序集合Zset(sorted set)

    一.简介 zset与set异同 相同之处: 都是没有重复元素的字符串集合 不同之处: 有序集合zset的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排 ...

  7. redis:php-redis中有序集合 zset的使用

    ZSET(stored set) 和 set 一样是字符串的集合,不同的是每个元素都会关联一个 double 类型的 score .实现使用的是 skip list 和 hash table , sk ...

  8. redis 系列14 有序集合对象

    一. 有序集合概述 Redis 有序集合对象和集合对象一样也是string类型元素的集合,且不允许重复的成员.不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员 ...

  9. Redis学习---Redis操作之有序集合

    有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值,即:值和分数,分数专门用来做排序. zadd(name, *args, **kw ...

  10. redis列表和有序集合

    redis中的list数据类型是可以插入重复数据的,有去重的需求的话可以用redis有序集合数据类型 Redis Zadd 命令用于将一个或多个成员元素及其分数值加入到有序集当中. 如果某个成员已经是 ...

随机推荐

  1. Zigbee协议栈--Z-Stack的使用

    使用方法简介:一般情况下用户只需要额外添加三个文件就可以完成一个项目.一个是主文件,存放具体的任务事件处理函数:一个是这个主文件的头文件:另外一个是以Osal开头的操作系统接口文件,是专门存放任务处理 ...

  2. win7 64位搭建Mantis 缺陷管理系统(2)

    建立Bug数据库 1. 右键Windows托盘的图标,选择“Local Web”,(或者在IE地址中输入“http://127.0.0.1/”)可看到如下页面: 2. 点击选择“mantis”,进入页 ...

  3. java:Socket介绍(一)

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单 ...

  4. openstack 创建镜像生成虚拟机不知道密码如何解决

    背景: openstack juno版本,使用glance创建centos7镜像,然后生成虚拟机. 操作步骤: 首先获取镜像http://cloud.centos.org/centos/7/image ...

  5. Advanced R之函数

    转载请注明出处,谢谢. 再次声明下,本人水平有些,错误之处敬请指正. 函数 函数是R基本的块结构单元:为了掌握本书中的更高级技术,你需要对函数有扎实的了解.也许你已经写过一些函数,并了解函数的基本知识 ...

  6. 【245】◀▶IEW-Unit10

    Unit 10 Censorship 1. Model1题目及范文分析 Some parents believe that there is no harm in allowing their chi ...

  7. python斐波拉契数列

    def fib(max): n, a, b = 0, 0, 1 while n < max: print(b) a, b = b, a + b n = n + 1 return 'done' 注 ...

  8. iview组件select之默认展示label,并传空value做方法入参

    要求: 默认查询操作日期在当日的数据:(打开页面时默认选中时间.全部) 后台约定:选定“全部”这个条件,传的值是空"" 综上:使用select选择框的v-model绑定数据,使用: ...

  9. (六)编写基类BaseDao

    在action中继承了ActionSupport和其它一些公共属性,如selectedRow等:可能以后还会产生更多公共的内容,所以应该把这些共有的抽取出来,放入到一个基本action中,我们命名为B ...

  10. python脚本修改hosts文件

    用python3写了个修改hosts的小脚本,没有技术含量,顺带复习一下文件操作和os.sys模块的内容了. # -*- coding:utf-8 -*- #!/usr/bin/env python ...