oreder set(有序集合)
集合本来是没有顺序的,现在要顺序的话,就得为每个值加一个权重。在这篇文章中,我们统一用score来指代权重
zadd key score1 vlue1 score2 value2……
添加元素
zadd names 18 lilky 19 dafanzi 16 xiaofanzi
zrank key value
查询value的排名(升序从0开始)
zrevrank key value
查询value的排名(降序从0开始)
zrange key start stop [withscores]
把集合排序后,返回名次[start,stop]的元素
默认是升序排列
withscores是把score也打印出来
zrevrange key start stop [withscores]
作用,把集合降序排列,取名次[start,stop]之间的元素
zrangebyscore key min max limit offset N [withcores]
作用:集合(升序)排序后,取score在[min,max]内的元素,并跳过offset个,取出N个
zrem key value1 value2……
删除集合中的元素
zremrangebyscore key min max
作用:按照score来删除元素,删除score在[min,max]之间的
zremrangebyrank key start end
作用:按照排名删除元素,删除名次在[start,end]之间的
zcard key
返回元素个数
zcount key minscorre maxscore
返回权值在[minscore,maxscore]之间的数量
zinterstore destination numberkeys key1 key2 keyn
zinterstore destination numberkeys key1 key2 keyn [weight weight1 weight2] [aggregate sum|min|maz]
weights 2 1(设置第一个key里所有元素的权重为原来的基础上乘2,第二个key的所有元素的权重为原来的基础上乘1)
aggreate是说求出的交集元素的权值该为多少?(交集的几个集合,这个同值的元素可能score不同)。默认就是sum ,你也可以采取不同的方式
numkeys是说明你要让几个集合求交集
zadd lisi 2 cat 3 dos 4 horse
zadd wangwu 3 cat 2 dogs 5 horse 6 donkey
zinterstore result 2 lisi wangwu aggregate sum