目录
Redis之sorted set 命令
1.zrevrank
Zrevrank 命令返回有序集中成员的排名;
其中有序集成员按分数值递减(从大到小)排序;
排名以 0 为底,也就是说, 分数值最大的成员排名为 0 ;
使用 ZRANK 命令可以获得成员按分数值递增(从小到大)排列的排名;
如果成员是有序集 key 的成员,返回成员的排名。 如果成员不是有序集 key 的成员,返回 nil
ZREVRANK key member
2.zlexcount
命令在计算有序集合中指定字典区间内成员数量;
返回指定区间内的成员数量
ZLEXCOUNT KEY MIN MAX
3.zunionstore
命令计算给定的一个或多个有序集的并集,其中给定 key 的数量必须以 numkeys 参数指定,并将该并集(结果集)储存到 destination;
默认情况下,如果给定的集合中key相同时,结果集中该成员的分数值是所有给定集下该成员分数值之和 ;
使用WEIGHTS选项,你可以为每个给定的有序集指定一个乘法因子,意思就是,每个给定有序集的所有成员的score值在传递给聚合函数之前都要先乘以该因子;如果WEIGHTS没有给定,默认就是1;
使用AGGREGATE选项,你可以指定并集的结果集的聚合方式;默认使用的参数SUM,可以将所有集合中某个成员的score值之和作为结果集中该成员的score值。如果给定的集合中key相同时,如果使用参数MIN或者MAX,结果集就是所有集合中元素最小或最大的元素;
如果key destination存在,就被覆盖返回保存到 destination 的结果集的成员数量;
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
以下紧接着上面的
4.zremrangebyrank
命令用于移除有序集中,指定排名(rank)区间内的所有成员
返回被移除成员的数量,如果给定的key不存在或者范围不正确返回0
ZREMRANGEBYRANK key start stop
5.zcard
命令用于计算集合中元素的数量;
当 key 存在且是有序集类型时,返回集合中元素的数量。 当 key 不存在时,返回 0
ZCARD KEY_NAME
6.zinterstore
命令计算给定的一个或多个有序集的交集,其中给定 key 的数量必须以 numkeys 参数指定,并将该交集(结果集)储存到 destination ;
默认情况下,如果给定的集合中key相同时,结果集中某个成员的分数值是所有给定集下该成员分数值之和;
返回保存到目标结果集的的成员数量
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
7.zrank
返回有序集中指定成员的排名,其中有序集成员按分数值递增(从小到大)顺序排列;
如果成员是有序集 key 的成员,返回 member 的排名。 如果成员不是有序集 key 的成员,返回 nil
ZRANK key member
8.zincrby
命令对有序集合中指定成员的分数加上增量 increment;
可以通过传递一个负数值 increment ,让分数减去相应的值,比如 ZINCRBY key -5 member ,就是让 member 的 score 值减去 5 ;
当 key 不存在,或分数不是 key 的成员时, ZICRBY key increment member 等同于 ZADD key increment member ;
当 key 不是有序集类型时,返回一个错误;
分数值可以是整数值或双精度浮点数;
返回member 成员的新分数值,以字符串形式表示
ZINCRBY key increment member
9.zrangebyscore
返回有序集合中指定分数区间的成员列表,有序集成员按分数值递增(从小到大)次序排列;
具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算);
默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于);
返回指定区间内,带有分数值(可选)的有序集成员的列表;
举个例子:
ZRANGEBYSCORE zset (1 5
返回所有符合条件 1 < score <= 5 的成员,
而ZRANGEBYSCORE zset (5 (10
则返回所有符合条件 5 < score < 10 的成员
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
ZRANGEBYSCORE salary -inf +inf WITHSCORES # 显示整个有序集及成员的 score 值
ZRANGEBYSCORE salary -inf 5000 WITHSCORES # 显示工资 <=5000 的所有成员
ZRANGEBYSCORE salary (5000 400000 # 显示工资大于 5000 小于等于 400000 的成员
10.zcount
用于计算有序集合中指定分数区间的成员数量;
返回分数值在 min 和 max 之间的成员的数量
ZCOUNT key min max
11.zrevrange
命令返回有序集中,指定区间内的成员;
其中成员的位置按分数值递减(从大到小)来排列;
具有相同分数值的成员按字典序的逆序(reverse lexicographical order)排列;
返回指定区间内,带有分数值(可选)的有序集成员的列表
ZREVRANGE key start stop [WITHSCORES]
12.zrevrangebyscore
返回有序集中指定分数区间内的所有的成员。有序集成员按分数值递减(从大到小)的次序排列;
具有相同分数值的成员按字典序的逆序(reverse lexicographical order )排列;
返回指定区间内,带有分数值(可选)的有序集成员的列表
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
13.zscan
用于迭代有序集合中的元素(包括元素成员和元素分值);
返回的每个元素都是一个有序集合元素,一个有序集合元素由一个成员(member)和一个分值(score)组成;
cursor表示本次扫描的开始游标,可以理解成从开始索引。
pattern表示正则表达式
count表示希望返回的个数,实际返回个数会围绕该数波动,返回的个数可能等于该值也可能有一定出入,默认为10
ZSCAN key cursor [MATCH pattern] [COUNT count]
14.zremrangebyscore
命令用于移除有序集中,指定分数(score)区间内的所有成员;
返回被移除成员的数量
ZREMRANGEBYSCORE key min max
ZREMRANGEBYSCORE salary 1500 3500 # 移除所有薪水在 1500 到 3500 内的员工
15.zrangebylex
通过字典区间返回有序集合的成员;
返回指定区间内的元素列表
ZRANGEBYLEX key min max [LIMIT offset count]
16.zcore
命令返回有序集中,成员的分数值。 如果成员元素不是有序集 key 的成员,或 key 不存在,返回 nil ;
成员的分数值,以字符串形式表示
ZSCORE key member