Redis的有序集合操作命令
Posted John-Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis的有序集合操作命令相关的知识,希望对你有一定的参考价值。
有序集合(zset)就是可以排序的set,通过每个元素关联的score值来为元素进行从小到大的排序,zset中元素不能重复,但是score却可以重复
设定/修改命令
zadd key score member [[score member] [score member] ...]
将一个或多个member元素及其score值加入到key当中 score值可以是整数值或双精度浮点数 如果某个member已经是有序集合的成员,那么更新这个member的score值 如果key不存在,创建一个空的有序集并执行zadd操作 返回被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员
zincrby key increment member
为key的成员member的score值加上增量increment(可以为负数) key不存在时创建一个空的有序集并执行zincrby操作 member成员不存在时,创建该成员并设置其score值为0并执行zincrby操作 返回member成员的新score值(字符串形式)
移除命令
zrem key member [member ...]:移除key中一个或多个成员,不存在的成员将被忽略。返回被成功移除的成员数量(不包括被忽略的成员)
zremrangebyrank key start stop:移除key中指定下标区间内(包含start和stop)的所有成员。返回移除成员的数量
zremrangebyscore key min max:
移除key中score值在min和max之间(包括mi和max)的成员 可以给参数min和max前增加"("括号来使结果不包含 返回移除成员的数量
获取命令
zrange key start stop [withscores]
返回key中指定下标(可以为负数)区间内的成员并按score值递增(从小到大)来排序的列表 具有相同score值的成员按字典序(lexicographical order)来排列 start大于最大下标或者start>stop,返回空列表 stop大于最大下标将stop当作最大下标来处理 withscores选项让成员和它的score值一并返回,返回列表以value1,score1, ..., valueN,scoreN的格式表示
zrevrange key start stop [withscores]:返回key中逆序排序(按score值从大到小)后指定下标(可以为负数)区间内的成员列表
zrangebyscore key min max [withscores] [limit offset count]
返回key中score值介于min和max之间(包括min和max)的成员 min和max可以是-inf(无限大)和+inf(无限小),这样可以在不知道最低和最高score的情况下使用zrangebyscore这类命令 可选的limit参数指定返回结果的数量及区间 withscores选项让成员和它的score值一并返回 默认情况下,包括score值等于min和max的成员,可以给参数min和max前增加"("括号来使结果不包含,如: zrangebyscore zset (1 5:返回所有1<score<=5的成员 zrangebyscore zset (5 (10:返回所有5<score<10的成员 返回指定区间内的有序集成员的列表
zrevrangebyscore key min max [withscores] [limit offset count]:返回key中score值介于min和max之间(包括min和max)的成员并把这些成员逆序排序(按score值从大到小)
zscore key member:返回key成员member的score值(字符串形式),如果member元素不是key的成员或key不存在返回nil
交集并集
zunionstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
计算给定的一个或多个有序集的和集(并集)并将该并集(结果集)储存到destination numkeys为给定key的数量 weights选项为每个对应的key分别指定一个乘法因子,对应的key所有成员的score值在传递给聚合函数(aggregate)之前都要先乘以该因子,默认为1 aggregat选项指定和集(并集)的结果集中score值的聚合方式 默认为sum,将所有集合中某个相同成员的score值之和作为结果集中该成员的score值; min将所有集合中某个相同成员中最小的score值作为结果集中该成员的score值; max将所有集合中某个相同成员最大的score值作为结果集中该成员的score值 返回保存到 destination 的结果集的基数。
zinterstore destination numkeys key [key ...] [weights weight [weight ...]] [aggregate sum|min|max]
计算给定的一个或多个有序集的交集并将该交集(结果集)储存到destination 参数的用法和zunionstore相同
其他命令
zcard key:返回key的基数,key不存在时返回0
zcount key min max:返回key中score值在min和max之间(包括min和max)的成员的数量
zrank key member:返回key中成员member的排名(从0开始),如果member不是key的成员返回nil
zrevrank key member:返回key中成员member逆序排序(按score值从大到小)后的排名(从0开始)
以上是关于Redis的有序集合操作命令的主要内容,如果未能解决你的问题,请参考以下文章