添加有序集合元素
- 有序集合KEY 不存在,创建新的并添加元素和分数Score,分数可以是整数或双精度浮点数
- 添加的元素存在,且分数Score一样,不改变
- 添加的元素存在,且分数Score不一样,更新分数
- KEY 不为有序集合时,执行命令返回错误
zadd website 10 google.com 5 baidu.com 3 360.com 3 sina.com
zadd website 10 google.com //不改变
zadd website 9 google.com //更新score
返回有序集合的基数
zcard website //返回 4
zcard top // top 不存在,返回0
返回有序集合的指定成员数量
- min 和 max 参数都是包含当前值
- zcard 为返回所有成员数量,zcount 是返回区间值,必须包含参数
zcount website 3 5 //返回 3
对有序集合的成员分数做增减
- increment 的增量参数可以设置整数或双精度浮点数,也可以设置负数表示减去值
- 如果KEY不存在或KEY中没有当前的成员,执行新增操作
- KEY 不是有序集合时,返回错误
zincrby website 1 baidu.com // 加 1 后,返回最新分数 6
返回有序集合区间成员
- 返回结果按score值递增排序
- 下标 start > stop 时,不会报错并返回空列表,下标 stop 超过成员最大数量时,按最大值处理
- 参数 withscores 添加时,会一同返回成员的分数
- 按score递减排名命令为 zrevrange,实现方法一致
zrange website 0 -1 //返回所有成员
按分数区间返回有序集合
- score值递增排序,包含参数 min 和 max
- 支持可选参数 withscores 显示成员分数
- 支持可选参数 limit 按指定数据偏移量返回集合
- 默认的参数 min 和 max 是闭区间,加上括号后表示开区间
- 当不知道到 min 和 max 的具体值时,可用 +inf (向上无限) 和 -inf(向下无限)替代
- 按 socre 值递减排序命令为**zrevrangebyscore **,实现方法一致
zrangebyscore 3 5
zrangebyscore website (3 5
zrangebyscore website 3 10 withscores limit 2 2
zrangebyscore website 3 +inf withscores
返回有序集合中指定成员的排名
- 按score递增排名,排名从0开始
- 成员不在有序集合中,返回 nil
- 按score递减排名命令为 zrevrank,实现方法一致
zrank website google.com
移除有序集合的成员
- 可以移除一个或多个成员,不存在的成员会被忽略
- 如果移除的KEY不是有序集合,会报错
zrem website google.com //成功返回删除成员数量
按排名移除指定区间成员
zremrangebyrank website 0 -1 //返回被移除成员的数量
按分数移除指定区间成员
zremrangebyscore website 3 9 //返回被移除成员的数量
返回有序集合成员的分数
zscore website google.com //返回分数
计算有序集合的交集
- 进行交集计算的集合必须在参数里声明数量
- 运算结果会重新赋值给新生成的集合
zadd websitetop 8 google.com 7 baidu.com 6 360.com
zinterstore result 2 website websitetop
计算有序集合的并集
- 进行交集计算的集合必须在参数里声明数量
- 运算结果会重新赋值给新生成的集合
- weight参数可以为选定的集合里的每个成员指定一个乘法因子,所有成员在进行合并之前先与乘法因子进行相乘
- aggregate 参数可以指定集合的聚合方式,默认sum计算成员合并后的和,min取同成员中的最小分数,max取同成员中的最大分数
zunionstore newreuslt 2 website websitetop aggregate max //返回合并后各成员中分数最高的
zunionstore weightresult 2 website websitetop weight 1 2 //设置乘法因子,第二个集合在合并前所有成员都乘以 2
网友评论