1)添加
zadd key score1 member1 score2 member2 ....
2)查看单个元素
查看rank
zrank key member:增序
zrevrank key member:降序
许多zset的命令都会提供增序和降序两个版本,而且默认是增序排序的。
查看score
zscore key member
3)查看整个set
按照rank查看
zrange key start end [withscores]
zrevrange key start end [withscores]
注意,这里是闭区间。通常0表示第一个元素,-1表示倒数第一个元素。
按score查看
zrangebyscore key min max [withscores]
zrevrangebyscore ke max min [withscores]
注意,这里降序是先max再min。默认也是闭区间。
如果想用开区间,可以加一个(
比如:
zrangebyscore k1 (100 (200 withscores
4)查看个数
zcard key:查看整个set的个数
zcount min max:查看分数在[min, max]区间的个数,如果想用开区间,使用(
5)删除
指定name删除:
zrem key member1 member2....
指定rank删除:
zrembyrank key start end
指定score删除:
zremrangebyscore key min max,默认闭区间,如果开区间,使用(
6)修改score
zincrby key increment member
这里increment可以是负数,相当于减
7)union以及inter
union将若干zset取并集,inter取交集,由于二者语法一样,这里只看union的。
zunionstore unionKeyName unionSetNum key1 key2 ... [weights w1 w2 ....] [aggregate sum|min|max]
需要指定新集合的名字以及个数。
可选weight,各个集合的元素的score的乘法因子,默认为1。
可选aggregate,聚合函数,有sum max 和min三种,默认为sum。
例子:
127.0.0.1:6379> zrange k1 0 -1 withscores
1) "a"
2) "1"
3) "b"
4) "2"
5) "c"
6) "3"
127.0.0.1:6379> zrange k2 0 -1 withscores
1) "a"
2) "100"
3) "b"
4) "200"
5) "c"
6) "300"
执行zunionstore:
127.0.0.1:6379> zunionstore union 2 k1 k2 weights 50 1 aggregate sum
(integer) 3
127.0.0.1:6379> zrange union 0 -1 withscores
1) "a"
2) "150"
3) "b"
4) "300"
5) "c"
6) "450"
150 = 1 * 50 + 100
再看min的:
127.0.0.1:6379> zunionstore union1 2 k1 k2 weights 50 1 aggregate min
(integer) 3
127.0.0.1:6379> zrange union1 0 -1 withscores
1) "a"
2) "50"
3) "b"
4) "100"
5) "c"
6) "150"