order set 有序集合

作者:吴泽鑫 分类: Redis 发布于:2015-11-1 22:45 ė751次浏览 60条评论

zadd key score1 value1 score2 value2 ..

作用:添加元素

例子:

127.0.0.1:6379>  zadd score 10 stu1 90 stu2 100 stu3 20 stu4
(integer) 4
127.0.0.1:6379> zrange score 0 5
1) "stu1"
2) "stu4"
3) "stu2"
4) "stu3"


zrem key value1 value2 ..

作用: 删除集合中的元素

例子:

127.0.0.1:6379> zrem score stu1 stu2
(integer) 2
127.0.0.1:6379> zrange score 0 5
1) "stu4"
2) "stu3"


zremrangebyscore key min max

作用: 按照socre来删除元素,删除score在[min,max]之间的

例子:

127.0.0.1:6379> zadd score 10 stu1 90 stu2 100 stu3 20 stu4
(integer) 4
127.0.0.1:6379> zremrangebyscore score 10 30
(integer) 2
127.0.0.1:6379> zrange score 0 5
1) "stu2"
2) "stu3"


zremrangebyrank key start end

作用: 按排名删除元素,删除名次在[start,end]之间的

例子:

127.0.0.1:6379> zadd age 24 s1 22 s2 25 s3
(integer) 3
127.0.0.1:6379> zrange age 0 3
1) "s2"
2) "s1"
3) "s3"
127.0.0.1:6379> zremrangebyrank score 1 2
(integer) 1
127.0.0.1:6379> zrange score 0 5
1) "stu2"


zrank key member

查询member的排名(升续 0名开始)

例子:

127.0.0.1:6379> zadd score 10 stu1 90 stu2 100 stu3 20 stu4
(integer) 4
127.0.0.1:6379> zrank score stu1
(integer) 0
127.0.0.1:6379> zrank score stu3
(integer) 3
127.0.0.1:6379> zrank score stu2
(integer) 2
127.0.0.1:6379> zrank score stu4
(integer) 1


zrevrank key memeber

查询 member的排名(降续 0名开始)

例子:

127.0.0.1:6379> zadd score 10 stu1 90 stu2 100 stu3 20 stu4
(integer) 4
127.0.0.1:6379> zrevrank score stu3
(integer) 0
127.0.0.1:6379> zrevrank score stu2
(integer) 1
127.0.0.1:6379> zrevrank score stu1
(integer) 3


ZRANGE key start stop [WITHSCORES]

把集合排序后,返回名次[start,stop]的元素

默认是升续排列

Withscores 是把score也打印出来

例子:

127.0.0.1:6379> zrange score 0 5
1) "stu1"
2) "stu4"
3) "stu2"
4) "stu3"
127.0.0.1:6379> zrange score 0 5 withscore
(error) ERR syntax error
127.0.0.1:6379> zrange score 0 5 withscores
1) "stu1"
2) "10"
3) "stu4"
4) "20"
5) "stu2"
6) "90"
7) "stu3"
8) "100"


zrevrange key start stop

作用:把集合降序排列,取名字[start,stop]之间的元素

例子:

127.0.0.1:6379> zrevrange score 0 5
1) "stu3"
2) "stu2"
3) "stu4"
4) "stu1"
127.0.0.1:6379> zrevrange score 0 5 withscores
1) "stu3"
2) "100"
3) "stu2"
4) "90"
5) "stu4"
6) "20"
7) "stu1"
8) "10"


zrangebyscore  key min max [withscores] limit offset N

作用: 集合(升续)排序后,取score在[min,max]内的元素,并跳过 offset个, 取出N个

例子:

127.0.0.1:6379> zrange score 0 5 withscores
1) "stu1"
2) "10"
3) "stu4"
4) "20"
5) "stu2"
6) "90"
7) "stu3"
8) "100"
127.0.0.1:6379> zrangebyscore score 10 30 withscores
1) "stu1"
2) "10"
3) "stu4"
4) "20"
127.0.0.1:6379> zrangebyscore score 10 30 withscores limit 1
(error) ERR syntax error
127.0.0.1:6379> zrangebyscore score 10 30 withscores limit 1 1
1) "stu4"
2) "20"


zcard key

返回元素个数

例子:

127.0.0.1:6379> zcard score
(integer) 4


zcount key min max

返回[min,max] 区间内元素的数量

例子:

127.0.0.1:6379> zrange score 0 10 withscores
1) "stu1"
2) "10"
3) "stu4"
4) "20"
5) "stu2"
6) "90"
7) "stu3"
8) "100"
127.0.0.1:6379> zount score 10 50
(error) ERR unknown command 'zount'
127.0.0.1:6379> zcount score 10 50
(integer) 2
127.0.0.1:6379> zcount score 10 500
(integer) 4


zinterstore destination numkeys key1 [key2 ...]

[WEIGHTS weight [weight ...]]

[AGGREGATE SUM|MIN|MAX]

求key1,key2的交集,key1,key2的权重分别是 weight1,weight2

numkeys:有多少个key就是多少

聚合方法用: sum |min|max,默认是sum

聚合的结果,保存在destination集合内

注意: weights ,aggregate如何理解?

答: 如果有交集, 交集元素又有socre,score怎么处理?

Aggregate sum->score相加   , min 求最小score, max 最大score

另: 可以通过weigth设置不同key的权重, 交集时,socre * weights

例子:


127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> zadd lisi 2 dog 3 cat 5 pig
(integer) 3
127.0.0.1:6379> zadd wang 4 dog 5 cat 8 pig
(integer) 3
127.0.0.1:6379> zinterstore result 2 lisi wang
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "6"
3) "cat"
4) "8"
5) "pig"
6) "13"
127.0.0.1:6379> zinterstore result 2 lisi wang aggregate min
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "2"
3) "cat"
4) "3"
5) "pig"
6) "5"
127.0.0.1:6379> zinterstore result 2 lisi wang aggregate max
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "4"
3) "cat"
4) "5"
5) "pig"
6) "8"
127.0.0.1:6379> zinterstore result 2 lisi wang weights 2 1 aggregate sum
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "8"
3) "cat"
4) "11"
5) "pig"
6) "18"
127.0.0.1:6379> zinterstore result 2 lisi wang weights 2 1 aggregate min
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "4"
3) "cat"
4) "5"
5) "pig"
6) "8"
127.0.0.1:6379> zinterstore result 2 lisi wang weights 2 1 aggregate max
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "dog"
2) "4"
3) "cat"
4) "6"
5) "pig"
6) "10"
127.0.0.1:6379>



本文出自 Jensen-吴泽鑫的博客,转载时请注明出处及相应链接:http://www.wuzexin.cn/post-7.html

发表评论

电子邮件地址不会被公开。必填项已用*标注


Ɣ回顶部