有序集合和哈希一样,都用于存储键值对。
有序集合的成员即类似于哈希的键,有序集合的分值类似于哈希的值。
新增或更新
zadd
用例:ZADD key-name [ NX | XX] [ GT | LT] [CH] [INCR] score member [ score member ...]
描述:将带有给定分值的成员添加到有序集合里面。如果成员已经存在,则更新对应成员的分值。
XX:仅仅更新已经存在的成员的分值,不新增元素。
NX:仅仅增加新元素,不作更新。
LT:仅仅更新已经存在的成员的分值,并且新的分值大于之前的分值。
GT:仅仅更新已经存在的成员的分值,并且新的分值小于之前的分值。
CH:当新增成员的时候,会返回新增成员的数量。当含有此选项时,返回的是新增成员的数量加上分值被改的成员的数量。
INCR:当命令含有这个选项时,ZADD就相当于ZINCRBY命令,并且只能有一对分值-成员
出现。
zincrby
用例:zincrby key-name increment member
描述:将member成员的分值加上increment。
删除
zrem
用例:zrem key-name member [member ...]
描述:从有序集合里面移除给定的成员,并返回被移除成员的数量。
zpopmin
用例:zpopmin key-name [count]
描述:弹出有序集合中count个分值最低的成员,count的默认值是1。返回的成员按分值由低到高。
bzpopmin
用例:bzpopmin key-name [key-name ...] timeout
描述:从左至右,在第一个非空有序集合中弹出一个分值最低的成员,如果没有则堵塞。timeout是堵塞时间,等于0,表示永久阻塞。
zpopmax
用例:zpopmax key-name [count]
描述:弹出有序集合中count个分值最高的成员,count的默认值是1。返回的成员按分值由高到低。
bzpopmax
用例:bzpopmax key-name [key-name ...] timeout
描述:从左至右,在第一个非空有序集合中弹出一个分值最高的成员,如果没有则堵塞。timeout是堵塞时间,等于0,表示永久阻塞。
zmpop
用例:zmpop key-count key-name [key-name ...] MIN | MAX [COUNT count-value]
描述:从多个有序集合中弹出一个或多个成员,count用于指定弹出成员数量,默认值为1。
MIN:弹出分值最低的先。
MAX:弹出分值最高的先。
bzmpop
用例:zmpop timeout key-count key-name [key-name ...] MIN | MAX [COUNT count-value]
描述 同zmpop,加了阻塞超时机制。
zremrangebyrank
用例:zremrangebyrank key-name start stop
描述:移除有序集合中排名介于start和stop之间的所有成员
zremrangebyscore
用例:zremrangebyscore key-name min stop
描述:移除有序集合中分值介于min和max之间的所有成员
zremrangebylex
用例:zremrangebylex key-name min max
描述:从有序集合中删除字典顺序在min和max之间的成员,min、max选项类似于命令 zrangebylex
link:https://redis.io/commands/zre...
zremrangebyscore
用例:zremrangebyscore key-name min max
描述:从有序集合中删除分值在min和max之间的成员,min、max选项类似于命令 zrangebyscore
link:https://redis.io/commands/zre...
查询
zcard
用例:zcard key-name
描述:返回有序集合包含的成员数量。
zcount
用例:zcount key-name min max
描述:返回分值介于min和max之间的成员数量。
zscore
用例:zscore key-name member
描述:返回成员member的分值
zmscore
用例:zmscore key-name member [member ...]
描述:按序返回多个成员的分值,如果成员不存在,返回nil。
zrank
用例:zrank key-name member
描述:返回成员member在有序集合中的排名
zrevrank
用例:zrevrank key-name member
描述:返回有序集合里成员member的排名,成员按照分值从大到小排列
zrange
用例:zrange key-name start stop [ BYSCORE | BYLEX] [REV] [LIMIT offset count] \WITHSCORES]
描述:返回有序集合中排名介于start和stop之间的成员,如果给定了可选的withscores选项,
那么命令会将成员的分值也一并返回
link:https://redis.io/commands/zra...
zrevrange(deprecated)
用例:zrevrange key-name start stop [withscores]
描述:返回有序集合给定排名范围内的成员,成员按照分值从大到小排列
zrangebylex(deprecated)
用例:ZRANGEBYLEX key-name min max [LIMIT offset count]
描述:在一个有序集合中,所有成员分值都一样,使用字典进行排序。
min、max:必须以 ( 或 [ 开始,( 表示不包含, [ 表示包含;当min使用'-',max使用'+',表示不限制。
count:count为负数,表示不限制数量。
limit:类似于SQL分页,offset表示偏移量,count表示当前页大小。
link:https://redis.io/commands/zra...
zrevrangebylex(deprecated)
用例:zrevrangebylex key-name max min [LIMIT offset count]
描述:与zrangebylex命令相似,按字典倒序,max和min参数也是反的。
link:https://redis.io/commands/zre...
zrangebyscore(deprecated)
用例:zrangebyscore key-name min max [withscores] [limit offset count]
描述:获取有序集合中分值介于min(inclusive)和max(inclusive)之间的所有成员,并按照分值从大到小的顺序来返回它们
min、max:如果以 ( 打头,则表示开区间;min、max可以为 -inf、+inf,意味着无穷小、无穷大。
count:count为负数,表示不限制数量。
link:https://redis.io/commands/zra...
zrevrangebyscore(deprecated)
用例:zrevrangebyscore key-name max min [withscores] [limit offset count]
描述:同上,取反。
link:https://redis.io/commands/zre...
zlexcount
用例:zlexcount key-name min max
描述:相同分值的有序队列,按字典排序,看min和max范围的数量
zrandmember
用例:zrandmember key-name [ count [WITHSCORES]]
描述:从有序集合中弹出一个或多个成员。count表示弹出的成员数量;
当count > 0时,弹出的元素不会重复,弹出的成员数量取决于有序集合的数量和count中小那一个。
当count小于0 时,弹出count个成员,成员可能会重复。
link:https://redis.io/commands/zra...
zrangestore
用例:zrangestore dest-kdy source-key min max [ BYSCORE | BYLEX] [REV] [LIMIT offset count]
描述:从一个有序集合中筛选出一些元素放入目标集合。目标集合相当于一个新建的集合。
link:https://redis.io/commands/zra...
ZSCAN
用例:ZSCAN key-name cursor [MATCH pattern] [COUNT count]
描述:
集合间操作
zdiff
用例:zdiff key-count key-name [key-name ...] [WITHSCORES]
描述:交集
zdiffstore
用例:zdiffstore dest-key key-count key-name [key-name ...]
描述:交集
zinter
用例:zinter key-count key-name [key-name ...] [weights weight [weight ...]] [AGGREGATE SUM | MIN | MAX] [WITHSCORES]
描述:对给定的有序集合执行类似于集合的交集运算
link:https://redis.io/commands/zin...
zinterstore
用例:zinterstore dest-key key-count key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
描述:对给定的有序集合执行类似于集合的交集运算
zunion
用例:zunion key-count key-name [key-name ...] [weights weight [weight ...]] [AGGREGATE SUM | MIN | MAX] [WITHSCORES]
描述:对给定的有序集合执行类似于集合的并集运算
zunionstore
用例:zunionstore dest-key key-count key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
描述:对给定的有序集合执行类似于集合的并集运算
zinterstore和zunionstore默认使用的聚合函数为sum,这个函数会把各个有序集合的成员的分值都加起来。
可以把非有序集合作为输入传给zinterstore和zunionstore,命令会将集合看作是成员分值全为1的有序集合来处理。
zintercard
用例:zintercard key-count key-name [key-name ...] [LIMIT limit-value]
描述:返回多个集合产生的交集结果的数量。
如果指定了参数limit,则交集的数量一旦达到limit-value,将停止计算并返回,limit-value默认值0,表示不限制。
版本:Available since: 7.0.0
link:https://redis.io/commands/zin...