Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。
1、ZADD key score1 member1 [score2 member2] 向集合中添加一个或者多个元素,或者更新已存在元素的分数;分数值可 以是整数或者双精度浮点数。
返回添加成功的元素个数,更新分值返回0;
2、ZCARD key 用于返回集合中元素的数量;
3、ZCOUNT key min max 返回集合中指定分数区间的元素数量;
4、ZINCRBY key increment member 对有序集合中的元素加上指定增量increment,增量可以是负数,可以是浮点数;返回元素分数运算后的结果,以字符串形式表示;
5、ZINTERSTORE destination numkeys key [key2 ...] 计算给定的一个或者多个有序结合中的交集,给定key的数量有numkeys参数指定,并将交集存储到desination中,返回destination中的元素数量;
6、ZLEXCOUNT key min max,计算指定集合在字典区间中的元素个数;元素成员前加[符号,不能有空格;可以使用-代表最小,+代表最大;取值范围大于等于min小于等于max;返回该区间内的元素个数;
7、ZRANGE key start stop [WITHSCORES] 返回给定区间的元素集合,下标从0开始,-1代表倒数第一个;参数WITHSCORES表示显示元素的分数;
8、ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT ] 返回指定分数区间的成员,按照分数从小到大的顺序排列,默认是封闭区间(小于等于,大于等于),可以加上符号“(”选择改变区间为大于或者小于;
9、ZRANGEBYLEX key min max [limit offset count] 用于返回指定成员区间内的成员,分数必须相同,按成员字典正序排序,默认以“[”开头,表示大于等于小于等于,可以用“(”表示大于小于,获取全部数据时用“-”表示最小值,“+”表示最大值;参数limit表示分页获取数据;
10、ZRANK key member 返回给定成员的索引值;
11、ZREM key member [member1 ...] 移除集合中的一个或多个元素,返回移除成功的数量;
12、ZRENMRANGEBYLEX key min max 用于删除分数一样的基于字典从低到高排序成员之间的所有成员,默认以“[”开头,表示大于等于小于等于,可以用“(”表示大于小于,获取全部数据时用“-”表示最小值,“+”表示最大值;返回删除成功的元素数量;
13、ZREMRANGEBYRANK key start stop 用于删除有序集合中,指定排名区间(rank)内的所有成员;下标参数start和stop都以0为底,-1表示分数最大,-2表示分数第二大,0表示分数最小,1表示分数第二小,以此类推;
14、ZREMRANGEBYSCORE key min max 用于删除集合中分数大于等于参数min,小于等于max之间的所有元素,返回值为删除成功的数量;
15、ZREVRANGE key start stop [WITHSCORES] 返回有序集中指定区间内的成员,通过索引,分数从高到底;
16、ZREVRANGEBYSCORE key max min 返回有序集中指定分数区间内的所有的成员;有序集成员按分数值递减(从大到小)的次序排列;具有相同分数值的成员按字典序的逆序排列;
17、ZREVRANK key member 返回元素在集合中的排名,排名按照从大到小排序;排名为0的分数最大;
18、ZSOCRE key member 返回元素在集合中的分数值,以字符串形式返回,如果key不存在或者member不存在返回nil;
19、ZUNIONSTORE destination numkeys key [key1 ...] [WEIGHTS weight [weight1 ...] ] [SUM | MAX | MIN] 计算给定一个或多个有序集合的并集,给定集合的数量由numkeys指定;并将并集的结果存储到destination中,默认情况下结果集中某个元素的分数是所有给定集合中该元素的分数值之和,也可以通过参数来获取给定集合中该元素的最大值或者最小值;WEIGHTS参数是根据给定集合一一对应,结果集中元素分数值是给定集中的元素分数值乘以该参数(key中的元素分数值与weight相乘,key1中的元素分数值与weight2相乘),不指定WEIGHTS默认为1;