Redis - 有序集合



Redis有序集合类似于Redis集合,其独特的特点是存储在集合中的值。不同之处在于,有序集合的每个成员都关联一个分数,该分数用于对有序集合进行排序,从小到大的分数排序。

在Redis有序集合中,添加、删除和测试成员的存在性所需时间为O(1)(无论集合中包含多少元素,时间都是恒定的)。列表的最大长度为232 - 1个元素(4294967295,每个集合超过40亿个元素)。

示例

redis 127.0.0.1:6379> ZADD tutorials 1 redis 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 1 
redis 127.0.0.1:6379> ZADD tutorials 3 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZADD tutorials 4 mysql 
(integer) 0 
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES  
1) "redis" 
2) "1" 
3) "mongodb" 
4) "2" 
5) "mysql" 
6) "4" 

在上面的例子中,三个值及其分数通过命令**ZADD**插入到名为“tutorials”的Redis有序集合中。

Redis有序集合命令

下表列出了一些与有序集合相关的基本命令。

序号 命令及描述
1 ZADD key score1 member1 [score2 member2]

向有序集合添加一个或多个成员,如果成员已存在则更新其分数。

2 ZCARD key

获取有序集合中成员的数量。

3 ZCOUNT key min max

计算有序集合中分数在给定值范围内的成员数量。

4 ZINCRBY key increment member

递增有序集合中成员的分数。

5 ZINTERSTORE destination numkeys key [key ...]

对多个有序集合求交集,并将结果有序集合存储到一个新的键中。

6 ZLEXCOUNT key min max

计算有序集合中在给定字典顺序范围内的成员数量。

7 ZRANGE key start stop [WITHSCORES]

返回有序集合中指定索引范围内的成员。

8 ZRANGEBYLEX key min max [LIMIT offset count]

返回有序集合中指定字典顺序范围内的成员。

9 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]

返回有序集合中指定分数范围内的成员。

10 ZRANK key member

确定有序集合中成员的索引。

11 ZREM key member [member ...]

从有序集合中删除一个或多个成员。

12 ZREMRANGEBYLEX key min max

删除有序集合中给定字典顺序范围内的所有成员。

13 ZREMRANGEBYRANK key start stop

删除有序集合中给定索引范围内的所有成员。

14 ZREMRANGEBYSCORE key min max

删除有序集合中给定分数范围内的所有成员。

15 ZREVRANGE key start stop [WITHSCORES]

返回有序集合中指定索引范围内的成员,分数从高到低排序。

16 ZREVRANGEBYSCORE key max min [WITHSCORES]

返回有序集合中指定分数范围内的成员,分数从高到低排序。

17 ZREVRANK key member

确定有序集合中成员的索引,分数从高到低排序。

18 ZSCORE key member

获取有序集合中给定成员关联的分数。

19 ZUNIONSTORE destination numkeys key [key ...]

对多个有序集合求并集,并将结果有序集合存储到一个新的键中。

20 ZSCAN key cursor [MATCH pattern] [COUNT count]

增量迭代有序集合的元素及其关联的分数。

广告