按照元素的分值来有序地储存各不相同的元素。
有序集合和集合一样,都可以包含任意数量的,各不相同的元素(element),不同于集合的是,有序集合的每个元素都关联着一个浮点数格式的分值(score),并且有序集合会按照分值,以从小到大的顺序来排列有序集合中的各个元素。
虽然有序集合中的每个元素都必须是各不相同的,但是元素的分值并没有这一限制,换句话说,两个不同元素的分值可以是相同的。
ZADD key score element [[score element] [score element] …]
按照给定的分值和元素,将任意数量的元素添加到有序集合里面,命令的返回值为成功添加的元素数量
ZREM key element [element …]
从有序集合中删除指定的元素,以及这些元素关联的分值,命令返回被成功删除的元素数量。
ZSCORE key element
返回有序集合中,指定元素的分值。
ZINCRBY key increment element
为有序集合指定元素的分值加上增量 increment ,命令返回执行操作之后,元素的分值。
没有相应的 ZDECRBY 命令,但可以通过将 increment 设置为负数来减少分值。
ZCARD key
返回有序集合包含的元素数量(基数)。
ZRANK key element
返回指定元素在有序集合中的排名,其中排名按照元素的分值从小到大计算。
ZREVRANK key member
返回成员在有序集合中的逆序排名,其中排名按照元素的分值从大到小计算。
ZRANGE key start stop [WITHSCORES]
返回有序集合在按照分值从小到大排列元素(升序排列) 的情况下,索引 start 至索引 stop 范围之内的所
有元素。
两个索引都可以是正数或者负数。当给定 WITHSCORES 选项时,命令会将元素和分值一并返回。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集合在按照分值升序排列元素的情况下,分值在 min 和 max 范围之内的所有元素。
给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项时,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集合在按照分值升序排列元素的情况下,分值在 min 和 max 范围之内的所有元素。
给定 WITHSCORES 选项时,元素和分值会一并返回。给定 LIMIT 选项时,可以通过 offset 参数指定返回的结果集要跳过多少个元素,而 count 参数则用于指定返回的元素数量。
ZCOUNT key min max
返回有序集合在升序排列元素的情况下,分值在 min 和 max 范围内的元素数量。
ZREMRANGEBYRANK key start stop
移除有序集合中,元素按升序进行排列的情况下,指定排名范围内的所有元素。
排名范围可以使用正数和负数。
ZREMRANGEBYSCORE key min max
移除有序集合中,分值范围介于 min 和 max 之内的所有元素。
API | 说明 | 操作 |
---|---|---|
RankList(key, client) | 指定储存排行榜数据的有序集合键。 | |
RankList.incr(item, increment=1) | 增加条目 item 在排行榜中的分值。 | 调用 ZINCRBY 命令。 |
RankList.get_top(n, show_score=False) | 返回排行榜前 n 位的条目,如果 show_score 为 True,那么条目的分值也会一并返回。 | 调用 ZREVRANGE 命令。 |
API | 说明 | 操作 |
---|---|---|
Paging(key, client) | 设置储存分页数据的有序集合键。 | 使用被翻页的条目为元素,unix 时间戳为条目的分值,将多个条目储存到一个有序集合键里面。 |
Paging.add_item(item, post_time) | 将条目以及条目的发布时间添加到有序集合里面。 | 调用 ZADD 命令。 |
Paging.get_page(n, count,showtime=False) | 以 count 个条目为一页计算,获取位于第 n 页的条目。如果 showtime 参数的值为True,那么把条目的发布时间也一并返回。 | 调用 ZREVRANGE 命令。 |
API | 说明 | 操作 |
---|---|---|
AutoComplete(client) | 设置自动补完使用的客户端。 | |
AutoComplete.feed(input) | 对给定的输入进行分析,并增加它们的使用次数。 | 调用 ZINCRBY 命令。 |
AutoComplete.get_hint(input, n) | 根据给定的输入,取出 n 个提示选项。 | 调用 ZREVRANGE 命令。 |
ZUNIONSTORE destkey numkeys key [key …]
计算并集
ZINTERSTORE destkey numkeys key [key …]
计算交集