一、概述

  1. redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员。
  2. 不同的是每个元素都会关联一个double类型的分数。
  3. redis正式通过分数来为集合中的重圆进行从小到大的排序。
  4. 有序集合的成员是唯一的,但分数(score)却可以重复。
  5. 集合中最大的成员数为2^32-1。

二、sortedset键的设置

  • 命令名称:zadd
  • 语法:zadd key [NX|XX] [CH] [INCR] score member [score member ...]
  • 功能:
    • 将一个或多个member元素及其score值加入到有序集key当中。
    • 如果某个member已经是有序集的成员,那么更新这个member的score值,并通过重新插入这个member元素,来保证该member在正确的位置上。
    • score值可以是整数值或双精度浮点数。
    • 如果key不存在,则创建一个空的有序集并执行zadd操作。
    • 当key存在但不是有序集类型时,返回一个错误。
  • 返回值:
    • 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员
  • 命令名称:zincrby
  • 语法:zincrby key increment member
  • 功能:
    • 为有序集key的成员member的score值加上增量increment(可负)。
    • 当key不存在,或member不是key的成员时,zincrby等同于zadd
  • 返回值:
    • 当key不是有序集类型时,返回一个错误。member成员的新score值,以字符串形式表示。

三、sortedset键的查询

  • 命令名称:zcard
  • 语法:zcard key
  • 功能:
    • 返回有序集合key的基数(有序集合中元素的数量)
  • 返回值:
    • 当key存在且是有序集类型时,返回有序集的基数。
    • 当key不存在时,返回0
  • 命令名称:zcount
  • 语法:zcount key min max
  • 功能:
    • 返回有序集合key中,score值在min和max之间(默认包括score值等于min或max)的成员的数量。
  • 返回值:
    • score值在min和max之间的成员的数量。
  • 命令名称:zrange
  • 语法:zrange key start stop [withscores]
  • 功能:
    • 返回有序集key中,指定区间内的成员。
    • 其中成员的位置按score值递增(从小到大)来排序。
  • 返回值:
    • 指定区间内,带有score值(可选)的有序集成员的额列表。
  • 命令名称:zrangebyscore
  • 语法:zrangebyscore key min max [withscores] [limit offset count]
  • 功能:
    • 返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列。
  • 返回值:
    • 指定区间内,带有score值(可选)的有序集成员的列表。
  • 命令名称:zrank
  • 语法:zrank key member
  • 功能:
    • 返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。
    • 排名以0为底,也就是说,score值最小的成员排名为0.
  • 返回值:
    • 如果member是有序集key的成员,返回member的排名。
    • 如果member不是有序集key的成员,返回nil。
  • 命令名称:zrevrange
  • 语法:zrevrange key start stop [withscores]
  • 功能:
    • 返回有序集key中,指定区间内的成员。
    • 其中成员的位置按score值递减(从大到小)来排列
  • 返回值:
    • 指定区间内,带有score值(可选)的有序集成员的列表。
  • 命令名称:zrevrangebyscore
  • 语法:zrevrangebyscore key max min [withscores] [limit offset count]
  • 功能:
    • 返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有成员。有序集成员按score值递减(从大到小)的次序排列。
  • 返回值:
    • 指定区间内,带有score值(可选)的有序集成员的列表。
  • 命令名称:zrevrank
  • 语法:zrevrank key member
  • 功能:
    • 返回有序集key中成员member的排名。其中有序集成员按score值递减顺序排列。
    • 排名以0为底,也就是说,score值最小的成员排名为0.
  • 返回值:
    • 如果member是有序集key的成员,返回member的排名。
    • 如果member不是有序集key的成员,返回nil。
  • 命令名称:zscore
  • 语法:zscore key member
  • 功能:
    • 返回有序集key中成员member的score值。
    • 如果member元素不是有序集key的成员,或key不存在,返回nil。
  • 返回值:
    • member成员的score值,以字符串形式表示。
  • 命令名称:zscan
  • 语法:zscan key cursor [match pattern] [count count]
  • 功能:
    • 用于迭代有序集合键中的元素。
  • 返回值:
    • 有序集合成员。
  • 命令名称:zrangebylex
  • 语法:zrangebylex key min max [limit offset count]
  • 功能:
    • 当有序集合的所有成员都具有相同的分值时,有序集合的元素会根据成员的字典序来进行排序,而这个命令则可以返回给定的有序集合键key中,值介于min和max之间的成员。
  • 返回值:
    • 数组回复:一个列表,列表里面包含了有序集合在指定范围内的成员

  • 命令名称:zlexcount
  • 语法:zlexcount key min max
  • 功能:
    • 对于一个所有成员的分值都相同的有序集合键key来说,这个命令会返回该集合中,成员介于min和max范围内的元素数量。
  • 返回值:
    • 整数回复:指定范围内的元素数量。

四、redis有序集合类型并集和交集处理

  • 命令名称:zunionstore
  • 语法:zunionstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
  • 功能:
    • 计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)存到destinaton。
    • 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。
  • 返回值:
    • 保存到destination的结果集的基数。
  • 命令名称:zinterstore
  • 语法:zinterstore destination numkeys key [key……] [weights weight [weight……]] [aggregate sum|min|max]
  • 功能:
    • 计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)存到destinaton。
    • 默认情况下,结果集中某个成员的score值是所有给定集下该成员score值之和。
  • 返回值:
    • 保存到destination的结果集的基数。

五、删除

  • 命令名称:zrem
  • 语法:zrem key member [member……]
  • 功能:
    • 移除有序集key中的一个或多个成员,不存在的成员将被忽略。
    • 当key存在但不是有序集类型时,返回一个错误。
  • 返回值:
    • 被成功移除的成员的数量,不包括别忽略的成员。
  • 命令名称:zremrangebyrank
  • 语法:zremrangebyrank key start stop
  • 功能:
    • 移除有序集key中,指定排名(rank)区间内的所有成员。
    • 区间分别以下标参数start和stop指出,包含start和stop在内。
  • 返回值:
    • 被移除成员的数量。
  • 命令名称:zremrangebyscore
  • 语法:zremrangebyscore key min max
  • 功能:
    • 移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。
  • 返回值:
    • 被移除成员的数量。
  • 命令名称:zremrangebylex
  • 语法:zremrangebylex key min max
  • 功能:
    • 对于一个所有成员的分值都相同的有序集合键key来说,这个命令会移除该集合中,成员介于min和max范围内的所有元素。
  • 返回值:
    • 被移除成员的数量。

redis有序集合数据类型---sortedset的更多相关文章

  1. Redis 有序集合(sorted set)

    Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过分数来为集合中的成员进行从小到大的排序. 有序 ...

  2. redis 有序集合(zset)函数

    redis 有序集合(zset)函数 zAdd 命令/方法/函数 Adds the specified member with a given score to the sorted set stor ...

  3. Redis有序集合

    Redis有序集合类似Redis集合存储在设定值唯一性.不同的是,一个有序集合的每个成员带有分数,用于以便采取有序set命令,从最小的到最大的分数有关. Redis 有序set添加,删除和测试中的O( ...

  4. Redis 有序集合(sorted set),发布订阅,事务,脚本,连接,服务器(三)

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

  5. redis有序集合的使用

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

  6. 数据结构与算法简记--redis有序集合实现-跳跃表

    跳表 定义 为一个值有序的链表建立多级索引,比如每2个节点提取一个节点到上一级,我们把抽出来的那一级叫做索引或索引层.如下图所示,其中down表示down指针,指向下一级节点.以此类推,对于节点数为n ...

  7. 基于redis有序集合,实现简单的延时任务

    基于redis有序集合,实现简单的延时任务 延时任务的场景很多,开发过程中我们经常会遇到,比如说: 1.订单未付款,5分钟后自动取消,这是电商网站非常普遍的需求: 2.用户创建订单不付款,3分钟后自动 ...

  8. redis(十四):Redis 有序集合(sorted set)

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

  9. Redis从基础命令到实战之有序集合类型(SortedSet)

    有序集合类型是Redis五种数据类型中最高级的.也是最复杂的类型.有序集合具有集合类型的特性,在其基础上给每个元素关联了一个分值,或称为权重,操作时既可以在添加元素时指定分值,也可以单独修改集合中某一 ...

随机推荐

  1. I.MX6 dts 在哪里、怎么编译【转】

    本文转载自:https://blog.csdn.net/wangliang888888/article/details/78349224 一.参考文档: 1. [i.MX] 修改了dts之后,如何重新 ...

  2. 使用Eclipse创建Web项目时WEB-INF下找不到web.xml问题详解

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/yjrguxing/article/deta ...

  3. 为什么static成员必须在类外初始化,而不能在类的头文件中初始化

    为什么static成员必须在类外初始化 为什么静态成员不能在类内初始化 在C++中,类的静态成员(static member)必须在类内声明,在类外初始化,像下面这样.   class A { pri ...

  4. sql中去除重复的数据 select distinct * from table

    总的思路就是先找出表中重复数据中的一条数据,插入临时表中,删除所有的重复数据,然后再将临时表中的数据插入表中.所以重点是如何找出重复数据中的一条数据,有三种情况 1.重复数据完全一样,使用distin ...

  5. Linux下文件乱码问题

    通常编码会在windows环境下进行,当把windows下的代码拷贝到linux环境时,会出现 error: “build.sh /bin/bash^M: 坏的解释器:没有那个文件或目录” 等等类似问 ...

  6. 深入Resource实现多语言支持的应用详解

    首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx. Resource1.resx里面如下: Main函数如下:static void Main(){    ...

  7. zookeeper在windows的常用命令

    首先简要讲下安装 安装jdk 安装Zookeeper. 在官网http://zookeeper.apache.org/下载zookeeper.我下载的是zookeeper-3.4.6版本. 解压zoo ...

  8. 解决:error: Cannot find libmysqlclient_r under /usr/local/mysql.

    libodb-mysql-2.4.0.tar.gz 解压完安装libodb-mysql时,执行完./cofigure后,出现如下错误: checking for libmysqlclient_r... ...

  9. python初级 1 内存和变量

    一.回顾: 1.什么是程序 一堆指令的集合 2.回想一下猜数游戏程序的特征: 1)需要输入(input) 2)会处理输入(process) 3)产生输出(output) 二.程序的一般特征:输入.处理 ...

  10. 【428】Dijkstra 算法

    算法思想:(单源最短路径) 1个点到所有其他点的最短路径 查找顶点到其他顶点的最短路径,无法到达的记为+∞,找到最小的,就找到了最短路径的顶点 查看上一轮找到的最小点到达其他点的最小值,找到最短路径的 ...