• 2019版:第三章:(6)Redis 五大数据类型 之 ZSet


    一、ZSet 类型

        1、Redis 有序集合 zSet 与普通集合 set 非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复的
        2、因为元素是有序的,所以你也可以很快的根据评分(score)或者次序(position)来获取一个范围的元素。
            访问有序集合的中间元素也是非常快的,因此能够使用有序集合作为一个没有重复成员的智能列表。

    二、常用操作

    zadd <key><score1><value1><score2><value2>...
    将一个或多个 member 元素及其 score 值加入到有序集 key 当中
    zrange <key> <start> <stop> [withscores]
    返回有序集 key 中,下标在 <start><stop>之间的元素,
    带 withscores,可以让分数一起和值返回到结果集
    zrangebyscore key min max [withscores] [limit offset count]
    返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于min 或max)的成员。
    有序集成员按 score 值递增(从小到大)次序排列
    zrevrangebyscore key max min [withscores] [limit offset count]
    同上,改为从大到小排列
    zincrby <key> <increment> <value>
    为元素的 score 加上增量
    zrem <key> <value>
    删除该集合下,指定值的元素
    zcount <key> <min> <max>
    统计该集合,分数区间内的元素个数
    zrank <key> <value>
    返回该值在集合中的排名,从0开始
      特殊情况
      1、相同分数,相同值,无法添加进去;
      2、不同分数,相同值,会将分数更新掉;
      3、相同分数,不同元素(值):能添加进去,还能正常排序
      zSet 以 value 为键,分数为值

    三、案例

      如何利用 zSet 实现一个文章访问量的排行榜?
      可以利用 zSet 的升序以及降序来排序,然后实现排名。
  • 相关阅读:
    hdu-5492 Find a path(dp)
    hdu-5493 Queue(二分+树状数组)
    bzoj-2243 2243: [SDOI2011]染色(树链剖分)
    codeforces 724
    codeforces 422A A. Borya and Hanabi(暴力)
    codeforces 442C C. Artem and Array(贪心)
    codeforces 442B B. Andrey and Problem(贪心)
    hdu-5918 Sequence I(kmp)
    poj-3739. Special Squares(二维前缀和)
    hdu-5927 Auxiliary Set(树形dp)
  • 原文地址:https://www.cnblogs.com/niujifei/p/15792408.html
Copyright © 2020-2023  润新知