跳到主要内容

十三、Redis 有序集合(sorted set) 命令

Redis 有序集合(sorted set)​

Redis sorted set 和 set 一样也是 string 类型元素的集合,且不允许重复的成员

Redis sorted set 的每个元素都会关联一个 double 类型的分数(score)

Redis sorted set 通过分数(score) 来为集合中的成员进行从小到大的排序

Redis sorted set(有序集合) 的成员是唯一的,但分数 (score) 却可以重复

Redis sorted set 是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)

Redis sorted set 中最大的成员数为 232 – 1

范例​

127、0.0.1:6379> ZADD language 1 PHP
(integer) 1
127、0.0.1:6379> ZADD language 2 Python
(integer) 1
127、0.0.1:6379> ZADD language 3 Ruby
(integer) 1
127、0.0.1:6379> ZADD language 3 Perl
(integer) 0
127、0.0.1:6379> ZADD language 4 Perl
(integer) 0
127、0.0.1:6379> ZRANGE language 0 10 WITHSCORES
1) "PHP"
2) "1"
3) "Python"
4) "2"
5) "Ruby"
6) "3"
7) "Perl"
8) "4"

上面的范例,我们通过 ZADD 命令向 Redis 的有序集合中添加了三个值并关联上分数

Redis 有序集合命令​

下表列出了 Redis 有序集合的基本命令

命令描述
ZADD向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZCARD获取有序集合的成员数
ZCOUNT计算在有序集合中指定区间分数的成员数
ZINCRBY有序集合中对指定成员的分数加上增量 increment
ZINTERSTORE计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中