# ZSet Commands
# zadd
支持:是
说明:用于将一个或多个成员添加到有序集合中,或者更新已存在成员的 score 值
示例:
ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...] Top of Form > ZADD myzset 1 "one" (integer) 1 > ZADD myzset 1 "uno" (integer) 1 > ZADD myzset 2 "two" 3 "three" (integer) 2 > ZRANGE myzset 0 -1 WITHSCORES 1) "one" 2) "1" 3) "uno" 4) "1" 5) "two" 6) "2" 7) "three" 8) "3"
# zcard
支持:是
说明:当key存在且是有序集类型时,返回有序集的基数(元素个数)。当key不存在时,返回0
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZCARD myzset (integer) 2
# zcount
支持:是
说明:用于统计有序集合中指定 score 值范围内的元素个数
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZCOUNT myzset -inf +inf (integer) 3 > ZCOUNT myzset (1 3 (integer) 2
# zincrby
支持:是
说明:为有序集key的成员member的score值加上增量increment
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZINCRBY myzset 2 "one" "3" > ZRANGE myzset 0 -1 WITHSCORES 1) "two" 2) "2" 3) "one" 4) "3"
# zinterstore
支持:是
说明:求两个或者多个有序集合的交集,并将所得结果存储在新的 key 中
示例:
> ZADD zset1 1 "one" (integer) 1 > ZADD zset1 2 "two" (integer) 1 > ZADD zset2 1 "one" (integer) 1 > ZADD zset2 2 "two" (integer) 1 > ZADD zset2 3 "three" (integer) 1 > ZINTERSTORE out 2 zset1 zset2 WEIGHTS 2 3 (integer) 2 > ZRANGE out 0 -1 WITHSCORES 1) "one" 2) "5" 3) "two" 4) "10"
# zlexcount
支持:是
说明:返回指定范围内的元素数量,ZLEXCOUNT key min max会返回成员介于min和max范围内的元素数量
示例:
> ZADD myzset 0 a 0 b 0 c 0 d 0 e (integer) 5 > ZADD myzset 0 f 0 g (integer) 2 > ZLEXCOUNT myzset - + (integer) 7 > ZLEXCOUNT myzset [b [f (integer) 5
# zpopmin
支持:是
说明:弹出分值最低的count个成员, 回被弹出元素的成员和分值
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZPOPMIN myzset 1) "one" 2) "1"
# zpopmax
支持:是
说明:弹出分值最高的count个成员, 回被弹出元素的成员和分值
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZPOPMAX myzset 1) "three" 2) "3"
# zrange
支持:是
说明:返回有序集合中指定索引区间内的成员数量
示例:
> ZADD myzset 1 "one" 2 "two" 3 "three" (integer) 3 > ZRANGE myzset 0 -1 1) "one" 2) "two" 3) "three" > ZRANGE myzset 2 3 1) "three" > ZRANGE myzset -2 -1 1) "two" 2) "three" > ZRANGE myzset 0 1 WITHSCORES 1) "one" 2) "1" 3) "two" 4) "2" > ZRANGE myzset (1 +inf BYSCORE LIMIT 1 1 (error) ERR value is not an integer or out of range
# zrangebylex
支持:是
说明:返回按字典序来进行排序有序集中指定字典区间内的成员数量
示例:
> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g (integer) 7 > ZRANGEBYLEX myzset - [c 1) "a" 2) "b" 3) "c" > ZRANGEBYLEX myzset - (c 1) "a" 2) "b" > ZRANGEBYLEX myzset [aaa (g 1) "b" 2) "c" 3) "d" 4) "e" 5) "f" # 以(或[开始,指定范围项分别是不包含的还是包含的
# zrangebyscore
支持:是
说明:返回有序集合中指定score区间内的成员
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZRANGEBYSCORE myzset -inf +inf 1) "one" 2) "two" 3) "three" > ZRANGEBYSCORE myzset 1 2 1) "one" 2) "two" > ZRANGEBYSCORE myzset (1 2 1) "two" > ZRANGEBYSCORE myzset (1 (2
# zrank
支持:是
说明:返回有序集合中指定成员的排名
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZRANK myzset "three" (integer) 2 > ZRANK myzset "four" (nil) > ZRANK myzset "three" WITHSCORE (error) ERR wrong number of arguments for command > ZRANK myzset "four" WITHSCORE
# zrem
支持:是
说明:移除有序集合中的一个或多个成员
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREM myzset "two" (integer) 1 > ZRANGE myzset 0 -1 WITHSCORES 1) "one" 2) "1" 3) "three" 4) "3"
# zremrangebylex
支持:是
说明:移除有序集合中指定长度区间内的所有成员
示例:
> ZADD myzset 0 aaaa 0 b 0 c 0 d 0 e (integer) 5 > ZADD myzset 0 foo 0 zap 0 zip 0 ALPHA 0 alpha (integer) 5 > ZRANGE myzset 0 -1 1) "ALPHA" 2) "aaaa" 3) "alpha" 4) "b" 5) "c" 6) "d" 7) "e" 8) "foo" 9) "zap" 10) "zip" > ZREMRANGEBYLEX myzset [alpha [omega (integer) 6 > ZRANGE myzset 0 -1 1) "ALPHA" 2) "aaaa" 3) "zap" 4) "zip"
# zremrangebyrank
支持:是
说明:移除有序集合中指定排名区间内的所有成员
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREMRANGEBYRANK myzset 0 1 (integer) 2 > ZRANGE myzset 0 -1 WITHSCORES 1) "three" 2) "3"
# zremrangebyscore
支持:是
说明:移除有序集合中指定分数区间内的所有成员
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREMRANGEBYSCORE myzset -inf (2 (integer) 1 > ZRANGE myzset 0 -1 WITHSCORES 1) "two" 2) "2" 3) "three" 4) "3"
# zrevrange
支持:是
说明:返回有序集中指定区间内的成员,成员按score递减的次序排列
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREVRANGE myzset 0 -1 1) "three" 2) "two" 3) "one" > ZREVRANGE myzset 2 3 1) "one" > ZREVRANGE myzset -2 -1 1) "two" 2) "one"
# zrevrangebylex
支持:是
说明:返回给定的按字典序来进行排序集合键key中,值介于min和max之间的成员
示例:
> ZADD myzset 0 a 0 b 0 c 0 d 0 e 0 f 0 g (integer) 7 > ZREVRANGEBYLEX myzset [c - 1) "c" 2) "b" 3) "a" > ZREVRANGEBYLEX myzset (c - 1) "b" 2) "a" > ZREVRANGEBYLEX myzset (g [aaa 1) "f" 2) "e" 3) "d" 4) "c" 5) "b"
# zrevrangebyscore
支持:是
说明:返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增次序排列。
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREVRANGEBYSCORE myzset +inf -inf 1) "three" 2) "two" 3) "one" > ZREVRANGEBYSCORE myzset 2 1 1) "two" 2) "one" > ZREVRANGEBYSCORE myzset 2 (1 1) "two" > ZREVRANGEBYSCORE myzset (2 (1 (empty array)
# zscan
支持:是
说明:对元素进行增量迭代
示例:
> keys * 1) "testzadd" > zcard testzadd (integer) 2560 > zscan testzadd 0 match "1*" 1) "10" 2) 1) "1\x17\xf4\x9f\xcck\x8b\xd4R\xff" 2) "742" > zscan testzadd 0 count 1 1) "1" 2) 1) "\xe9\xcf\xacW\x84#C\x8c\n\xb7" 2) "385"
# zscore
支持:是
说明:返回有序集中,指定成员的分数值
示例:
> ZADD myzset 1 "one" (integer) 1 > ZSCORE myzset "one" "1"
# zrevrank
支持:是
说明:返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
示例:
> ZADD myzset 1 "one" (integer) 1 > ZADD myzset 2 "two" (integer) 1 > ZADD myzset 3 "three" (integer) 1 > ZREVRANK myzset "one" (integer) 2 > ZREVRANK myzset "four" (nil) > ZREVRANK myzset "three" WITHSCORE 1) (integer) 0 2) "3" > ZREVRANK myzset "four" WITHSCORE (nil)
# zunionstore
支持:是
说明:求两个或多个有序集合的并集,并将返回结果存储在新的 key 中
示例:
> ZADD zset1 1 "one" (integer) 1 > ZADD zset1 2 "two" (integer) 1 > ZADD zset2 1 "one" (integer) 1 > ZADD zset2 2 "two" (integer) 1 > ZADD zset2 3 "three" (integer) 1 > ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 2 3 (integer) 3 > ZRANGE out 0 -1 WITHSCORES 1) "one" 2) "5" 3) "three" 4) "9" 5) "two" 6) "10"
# bzpopmin
支持:是
说明:从一个或多个有序集合中弹出分数最低的元素
示例:
> ZADD zset1 0 a 1 b 2 c (integer) 3 > BZPOPMIN zset1 zset2 0 1) "zset1" 2) "a" 3) "0"
# bzpopmax
支持:是
说明:从一个或多个有序集合中弹出分数最高的元素
示例:
> ZADD zset1 0 a 1 b 2 c (integer) 3 > BZPOPMAX zset1 zset2 0 1) "zset1" 2) "c" 3) "2"