• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共46篇

    Redis数据库

关闭

返回栏目

关闭

返回Redis数据库栏目

21 - 数据类型 - Zset - 有序集合 - (不重复List)+double

作者:

贺及楼

成为作者

更新日期:2024-03-26 16:53:26

数据类型 - Zset - 有序集合 - (不重复List)+double

与普通集合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实现一个文章访问量的排行榜?

有序链表 vs 跳跃表

有序链表:一个一个查找
跳跃表:两个两个查找,过了就倒退