Redis 简明教程

Redis - Sorted Sets

Redis 有序集合类似于 Redis 集合,它们在集合中存储值的唯一特性。不同之处在于,有序集合的每个成员都与一个得分相关联,该得分用于对有序集合按从小到大的得分进行排序。

在 Redis 有序集合中,以 O(1)(与集合内部包含的元素数量无关的固定时间)添加、移除和测试成员的存在。列表的最大长度为 232 - 1 个元素(4294967295,每个集合超过 40 亿个元素)。

Example

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 Sorted Sets Commands

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

Sr.No

Command & Description

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] 递增迭代分类集合中的元素和关联分数