与普通集合set非常相似
不重复元素的字符串集合
每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。
评分可以重复
因为元素是有序的, 所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
访问有序集合的中间元素也是非常快的
命令 | 解释 | 成功 | 失败 | 空值 |
---|---|---|---|---|
zadd <key><score1><value1><score2><value2> | 增 - 将一个或多个 member 元素及其 score 值加入到有序集 key 当中 | |||
zincrby <key><increment><value> | 增 - 为元素的score加上增量 | |||
zrange <key><start><stop> [WITHSCORES] | 查 - 返回有序集 key 中,下标在<start><stop>之间的元素,带WITHSCORES,可以让分数一起和值返回到结果集。 | |||
zrangebyscore key minmax [withscores] [limit offset count] | 查 - 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。 | |||
zrevrangebyscore key maxmin [withscores] [limit offset count] | 查 - 同上,改为从大到小排列。 | |||
zcount <key><min><max> | 查 - 统计该集合,分数区间内的元素个数 | |||
zrank <key><value> | 查 - 返回该值在集合中的排名,从0开始。 | |||
zrem <key><value> | 删 - 删除该集合下,指定值的元素 |
案例:如何利用zset实现一个文章访问量的排行榜?
有序链表:一个一个查找
跳跃表:两个两个查找,过了就倒退