1. 有序集合(sorted set)类型?
Redis的有序集合和集合一样,也是String类型元素的集合,且不允许重复成员。他们不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但是分数(score)却是可以重复的。集合中最多可以存储超过40亿个元素(223-1)。
有序集合的存储用法
redis中集合是通过hash表来实现的,所以添加、删除、查找的复杂度都是O(1)。
2. 常见的有序集合操作指令
命令 | 解释 |
---|---|
ZADD key score1 member1 [score2 member2] | 向有序集合添加一个或多个成员,或者更新已经存在成员的分数 |
ZCARD key | 获取有序集合的成员数 |
ZINCRBY key increment member | 有序集合中对指定成员的分数加上增量increment |
ZINTERSTORE destination numkeys key [key...] | 计算给定的一个或多个有序集合的交集并将结果集存储在新的有序集合key中 |
ZRANGE key start stop [WITHSCORES] | 通过索引区间返回有序集合成指定区间内的成员 |
ZRANGEBYLEX key min max [LIMIT offset count] | 通过字典区间返回有序集合的成员 |
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 | 返回有序集中,成员的分数值 |
ZUNIONSTORE destination numkeys key [key...] | 计算给定的一个或多个有序集的并集,并存储在新的key中 |
ZSCAN key cursor [MATCH pattern] [COUNT count] | 迭代有序集合中的元素(包括元素成员和元素的分值) |