Redis 排序集合
Redis排序集合与Redis集合类似,但具有值存储在集合中的独特特性。不同之处在于,排序集合的每个成员都与一个分数相关联,该分数用于对排序集合进行排序,从最小到最大分数。
在Redis排序集合中,添加、删除和测试成员的存在性的时间复杂度为O(1)(无论集合中包含多少元素)。列表的最大长度为2的32次方 – 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排序集命令
下表列出了一些与排序集相关的基本命令。
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 确定排序集合中成员的索引,按从高到低的分数排序 18 获取排序集合中给定成员的分数 19 将多个排序集合相加并将结果存储在新键中 20 增量迭代排序集元素和关联的分数 |