Bootstrap

Redis系列命令更新--Redis有序集合命令

Redis有序集合(sorted set)

(1)说明:

A、Redis有序集合和集合一样也是string类型元素的集合,且不允许重复的成员;不同的是每个元素都会关联一个double类型的分数;redis正式通过分数来为集合中的成员进行从小到大的排序;有序集合的成员是唯一的,但分数(score)却可以重复;

B、集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1);集合中最大的成员数是2^(32-1)((4294967295, 每个集合可存储40多亿个成员)

(2)实例:

 

 

70e3bd8cc5f22dd05c65c2605e2aafd5.jpeg

 

 

Redis有序集合命令:

1、Redis Zadd命令

(1)说明:Redis Zadd命令用于将一个或多个成员元素及其分数值加入到有序集当中;如果某个成员已经是有序集的成员,那么更新这个成员的分数值,并通过重新插入这个成员元素,来保证成员在正确的位置上;分数值可以是整数值或双精度浮点数;如果有序集合key不存在,则创建一个空的有序集并执行ZADD操作;当key存在但不是有序集类型时,返回一个错误

(2)语法:redis 127.0.0.1:6379> ZADD KEY_NAME SCORE1 VALUE1.. SCOREN VALUEN;返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员

(3)实例:

 

 

049ba8b029e884acf09db5b0dd1493a2.png

 

 

2、Redis Zcard命令

(1)说明:Redis Zcard命令用于计算机集合中元素的数量

(2)语法:redis 127.0.0.1:6379> ZCARD KEY_NAME;当key存在且是有序集类型时,返回有序集的基数;当key不存在时,返回0

(3)实例:

 

 

ab6be4384cd943ab542f877285e43038.png

 

 

3、Redis Zcount命令

(1)说明:Redis Zcount命令用于计算有序集合中指定分数区间的成员数量

(2)语法:redis 127.0.0.1:6379> ZCOUNT key min max;返回分数值在min和max之间的成员的数量

(3)实例:

 

 

8306d5437900d6b337083d82317b3976.png

 

 

4、Redis Zincrby命令

(1)说明:Redis Zincrby命令对有序集合中指定成员的分数加上增量increment;可以通过传递一个负数值increment,让分数减去相应的值,比如ZINCRBY key-5 member,就是让member的score值减去5

当key不存在,或分数不是key的成员时,ZINCRBY key increment member等同于ZADD key increment menber;当key不是有序集类型时,返回一个错误;分数值可以是整数值或双精度浮点数

(2)语法:redis 127.0.0.1:6379> ZINCRBY key increment member;返回member成员的新分数值,以字符串形式表示;

(3)实例:

 

 

a26130242a36f4df5c2b38a47eacd8a0.png

 

 

5、Redis Zinterstore命令

(1)说明:Redis Zinterstore命令计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该交集(结果集)储存到destination;

默认情况下,结果集中某个成员的分数值是所有给定集下该成员分数值之和

(2)语法:redis 127.0.0.1:6379> ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];返回保存到目标结果集的成员数量

(3)实例:

 

 

059f58f3a4442de0777484f0616c6cab.png

 

 

6、Redis Zlexcount命令

(1)说明:Redis Zlexcount命令在计算有序集合中指定字典区间内成员数量

(2)语法:redis 127.0.0.1:6379> ZLEXCOUNT KEY MIN MAX;返回区间内的成员数量

(3)实例:

 

 

81eaf5e8ad85ee6f8e7676e99122bee9.png

 

 

7、Redis Zrange命令

(1)说明:Redis Zrange命令返回有序集中,指定区间内的成员;其中成员的位置按分数值递增(从小到大)来排序;具有相同分数值的成员按字典序(lexicographical order)来排列;如果你需要成员按值递减(从大到小)来排列,请使用ZREVARANGE命令;下标参数start和stop都以0为底,也就是说,以0表示有序集第一个成员,以1表示有序集第二个成员,以此类推;你也可以使用负数下标,以-1表示最后一个成员,-2表示倒数第二个成员,以此类推。

(2)语法:redis 127.0.0.1:6379> ZRANGE key start stop [WITHSCORES];指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

8aa81eabbc456189b3e5a35a09f5bd21.jpeg

 

 

8、Redis Zrangebylex命令

(1)说明:Redis Zrangebylex通过字典区间返回有序集合的成员

(2)语法:redis 127.0.0.1:6379> ZRANGEBYLEX key min max [LIMIT offset count];返回指定区间内的元素列表

(3)实例:

 

 

dc97fb8235a18928affc9cac01c59ca2.png

 

 

9、Redis Zrangebyscore命令

(1)说明:Redis Zrangebyscore命令返回有序集合中指定分数区间的成员列表;有序集成员按分数值递增(从小到大)次序排列;具有相同分数值的成员按字典来排列(该属性是有序集提供的,不需要额外的计算);默认情况下,区间的取值使用闭区间(小于等于或大于等于), 你也可以通过给参数前增加(符号来使用可选的开区间(小于或大于));

(2)语法:redis 127.0.0.1:6379> ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count];返回指定区间内,带有分数值(可选)的有序成员的列表

(3)实例:

A、

 

 

 

 

6ac68bc293794f6e14f148d3051ed024.png

 
 

B、

 

 

 

010f2d785fe14eb793c57c44e365e495.png

 

10、Redis Zrevrange命令

(1)说明:Redis Zrevrange命令返回有序集中,指定区间内的成员;其中成员的位置按分数值递减(从大到小)来排列;具有相同分数值的成员按字典序的逆序排列;除了成员按分数值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样

(2)语法:redis 127.0.0.1:6379> ZREVRANGE key start stop [WITHSCORES];返回指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

d1f07a3674bc51930d34835ffb1300d3.png

 

 

11、Redis Zrevrangebyscore命令

(1)说明:Redis Zravangebyscore返回有序集中指定分数区间内的所有的成员;有序集成员按分数值递减(从大到小)的次序排列;具有相同分数值的成员按字典的逆序排列;除了成员按分数值递减的次序排列这一点外,ZREVRANGEBYSCORE 命令的其他方面和 ZRANGEBYSCORE 命令一样。

(2)语法:redis 127.0.0.1:6379> ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count];返回指定区间内,带有分数值(可选)的有序集成员的列表

(3)实例:

 

 

ed57d9262e62ec96a36cdd497b846262.png

 

 

12、Redis Zrevrank命令

(1)说明:Redis Zrevrank命令返回有序集中成员的排名;其中有序集成员按分数值递减(从大到小)排序,排序以0为底,也就是说,分数值最大的成员排名为0;使用ZRANK命令可以获得成员按分数值递增排列的排名(从小到大)

(2)语法:redis 127.0.0.1:6379> ZREVRANK key member;如果成员是有序集key的成员,返回成员的排名;如果成员不是有序集key的成员,返回nil

(3)实例:

 

 

d29fc0e67b9199b595ea05ca50823ecc.png

 

 

13、Redis Zscore命令

(1)说明:Redis Zscore命令返回有序集中,成员的分数值;如果成员元素不是有序集key的成员,或key不存在,返回nil

2)语法:redis 127.0.0.1:6379> ZSCORE key member;返回成员的分数值,以字符串的形式表示

(3)实例:

 

 

 

49337b1cb30f929fe2a9ee615a3eeb2b.png

 

14、Redis Zunionstore命令

(1)说明:Redis Zunionstore命令计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)储存到destination;默认情况下,结果几种某个成员的分数值是所有给定集下该成员分数值之和

(2)语法:redis 127.0.0.1:6379> ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX];返回保存到destination的结果集的成员数量

(3)实例:

 

 

6683df20e54d5d5e7ead555f1f13c7bb.jpeg

 

 

15、Redis Zscan命令

(1)说明:Redis Zscan命令用于迭代有序集合中的元素(包含元素成员和元素分值)

(2)语法:redis 127.0.0.1:6379> ZSCAN key cursor [MATCH pattern] [COUNT count];返回的每个元素都是有序集合元素,一个有序集合元素由一个成员和一个分值组成

 

 

以上的内容来源于菜鸟教程,都是从里面总结并且通过自己亲自操作截图整理的,希望对你有帮助。

 

;