[一]增加元素
--->命令:ZADD key score member [score member]
--->向有序集合放入一个分数为score的member元素
--->元素存在,则用新分数更换旧分数。
--->命令返回新加入集合的元素,不包含之前已经存在的元素
--->分数不仅可以是整数,也可以是浮点数
--->+inf -inf 表示正无穷和负无穷
![](https://i-blog.csdnimg.cn/blog_migrate/6ff0c768ba96c10f9082d4c132e53756.png)
[二]获得元素的分数
--->命令:ZSCORE key member
--->获得元素所关联的分数
![](https://i-blog.csdnimg.cn/blog_migrate/473689f66de19a6c599240956fc70d97.png)
[三]获得排名在某个范围内的元素的列表
--->命令:ZRANGE key start stop [WITHSCORES]
--->zrange 命令会按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素(双闭区间)
--->如果获取元素列表的同时,还想获取元素对应的分数,在命令的最后加上withscores参数
--->索引从0开始。从左往右。-1表示右边第一个元素。[0,-1]表示返回所有元素
--->zrange命令的时间复杂度为O(log n+m),n为有序集合的基数,m为返回元素的个数
---> 如果两个元素的分数相等,redis会按(0-9,a-z,A-Z)顺序排序,
![](https://i-blog.csdnimg.cn/blog_migrate/d591f630e529c1e0a66fdd6ae5b13df0.png)
[四]获得排名在某个范围内的元素的列表
--->命令:ZREVRANGE key start stop [WITHSCORES]
--->命令会按照元素分数从大到小的顺序返回索引从start到stop之间的所有元素(双闭区间)
![](https://i-blog.csdnimg.cn/blog_migrate/2f0446e50f5f300e2b877d0b12305fa2.png)
[五]获得指定分数范围的元素
--->命令:ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
--->按从小到大的分数返回在min和max间(双闭区间)的元素
--->如果希望返回的元素,不包含两端点的值,则在分数前加“(”。
--->min max还支持无穷大。+inf正无穷 -inf负无穷
--->withscores标示返回元素列表的同时,还要返回分数
--->limit 从offset索引开始的count个人
![](https://i-blog.csdnimg.cn/blog_migrate/5ffc89133e8d39e64fabe3f741620b59.png)
[六]增加某个元素的分数
--->命令:ZINCRBY key increment member
--->使key键里member元素的分数在原有基础上增加increment分数。
--->分数可以是正数,也可以是负数
--->返回值是增加后的分数。
![](https://i-blog.csdnimg.cn/blog_migrate/d238a4023991c7aa425ae6773edf5733.png)
[七]获得集合中元素的数量
--->命令:ZCARD key
--->获取key键集合中元素的数量
![](https://i-blog.csdnimg.cn/blog_migrate/20c6c10ade888679b52717177a76f33e.png)
[八]获取指定分数范围内元素的个数
--->命令:ZCOUNT key min max
--->min max的取值规则和ZRANGEBYSCORE一样
![](https://i-blog.csdnimg.cn/blog_migrate/d3706836ed8a476c43f6400aab0014b2.png)
[九]删除一个或多个元素
--->命令:ZREM key member [member...]
--->返回值是删除成功的元素。不存在的元素,不包括在内
![](https://i-blog.csdnimg.cn/blog_migrate/76d5a979a632eccb4594b64ac5c56b58.png)
[十]按照排名范围删除元素
--->命令:ZREMRANGEBYRANK key start stop
--->按照分数从小到大的顺序删除在指定排名范围内的所有元素,并返回删除的元素数量
![](https://i-blog.csdnimg.cn/blog_migrate/80d872fad2b1b8c5541650f2422dc86b.png)
[十一]按照分数范围删除元素
--->命令:ZREMRANGEBYSCORE key min max
--->按照分数从小到大的区间删除元素,并返回删除成功的元素个数
![](https://i-blog.csdnimg.cn/blog_migrate/f3c3a3ef54051a0dec2c320a7df8cde4.png)
[十二]获得元素的排名
--->命令:ZRANK key member
--->按照分数从小到大的顺序,获得元素的排名。分数最小的元素排名0
--->命令:ZREVRANK key member
--->按照分数从大到小的顺序,拍的元素的排名。分数最大的元素排名0
![](https://i-blog.csdnimg.cn/blog_migrate/53188cae1afc67b3cbb6d202cad50ce7.png)
[十三]计算有序集合的交集
--->命令:ZINTERSTORE destination numkeys key[ key ...] [WEIGHTS weight[weight ...]] [AGGERGATE SUM|MIN|MAX]
--->用来计算多个有序集合的交集,并将结果存储在destination键中(同样是按有序集合进行存储),返回的是destination中存储元素的个数
--->destination有序集合中元素的分数,是由参数AGGERGATE决定的。
(1)当AGGERGATE是sum的时候(也是默认值),destination键中元素的分数是每个参与计算的集合中该元素的分数之和
(2)当AGGERGATE是min的时候destination键中元素的分数是每个参与计算的集合中该元素的分数最小值
(3)当AGGERGATE是max的时候destination键中元素的分数是每个参与计算的集合中该元素的分数最大值
--->该命令还能够通过weights设置每个集合的权重,每个集合在参与计算时元素的分数会被乘上该集合的权重。
--->ZINTERSTORE是计算交集的。与该命令类似的还有:ZUNIONSTORE是计算集合并集的。
![](https://i-blog.csdnimg.cn/blog_migrate/a096d1d95241f455f51e33c1709e2c67.png)