无序集合操作
zadd key score1 value1 score2 value2 ...
添加元素,score就是排序的依据
zrange key start stop [withscores]
将集合元素排序后,返回名次[start stop]的元素,默认升序排序
withscores是取出的元素显示scores
zrangebyscore key min max [withscores] limit offset N
将集合升序排序后,取score在[min, max]内的元素,并跳过offset个,取出N个
zrank key member
查询集合成员member的排名,不存在返回nil
zrevrank key member
查询集合成员member的降序排名
zremrangebyscore key min max
按照score来删除元素,删除范围[min, max]
zrem key member
直接删除成员member
zcard key
返回元素个数
zcount key min max
返回[min, max]区间内元素的数量
zinterstore destination numeys key1 [key2 ...] [WEIGHTS weight [weight...]] [AGGREGATE SUM|MIN|MAX]
求key1, key2的交集,key1,key2的权重分别是weight1,weight2
聚合方法用:sum,min,max
聚合的结果:保存在dest集合内,numkeys是key的数量,redis就可以分辨后面哪些该是权重。
127.0.0.1:6379> zadd lisi 3 cat 5 dog 6 horse
(integer) 3
127.0.0.1:6379> zadd wang 2 cat 6 dog 8 horse 1 donkey
(integer) 4
127.0.0.1:6379> zinterstore result 2 lisi wang
(integer) 3
127.0.0.1:6379> zrange result 0 -1 withscores
1) "cat"
2) "5"
3) "dog"
4) "11"
5) "horse"
6) "14"
权重怎么理解:
如果有交集,交集元素又有score,score怎么处理?
aggrregate->score相加,min求最小score,max最大score
另:可以通过weight设置不同key的权重,交集时score * weight。