zset 中的 member 仍然要求是唯一的。
排序规则:按照输入的 score 来进行排序,如果score相同,再按照元素自身字符串的字典序来排序,score 不同仍然按照 score 来排序。
添加或者更新指定的元素以及关联的 score 到 zset 中,score 应该符合 double 类型,+inf/-inf 作为正负 极限也是合法的。
ZADD 的相关选项
语法:
ZADD key [NX | XX] [GT | LT] [CH] [INCR] score member [score member ...]
作用:获取 zset 中的元素个数。
语法:
ZCARD key
作用:返回分数在 min 和 max 之间的元素个数,默认情况下,min 和 max 都是包含的,可以通过 ( 排除。
语法:ZCOUNT key min max
返回值:满⾜条件的元素列表个数
作用:返回指定区间⾥的元素,分数按照升序。带上 WITHSCORES 可以把分数也返回。
语法:
ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
作用:返回指定区间⾥的元素,分数按照降序。带上 WITHSCORES 可以把分数也返回。
ps:这个命令可能在 6.2.0 之后废弃,并且功能合并到 ZRANGE 中。
语法:
ZREVRANGE key start stop [WITHSCORES]
作用:用于按照元素的分数范围来获取元素,默认情况下,min 和 max 都是包含的,可以通过 ( 排除。
ps:这个命令可能在 6.2.0 之后废弃,并且功能合并到 ZRANGE 中。
语法:
ZRANGEBYSCORE key min max [WITHSCORES]
作用:删除并返回分数最大的 count 个元素。
语法:
ZPOPMAX key [count]
返回值:返回删除的score 和 member 。
作用:删除并返回分数最小的 count 个元素。
语法:
ZPOPMIN key [count]
返回值:返回删除的score 和 member 。
zpopmin / zpopmax 的阻塞版本
语法: BZPOPMIN/BZPOPMAX key [key ...] timeout
与list的blpop/brpop情况差不多。
作用:根据number返回指定元素的排名,升序,这里的排名指的就是下标。
语法:
ZRANK key member
作用:返回指定元素的排名,降序,这里的排名指的就是下标。
语法:
zrevrank key member
作用:查询指定元素的分数
语法:
ZSCORE key member
作用:删除指定的元素。
语法:
ZREM key member [member ...]
作用:按照下标删除指定范围的元素,左闭右闭。
语法:
ZREMRANGEBYRANK key start stop
作用:按照分数删除指定范围的元素,左闭右闭。
语法:
ZREMRANGEBYSCORE key start stop
作用:为指定的元素的关联分数添加指定的分数值
语法:
zincrby key increment member
在比较 “相同”的时候,只要 member 相同即可。
语法:
ZINTER numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
这里的zhangsan的score(65),是按照 key中zhangsan的score先乘以自己的权重值 2, 加上 key2 对应的权重值3乘以key2 zhangsan的score,即 2 * 10+ 3 * 15 = 65
语法:
zunion numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
语法:
zdiff numkeys key [key ...] [WITHSCORES]
语法:
zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
语法:
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE
语法:
zdiffstore destination numkeys key [key ...]
有序集合类型的内部编码有两种:
在后面的版本中,在元素较少且元素的值较小时,ziplist编码被listpack编码替代。
在元素较少且元素的值较小时是listpack编码
当元素过大时,转换为skiplist