Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Zset-操作

常用

  • 添加成员——复杂度O(logN)

    zadd key [nx | xx] [ch] [incr] score member [score member ...]
    
    • 3.2版本添加了四个可选项
      • nx
        • 键不存在(not exist),才可以设置成功返回OK,用于新增
        • 否则失败返回0
      • xx
        • 键存在,才可以设置成功返回OK,用于更新
        • 否则失败返回0
      • ch
        • 返回此次操作后,有序集合中成员和分数发生变化change的个数
      • incr
        • 对score做自增,仅支持一组分数和成员
  • 删除成员

    zrem key member [member ...]
    
  • 获取某个成员的分数

    zscore key member
    
  • 增加某个成员的分数

    zincrby key increment_value member
    
  • 统计member个数——复杂度O(1)

    zcard key
    

排名

  • 获取某个成员的排名(分数由高到底排)

    zverrank key member
    
    • 排名从0开始计算
  • 获取某个成员的排名(分数由低到高排)

    zrank key member
    
  • 获取指定排名范围的成员(分数由高到低排)

    zrevrange key start end [withscores]
    
    • 排名从0开始计算
    • 【注意】这里end是包含在内的
    • withscores
      • 将同时返回成员的分数
      • 返回结果中: 1是member,2是score...依次递推
  • 获取指定排名范围的成员(分数由低到高排)

    zrange key start end [withscores]
    
  • 删除指定排名内的成员

    zremrangebyrank key start end
    

分数

  • 获取指定分数范围的成员(按照分数由高到低返回)

    zrevrangebyscore key max min [withscores] [limit offset count]
    
    • 最大 到 最小
      • 默认闭区间,通过增加括号,可以变成开区间
      • 可取 -inf 代表无限小,取 +inf 代表无限大
  • 获取指定分数范围的成员(按照分数由高到低返回)

    zrangebyscore key min max [withscores] [limit offset count]
    
    • 最小 到 最大
  • 获取指定分数范围的成员个数

    zcount key min max
    
  • 删除指定分数范围的成员

    zremrangebyscore key start end
    

集合

  • 创建交集

    zinterstore dest numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
    
    • dest 保存计算结果的新Zset的key
    • numkeys 需要做交集计算的键的个数 后面跟一系列键
    • weights 可选,默认所有权重是1,后面跟每个键的权重,每个键会将分数乘上权重再做交集
    • aggregate 可选,在计算完后做汇总,可选择 和、最小值、最大值
  • 创建并集

    zunionstore dest numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
    
    • 同上