美文网首页
MS-Redis-SortedSet

MS-Redis-SortedSet

作者: Captain_tu | 来源:发表于2019-01-10 14:17 被阅读0次

SortedSet是Set的一个升级,Set的元素顺序是没有保证的,pop的顺序也就无法保证。SortedSet跟Set的最大区别时,添加元素的时候,给这个元素一个score,SortedSet中的元素会按照这个score排序

  1. 重要的

    • zadd [NX|XX] [CH] key score member
    • [zrange | zrangebyscore | zrangebylex] key start end
    • [zrank | zscore] key member
    • zrem key member
    • [zremrangebyrank | zremrangebyscore | zremrangebylex] key min max
  2. API

    1. zadd [NX|XX] [CH] key score value [score2 value2] [score3 value3] ...
      向key中添加一个分数为score的value
      可选参数的意义:
      NX:如果存在key,则什么都不做,否则添加新成员
      XX:如果不存在key,什么都不做,否则更新value的score
      CH:如果不指定CH,则返回的是添加成功的新成员的个数(如果已存在,则不会添加成功),如果指定,则返回所有发生修改的成员的个数
    2. zrem key member [member2] [member3] ...
      从key中删除member
    3. zrange key start end [withscores]
      获取key从start到end的所有元素, 返回的元素可以认为是按得分从最低到最高排列。 如果得分相同,将按字典排序。
      如果指定withsocres,返回值包含所有元素的score
      start,end可以为负数,负数代表倒数第几个
    4. zincrby key increment member
      为有序集key的成员member的score值加上增量increment
      increment可以为整数或浮点数,也可以为负数,表示减少分数
    5. zrank key member
      返回有序集key中成员member的排名,按照分数score从小到大的顺序
    6. zrevrank key member
      返回key中成员member的排名,按照score从大到小的顺序
    7. zrevrange key start end [withsocres]
      同zrange,但是顺序是按照分数score从大到小
    8. zrangebyscore key min max [withscores] [LIMIT offset count]
      返回key的有序集合中的分数在min和max之间的所有元素(包括分数等于max或者min的元素)。元素被认为是从低分到高分排序的。
      min可以为-inf,表示无限小
      max可以为+inf,表示无限大
    9. zcount key min max
      获取key的分数在[min, max]之间的元素数量
    10. zcard key
      获取所有元素数量
    11. zscore key member
      获取key中的member的分数
    12. zremrangebyrank key start end
      删除key中排名从start到end的元素
    13. zremrangebyscore key min max
      删除key中分数在[min, max]之间的元素
    14. zrangebylex key min max [LIMIT offset count]
      同zrangebyscore,但是是按照value值排序
      min:字典中排序位置较小的成员,必须以"["开头,或者以"("开头,可使用"-"代替,"["表示包含,"("表示不包含,"-"表示无限小
      max:字典中排序位置较大的成员,必须以"["开头,或者以"("开头,可使用"-"代替,"["表示包含,"("表示不包含, "+"表示无限大
  3. 常见场景

    • 排行版,我们将用户id和其他信息作为value,分数作为score

      zadd tmrank 100 tutu 99 muming 94 tingyu 95 kanxue 92 diudiu 90 sam # 6
      # 获取全部的排行榜
      zrange tmrank 0 -1 withscores
      # 获取前三名
      zrevrange tmrank 0 2 withscores
      # 获取后三名
      zrange tmrank 0 2 withscores
      # 获取90分到95分的用户
      zrangebyscore tmrank 90 95 withscores
      # 获取muming的分数
      zscore tmrank muming
      # 获取muming的排行
      zrevrank tmrank muming
      # 删除80到90分的用户
      zremrangebyscore tmrank 80 89
      

相关文章

  • MS-Redis-SortedSet

    SortedSet是Set的一个升级,Set的元素顺序是没有保证的,pop的顺序也就无法保证。SortedSet跟...

网友评论

      本文标题:MS-Redis-SortedSet

      本文链接:https://www.haomeiwen.com/subject/oggorqtx.html