既然集合是无序的,但是现在又有有序集合,所以有序集合中的元素必然有相应的权重,比如身高、体重、年龄等,但是为了方便讨论,统一命名为 score。
1. zadd KEY score member [score1 member …]
向集合中添加元素。有序集合的元素依然是唯一的。
1 | 127.0.0.1:6379> zadd language 10 java 8 python 6 C++ 5 php 4 go 3 nodejs |
zadd language 9 java
表示添加元素不成功,但是 java 对应的 score 变成 9 了。
2. zrange KEY start stop [WITHSCORES]
查看指定排名范围内的数据,从 0 开始,包括 start 和 end,默认按照 score 升序显示,WITHSCORES 显示每个元素对应的 score。
1 | 127.0.0.1:6379> zrange language 0 2 |
3. zrevrange KEY start stop [WITHSCORES]
同 2 一样,但是是降序显示。
4. zrangebyscore KEY min max [WITHSCORES] [LIMIT offset count]
查询集合(升序) score 在 min 和 max 范围内的元素,并跳过 offset 个,取出 count 个。
1 | 127.0.0.1:6379> zrangebyscore language 3 6 withscores limit 1 2 |
5. zcard KEY
返回元素的个数
1 | 127.0.0.1:6379> zcard language |
6. zcount KEY min max
返回 min ~ max 区间内元素的数量。
1 | 127.0.0.1:6379> zcount language 0 5 |
7. zrank KEY member
给定元素显示对应的排名,注意是从 0 开始,默认升序。zrevrank KEY member
降序排列显示对应排名。
1 | 127.0.0.1:6379> zrank language go |
8. zremrangebyscore KEY min max
按照 score 删除集合中的元素,包括 min 和 max。
1 | 127.0.0.1:6379> zremrangebyscore language 0 4 |
9. zremrangebyrank KEY start stop
根据元素在集合中的排序来删除,包括 start 和 stop。1
2
3
4127.0.0.1:6379> zremrangebyrank language 0 4
(integer) 4
127.0.0.1:6379> zrange language 0 -1 withscores
(empty list or set)
10. zrem KEY member [member1 member2 …]
删除集合内指定的元素,可以一次删除多个。
1 | 127.0.0.1:6379> zadd language 10 java 8 python 6 C++ 5 php 4 go 3 nodejs |
11. zinterstore destKey numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
取得几个集合的交集并存储到 destKey 集合中。此命令比较长,分别做如下解释:
destKey : 求的交集之后存储的目标集合
numkeys : 表示有多个集合进行交集运算,如果有三个集合做交集运算,numkeys 则等于 3
weights : 权重,即集合中的元素 score * weight ,weight 的顺序同集合的顺序。如:zinterstore result 2 key1 key2 weights 2 3
则表示集合 key1 中元素 score * 2,集合 key2 中的元素 score * 3之后,再进行交集运算,即 result 集合中元素的 score 的值分别为 :key1_score * 2 + key2_score * 3,默认是求和运算。
aggregate sum|min|max : 表示集合进行并集运算时,集合对应元素 score 的计算规则,默认是 sum。
1 | 127.0.0.1:6379> zadd zhangsan 2 cat 3 dog |
12. zunionstore destKey numkeys key [key …] [WEIGHTS weight [weight …]] [AGGREGATE SUM|MIN|MAX]
同 11 类似,只不过 zunionstore 是求并集。