Redis 命令 - Sorted Sets

时间:2022-07-14 14:50:12

ZADD key score member [score member ...]

Add one or more members to a sorted set, or update its score if it already exists

127.0.0.1:6379> ZADD foo 1 one
(integer) 1
127.0.0.1:6379> ZADD foo 2 two
(integer) 1
127.0.0.1:6379> ZADD foo 3 three
(integer) 1
127.0.0.1:6379> ZRANGE foo 0 -1
1) "one"
2) "two"
3) "three"

More: http://redis.io/commands/zaddhttp://www.redis.cn/commands/zadd.html

ZCARD key

Get the number of members in a sorted set

127.0.0.1:6379> ZRANGE foo 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> ZCARD foo
(integer) 3
127.0.0.1:6379> ZRANGE none 0 -1
(empty list or set)
127.0.0.1:6379> ZCARD none
(integer) 0

More: http://redis.io/commands/zcardhttp://www.redis.cn/commands/zcount.html

ZCOUNT key min max

Count the members in a sorted set with scores within the given values

127.0.0.1:6379> ZADD foo 90 A 80 B 70 C 60 D
(integer) 4
127.0.0.1:6379> ZCOUNT foo 70 80
(integer) 2
127.0.0.1:6379> ZCOUNT foo (70 80
(integer) 1
127.0.0.1:6379> ZCOUNT foo 70 (80
(integer) 1

More: http://redis.io/commands/zcounthttp://www.redis.cn/commands/zcount.html

ZINCRBY key increment member

Increment the score of a member in a sorted set

127.0.0.1:6379> ZADD foo 1 a 2 b
(integer) 2
127.0.0.1:6379> ZINCRBY foo 2 a
"3"
127.0.0.1:6379> ZRANGE foo 0 -1 WITHSCORES
1) "b"
2) "2"
3) "a"
4) "3"

More: http://redis.io/commands/zincrbyhttp://www.redis.cn/commands/zincrby.html

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

Intersect multiple sorted sets and store the resulting sorted set in a new key

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> ZADD bar 1 b 2 c 3 d
(integer) 3
127.0.0.1:6379> ZINTERSTORE result 2 foo bar
(integer) 2
127.0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "b"
2) "3"
3) "c"
4) "5"
127.0.0.1:6379> ZINTERSTORE result 2 foo bar AGGREGATE MAX
(integer) 2
127.0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "b"
2) "2"
3) "c"
4) "3"

More: http://redis.io/commands/zinterstorehttp://www.redis.cn/commands/zinterstore.html

ZLEXCOUNT key min max

Count the number of members in a sorted set between a given lexicographical range

127.0.0.1:6379> ZADD foo 0 r 0 e 0 d 0 i 0 s
(integer) 5
127.0.0.1:6379> ZRANGEBYLEX foo [d (i
1) "d"
2) "e"
127.0.0.1:6379> ZLEXCOUNT foo [d (i
(integer) 2

More: http://redis.io/commands/zlexcount

ZRANGE key start stop [WITHSCORES]

Return a range of members in a sorted set, by index

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> ZRANGE foo 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
127.0.0.1:6379> ZRANGE foo 1 2 WITHSCORES
1) "b"
2) "2"
3) "c"
4) "3"

More: http://redis.io/commands/zrangehttp://www.redis.cn/commands/zrange.html

ZRANGEBYLEX key min max [LIMIT offset count]

Return a range of members in a sorted set, by lexicographical range

127.0.0.1:6379> ZADD foo 0 r 0 e 0 d 0 i 0 s
(integer) 5
127.0.0.1:6379> ZRANGEBYLEX foo [d (i
1) "d"
2) "e"

More: http://redis.io/commands/zrangebylex

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

Return a range of members in a sorted set, by score

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d 5 e
(integer) 5
127.0.0.1:6379> ZRANGEBYSCORE foo -inf +inf
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> ZRANGEBYSCORE foo -inf +inf LIMIT 0 3
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> ZRANGEBYSCORE foo 1 3 WITHSCORES
1) "a"
2) "1"
3) "b"
4) "2"
5) "c"
6) "3"
127.0.0.1:6379> ZRANGEBYSCORE foo (1 3
1) "b"
2) "c"
127.0.0.1:6379> ZRANGEBYSCORE foo 1 (3
1) "a"
2) "b"

More: http://redis.io/commands/zremrangebyscorehttp://www.redis.cn/commands/zrangebyscore.html

ZRANK key member
Determine the index of a member in a sorted set

127.0.0.1:6379> ZADD foo 1 a 2 b 2 c 3 d
(integer) 4
127.0.0.1:6379> ZRANK foo a
(integer) 0
127.0.0.1:6379> ZRANK foo b
(integer) 1
127.0.0.1:6379> ZRANK foo c
(integer) 2
127.0.0.1:6379> ZRANK foo e
(nil)

More: http://redis.io/commands/zrankhttp://www.redis.cn/commands/zrank.html

ZREM key member [member ...]

Remove one or more members from a sorted set

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> ZREM foo b d
(integer) 2
127.0.0.1:6379> ZRANGE foo 0 -1
1) "a"
2) "c"
127.0.0.1:6379> ZREM foo e
(integer) 0

More: http://redis.io/commands/zremhttp://www.redis.cn/commands/zrem.html

ZREMRANGEBYLEX key min max

Remove all members in a sorted set between the given lexicographical range

127.0.0.1:6379> ZADD foo 0 r 0 e 0 d 0 i 0 s
(integer) 5
127.0.0.1:6379> ZREMRANGEBYLEX foo [d (i
(integer) 2
127.0.0.1:6379> ZRANGE foo 0 -1
1) "i"
2) "r"
3) "s"

More: http://redis.io/commands/zremrangebylex

ZREMRANGEBYRANK key start stop

Remove all members in a sorted set within the given indexes

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d 5 e
(integer) 5
127.0.0.1:6379> ZREMRANGEBYRANK foo 0 2
(integer) 3
127.0.0.1:6379> ZRANGE foo 0 -1 WITHSCORES
1) "d"
2) "4"
3) "e"
4) "5"

More: http://redis.io/commands/zremrangebyrankhttp://www.redis.cn/commands/zremrangebyrank.html

ZREMRANGEBYSCORE key min max

Remove all members in a sorted set within the given scores

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d 5 e
(integer) 5
127.0.0.1:6379> ZREMRANGEBYSCORE foo 3 5
(integer) 3
127.0.0.1:6379> ZRANGE foo 0 -1 WITHSCORES
1) "a"
2) "1"
3) "b"
4) "2"

More: http://redis.io/commands/zremrangebyscorehttp://www.redis.cn/commands/zremrangebyscore.html

ZREVRANGE key start stop [WITHSCORES]

Return a range of members in a sorted set, by index, with scores ordered from high to low

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> ZREVRANGE foo 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> ZREVRANGE foo 0 1 WITHSCORES
1) "d"
2) "4"
3) "c"
4) "3"

More: http://redis.io/commands/zrevrangehttp://www.redis.cn/commands/zrevrange.html

ZREVRANGEBYLEX key max min [LIMIT offset count]

Return a range of members in a sorted set, by lexicographical range, ordered from higher to lower strings.

127.0.0.1:6379> ZADD foo 0 r 0 e 0 d 0 i 0 s
(integer) 5
127.0.0.1:6379> ZREVRANGEBYLEX foo (i [d
1) "e"
2) "d"

More: http://redis.io/commands/zrevrangebylex

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

Return a range of members in a sorted set, by score, with scores ordered from high to low

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> ZREVRANGEBYSCORE foo +inf -inf
1) "d"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> ZREVRANGEBYSCORE foo (3 1 WITHSCORES
1) "b"
2) "2"
3) "a"
4) "1"

More: http://redis.io/commands/zrevrangebyscorehttp://www.redis.cn/commands/zrevrangebyscore.html

ZREVRANK key member

Determine the index of a member in a sorted set, with scores ordered from high to low

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 2 d
(integer) 4
127.0.0.1:6379> ZREVRANK foo a
(integer) 3
127.0.0.1:6379> ZREVRANK foo b
(integer) 2
127.0.0.1:6379> ZREVRANK foo c
(integer) 0
127.0.0.1:6379> ZREVRANK foo d
(integer) 1

More: http://redis.io/commands/zrevrankhttp://www.redis.cn/commands/zrevrank.html

ZSCORE key member

Get the score associated with the given member in a sorted set

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c 4 d
(integer) 4
127.0.0.1:6379> ZSCORE foo b
"2"
127.0.0.1:6379> ZSCORE foo e
(nil)

More: http://redis.io/commands/zscorehttp://www.redis.cn/commands/zscore.html

ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

Add multiple sorted sets and store the resulting sorted set in a new key

127.0.0.1:6379> ZADD foo 1 a 2 b 3 c
(integer) 3
127.0.0.1:6379> ZADD bar 1 b 2 c 3 d
(integer) 3
127.0.0.1:6379> ZUNIONSTORE result 2 foo bar
(integer) 4
127.0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "a"
2) "1"
3) "b"
4) "3"
5) "d"
6) "3"
7) "c"
8) "5"
127.0.0.1:6379> ZUNIONSTORE result 2 foo bar AGGREGATE MIN
(integer) 4
127.0.0.1:6379> ZRANGE result 0 -1 WITHSCORES
1) "a"
2) "1"
3) "b"
4) "1"
5) "c"
6) "2"
7) "d"
8) "3"

More: http://redis.io/commands/zunionstorehttp://www.redis.cn/commands/zunionstore.html

ZSCAN key cursor [MATCH pattern] [COUNT count]

Incrementally iterate sorted sets elements and associated scores

More: http://redis.io/commands/zscanhttp://www.redis.cn/commands/sscan.html