Sorted-Sets和Sets类型极为相似,它们都是字符串的集合,都不允许重复的成员出现在一个Set中。它们之间的主要差别是Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。然而需要额外指出的是,尽管Sorted-Sets中的成员必须是唯一的,但是分数(score)却是可以重复的。
  在Sorted-Set中添加、删除或更新一个成员都是非常快速的操作,其时间复杂度为集合中成员数量的对数。由于Sorted-Sets中的成员在集合中的位置是有序的,因此,即便是访问位于集合中部的成员也仍然是非常高效的。事实上,Redis所具有的这一特征在很多其它类型的数据库中是很难实现的,换句话说,在该点上要想达到和Redis同样的高效,在其它数据库中进行建模是非常困难的。

1、ZADD key score member [score] [member]

增加多个成员

127.0.0.1:> zadd CountryPower  America  China  Russia  Brazil  Japan
(integer)
127.0.0.1:> zrange CountryPower - withscores
) "Brazil"
) ""
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""

2、ZREM key member [member ...]

该命令将移除参数中指定的成员,其中不存在的成员将被忽略。

127.0.0.1:> zrange CountryPower  - withscores
) "Brazil"
) ""
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zrem CountryPower Brazil Japan
(integer)
127.0.0.1:> zrange CountryPower - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""

3、ZINCRBY key increment member

为key中的member加指定分数(increment)

127.0.0.1:> zrange CountryPower  - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zincrby CountryPower China //为中国增加5点
""
127.0.0.1:> zrange CountryPower - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""

4、ZSCORE key member

获取指定Key的指定成员的分数

127.0.0.1:> zrange CountryPower  - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zscore CountryPower China
""

5、ZRANK key member

返回成员在列表中的下标

127.0.0.1:> zrange CountryPower  - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zrank CountryPower Russia
(integer)

6、ZREVRANK key member 

该命令的功能和ZRANK基本相同,唯一的差别在于该命令获取的索引是从高到低排序后的位置,同样0表示第一个元素,即分数最高的成员。

127.0.0.1:> zrange CountryPower  - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zrank CountryPower America
(integer)
127.0.0.1:> zrevrank CountryPower America
(integer)

7、ZCARD key

成员数量

127.0.0.1:> zrange CountryPower  - withscores
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zcard CountryPower
(integer)

8、ZCOUNT key min max

计算分数在min与max之间的成员数量。针对min和max参数需要额外说明的是,-inf和+inf分别表示Sorted-Sets中分数的最高值和最低值。缺省情况下,min和max表示的范围是闭区间范围,即min <= score <= max内的成员将被返回。然而我们可以通过在min和max的前面添加"("字符来表示开区间,如(min max表示min < score <= max,而(min (max表示min < score < max。

127.0.0.1:> zrange CountryPower  - withscores
) "France"
) ""
) "German"
) ""
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zcount CountryPower +inf //从90分到最高分
(integer)
127.0.0.1:> zcount CountryPower -inf //从最低分到90分
(integer)
127.0.0.1:> zcount CountryPower //从85分(包含)到89分(包含)
(integer)
127.0.0.1:> zcount CountryPower ( ( //从85分(不包含)到89分(不包含)
(integer)

----------------------  范围筛选  ----------------------

9、ZRANGE key start stop [WITHSCORES] 

截取范围内的成员(自选带分数)

127.0.0.1:> zrange CountryPower  - withscores
) "France"
) ""
) "German"
) ""
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""

10、ZREVRANGE key start stop [WITHSCORES]

该命令的功能和ZRANGE基本相同,唯一的差别在于该命令是通过反向排序获取指定位置的成员,即从高到低的顺序。

127.0.0.1:> zrevrange CountryPower  - withscores
) "America"
) ""
) "Russia"
) ""
) "China"
) ""
) "Japan"
) ""
) "German"
) ""
) "France"
) ""

11、ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 

返回分数满足表达式min <= score <= max的成员,其中返回的成员是按照其分数从低到高的顺序返回,如果成员具有相同的分数,则按成员的字典顺序返回。LIMIT用于限制返回成员的数量范围。可选参数offset表示从符合条件的第offset个成员开始返回,同时返回count个成员。参数中min和max的规则可参照命令ZCOUNT

127.0.0.1:> zrevrange CountryPower  - withscores
) "America"
) ""
) "Russia"
) ""
) "China"
) ""
) "Japan"
) ""
) "German"
) ""
) "France"
) ""
127.0.0.1:> zrangebyscore CountryPower withscores //95 97 99
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zrangebyscore CountryPower withscores limit //从取得的结果,从下标为1开始取,取2个
) "Russia"
) ""
) "America"
) ""

12、ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]

该命令除了排序方式是基于从高到低的分数排序之外,其它功能和参数含义均与ZRANGEBYSCORE相同。

127.0.0.1:> zrevrangebyscore CountryPower   withscores
) "America"
) ""
) "Russia"
) ""
) "China"
) ""
127.0.0.1:> zrevrangebyscore CountryPower withscores limit
) "America"
) ""
) "Russia"
) ""

-------------  批量删除 -------------

13、ZREMRANGEBYRANK key start stop

删除索引位置位于start和stop之间的成员,start和stop都是0-based,即0表示分数最低的成员,-1表示最后一个成员,即分数最高的成员。

127.0.0.1:> zrange CountryPower  - withscores
) "France"
) ""
) "German"
) ""
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zremrangebyrank CountryPower
(integer)
127.0.0.1:> zrange CountryPower - withscores
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""

14、ZREMRANGEBYSCORE key min max

删除分数在min和max之间的所有成员,即满足表达式min <= score <= max的所有成员。对于min和max参数,可以采用开区间的方式表示,具体规则参照ZCOUNT。

127.0.0.1:> zrange CountryPower  - withscores
) "Japan"
) ""
) "China"
) ""
) "Russia"
) ""
) "America"
) ""
127.0.0.1:> zremrangebyscore CountryPower -inf //删除95分(含)以下的
(integer)
127.0.0.1:> zrange CountryPower - withscores
) "Russia"
) ""
) "America"
) ""

7.Redis常用命令:ZSet的更多相关文章

  1. Redis常用命令

    Redis常用命令Redis提供了丰富的命令对数据库和各种数据类型进行操作,这些命令可以再Linux终端使用.1.键值相关命令2.服务器相关命令 一.键值相关命令 1.get get 键值 当 key ...

  2. 第2讲 Redis常用命令与高级应用

    目录 一.redis数据类型 5. sorted sets类型和操作 二.Redis常用命令 1.键值相关命令 2.服务器相关命令 三. redis高级应用 1. 给redis服务器设置密码 2.持久 ...

  3. Redis常用命令与高级应用

    附: 127.0.0.1:6379> set xiaofei 小飞 OK 127.0.0.1:6379> get xiaofei "\xe5\xb0\x8f\xe9\xa3\x9 ...

  4. Redis快速起步及Redis常用命令大全

    本系列教程内容提要 Java工程师之Redis实战系列教程教程是一个学习教程,是关于Java工程师的Redis知识的实战系列教程,本系列教程均以解决特定问题为目标,使用Redis快速解决在实际生产中的 ...

  5. Redis常用命令手册:服务器相关命令

    Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用.在编程时,比如各类语言包,这些命令都有对应的方法.下面将Redis提供的命令做一 ...

  6. redis redis常用命令及内存分析总结(附RedisClient工具简介

    redis常用命令及内存分析总结(附RedisClient工具简介 by:授客 QQ:1033553122 redis-cli工具 查看帮助 连接redis数据库 常用命令 exists key se ...

  7. redis配置密码 redis常用命令

    redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 [plain] view plain copy   #requi ...

  8. redis常用命令及持久化机制

    redis  常用命令 查找redis服务文件 find / -name  redis-server 查找配置文件 find / -name redis.conf 启动服务时候,要指定配置文件 启动r ...

  9. Redis 常用命令 大全

    Redis 常用命令 发现几个很好的 Redis 常用命令汇总大全网页,分享给小伙伴们~ 1.Redis 命令参考 http://redisdoc.com/string/index.html 2.W3 ...

  10. No-sql之redis常用命令

    转自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介绍 Redis是一种基于内存存储的key-val ...

随机推荐

  1. js五种设计模式说明与示例

    第一种模式:js工厂模式    var lev=function(){        return "啊打";      };      function Parent(){    ...

  2. shell 获取指定目录下文件名

    有两个目录a.b,两个文件夹目录里有一些文件的文件名是一样,不过后缀名不同,我想把a文件夹下跟b文件夹里相同文件名的文件覆盖到b去,并删除b里同名而不同后缀的文件,文件很多    #!/bin/bas ...

  3. JS完成页面跳转并传参的方法|附加:循环遍历对象

    此方法只能传递较少参数 方法如下: <a href='page/index.html'>跳转</a> 以上是正常写法,如果要传参按一下写法: <!--参数写在?后面,多个 ...

  4. Java设计模式之《桥接模式》及应用场景

    摘要: 原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6497919.html 这里摘抄一份他处的概念,你可以不必理会,先看下面得讲解与实例, ...

  5. iOS性能检测之Instrunments - 几种常用工具简单介绍

    Instrunments:  没错,就是这货,很多人平时开发可能不一定会用到这个,但我要说的是,学会使用它,会让你加分不少哦 先来一张全家福: 1.打开方式 或者 两种方式都行. 2.今天主要介绍一下 ...

  6. Java程序员入门:程序员究竟可以干多少年?

    很多人都说程序员是青春饭,只能干到30岁. 然而事实真的如此么? 今天我们来探讨一下这个老话题,看看为了技术与编程执着究竟能走多远? 01年龄分布图 先来看一下程序员的年龄分布图: 我们可以看到程序员 ...

  7. 前端基本知识(四):JS的异步模式:1、回调函数;2、事件监听;3、观察者模式;4、promise对象

    JavaScript语言将任务的执行模式可以分成两种:同步(Synchronous)和异步(Asychronous). “同步模式”就是一个任务完成之后,后边跟着一个任务接着执行:程序的执行顺序和排列 ...

  8. Debian/Ubuntu安装Oracle客户端TNS

    本文作为新手在Linux上部署Java程序的必经之路的Oracle客户端配置,请高手绕道. 确定服务器版本 首选确定你的Oracle服务器版本,以便下载相应的客户端.查看的sql如下: select ...

  9. solr笔记之solr下载及安装

    在学习solr过程中,磕磕碰碰,遇到过许多问题,所以特写下笔记,以供需要的时候时常翻阅,也给能看到该博文的博友提供一个不全面的参考. 一.solr简介: Solr是一个独立的企业及搜索应用服务器,它对 ...

  10. 每天一个Linux命令 4

    Linux系统关机命令 shutdown -h 时间 init 0 poweroff Linux系统注销命令 logout 或者是快捷键 Ctrl+d Linux系统重启命令 reboot Linux ...