(七)Redis数据类型之ZSet(sorted_set)

zadd

zadd key [NX|XX] [CH] [INCR] score member [score member …]

往有序集合中新增成员,需要指定该成员的分数,分数可以是整形或浮点型,当分数相同时候,索引下标按照字典排序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
zadd zset 1 value1 2 value2 3 value3 4 value4

1,2,3,4 表示的是各个元素的分数

Docker:0>zrange zset 0 -1
1) "value1"
2) "value2"
3) "value3"
4) "value4"

Docker:0>zrange zset 0 -1 withscores
1) "value1"
2) "1"
3) "value2"
4) "2"
5) "value3"
6) "3"
7) "value4"
8) "4"

zrange

zrange key start stop [WITHSCORES]

根据下标查看集合内所有成员(及分数),[start,stop]
[0 -1] 表示全部元素

zcard

zcard key

获取有序集合的成员数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Docker:0>zrange zset 0 -1 
1) "value1"
2) "value2"
3) "value3"
4) "value4"
Docker:0>zrange zset 0 -1 withscores
1) "value1"
2) "1"
3) "value2"
4) "2"
5) "value3"
6) "3"
7) "value4"
8) "4"
Docker:0>zcard zset
"4"

zcount

ZCOUNT key min max

从有序集合内获取指定分数区间内的成员数。

1
2
3
4
5
6
7
8
9
10
11
Docker:0>zrange zset 0 -1 withscores
1) "value1"
2) "1"
3) "value2"
4) "2"
5) "value3"
6) "3"
7) "value4"
8) "4"
Docker:0>zcount zset 2 3
"2"

zrank

ZRANK key member

返回有序集合中指定成员的索引(下标):

zrevrange

zrevrange key start stop [WITHSCORES]

与zrange功能类似,不同的是zrevrange会将集合先反序[reverse]之后再执行zrange返回。

zincrby

修改有序集合内成员的分数,将有序集合内成员的分数增加increment分值,increment可以为浮点型整型也可以为负数或正数。

zincrby key increment member

zrem

zrem key member [member …]

从集合中移除指定的成员。