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做自增,仅支持一组分数和成员
- nx
- 3.2版本添加了四个可选项
-
删除成员
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]- 同上