简介
- 按照元素的分值来有序地存储各不相同的元素
- 有序集合和集合一样,都可以包含任意数量的、各不相同的元素( element),不同于集合的是,有序集合的每个元素都关联着一个浮点数格式的分值(score),并且有序集合会按照分值,以从小到大的顺序来排列有序集合中的各个元素
- 虽然有序集合中的每个元素都必须是各不相同的,但元素的分值并没有这一限制,换句话来说,两个不同元素的分值可以是相同的
基本操作
-
ZADD key score element [[score element] [score element] ...] 按照给定的分值和元素,将任意数量的元素添加到有序集合里面,命令的返回值为成功添加的元素数量
127.0.0.1:6379> zadd price 3 香蕉 2 西瓜 8 苹果 6 猕猴桃 20 榴莲 25 猪肉 6
-
ZREM key element [element ...] 从有序集合中删除指定的元素,以及这些元素关联的分值,命令返回被成功删除的元素数量
127.0.0.1:6379> zrem price 猪肉 1
-
ZSCORE key element 返回有序集合中,指定元素的分值
127.0.0.1:6379> zscore price 西瓜 "2"
-
ZINCRBY key increment element 为有序集合指定元素的分值加上增量 increment ,命令返回执行操作之后,元素的分值
127.0.0.1:6379> zincrby price -0.5 西瓜 "1.5"
-
ZCARD key 返回有序集合包含的元素数量
127.0.0.1:6379> zcard price 5
-
ZRANK key element 返回指定元素在有序集合中的排名,其中排名按照元素的分值从小到大计算
127.0.0.1:6379> zrank price 西瓜 0
-
ZREVRANK key member 返回成员在有序集合中的逆序排名,其中 排名按照元素的分值从大到小计算
127.0.0.1:6379> zrevrank price 西瓜 4
分值范围操作
-
ZRANGE key start stop [WITHSCORES] 返回有序集合在按照分值从小到大排列元素(升序排列)的情况下,索引start 至索引stop 范围之内的所有元素 两个索引都可以是正数或者负数。当给定 WITHSCORES选项时,命令会将元素和分值一并返回
127.0.0.1:6379> zrange price 3 50 苹果 榴莲 127.0.0.1:6379> zrange price 3 50 withscores 苹果 8 榴莲 20
-
ZREVRANGE key start stop [WITHSCORES] 返回有序集合在按照分值从大到小排列元素(降序排列) 的情况下,索引 start 至索引 stop 范围之内的所有元素 两个索引都可以是正数或者负数。当给定 WITHSCORES 选项时,命令会把元素和分值一并返回
127.0.0.1:6379> zrevrange price 3 50 香蕉 西瓜 127.0.0.1:6379> zrevrange price 3 50 withscores 香蕉 3 西瓜 1.5
-
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回有序集合在按照分值升序排列元素的情况下,分值在 min 和 max 范围之内的所有元素 给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项时,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量
-
ZREVRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] 返回有序集合在按照分值降序排列元素的情况下,分值在 min 和 max 范围之内的所有元素。 给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量
-
ZCOUNT key min max 返回有序集合在升序排列元素的情况下,分值在 min 和 max 范围内的元素数量
127.0.0.1:6379> zcount price 1 30 5
-
ZREMRANGEBYRANK key start stop 移除有序集合中,元素按升序进行排列的情况下,指定排名范围内的所有元素
-
ZREMRANGEBYSCORE key min max 移除有序集合中,分值范围介于min和max之内的所有元素
集合运算操作
-
ZUNIONSTORE destkey numkeys key [key ...] 计算并集,计算结果会被存储到destkey中,命令返回结果集的基数
-
ZINTERSTORE destkey numkeys key [key ...] 计算交集,计算结果会被存储到destkey中,命令返回结果集的基数
如果参与并集计算的集合比较多,那么Redis服务器可能会被阻塞