Redis 排序集合(sets)
排序集合
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在Redis名为'tutorials'的排序集合中插入了四个值。
排序集合命令
| 命令 | 描述 |
|---|---|
| ZADD key score1 member1 [score2 member2] | 将一个或多个成员添加到排序集中,或更新其分数(如果已经存在) |
| ZCARD key | 获取排序集中的成员数 |
| ZCOUNT key min max | 用给定值内的分数对排序集中的成员进行计数 |
| ZINCRBY key increment member | 增加排序集中成员的分数 |
| ZINTERSTORE destination numkeys key [key ...] | 与多个排序集相交并将结果排序后的集存储在新键中 |
| ZLEXCOUNT key min max | 计算给定词典范围之间的排序集中的成员数 |
| ZRANGE key start stop [WITHSCORES] | 按索引返回排序集中的成员范围 |
| ZRANGEBYLEX key min max [LIMIT offset count] | 返回按字典顺序排列的排序集中的成员范围 |
| ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT] | 按分数返回排序集中的成员范围 |
| ZRANK key member | 确定排序集中成员的索引 |
| ZREM key member [member ...] | 从排序集中删除一个或多个成员 |
| ZREMRANGEBYLEX key min max | 删除给定词典范围之间的排序集中的所有成员 |
| ZREMRANGEBYRANK key start stop | 删除给定索引内排序集中的所有成员 |
| ZREMRANGEBYSCORE key min max | 在给定分数内删除排序集中的所有成员 |
| ZREVRANGE key start stop [WITHSCORES] | 按索引返回排序集中的一组成员,其得分从高到低排序 |
| ZREVRANGEBYSCORE key max min [WITHSCORES] | 按分数返回排序集中的成员范围,分数从高到低排序 |
| ZREVRANK key member | 确定成员在排序集中的索引,其得分从高到低排序 |
| ZSCORE key member | 获取排序集中与给定成员相关的分数 |
| ZUNIONSTORE destination numkeys key [key ...] | 添加多个排序集并将结果排序集存储在新键中 |
| ZSCAN key cursor [MATCH pattern] [COUNT count] | 增量迭代排序的集合元素和相关分数 |