redis sorted set

Posted 是的哟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis sorted set相关的知识,希望对你有一定的参考价值。

升序排序,指按score升序排序,score相同,按v字典序升序。降序排序同理。

withscores返回v和score,不使用withscores,只返回v

下标区间 i、j从0开始,可为负数,

值区间min、max可为 -inf和+inf,默认闭区间,

‘(‘表示开区间,如zcount k (1 5 => 1<s<=5,(1 (5 => 1<s<5

 

 

zCard k 返回k的基数

zAdd k s1 v1 s2 v2 将分值为score的元素v添加到k里,v存在则更新score(可为小数)

zIncrBy k c v v的score加c,k或v不存在,相当于zadd k c v

 

zScore k v 返回v的score(字符串形式)

zRank k v 返回v在升序集合k里的排名,从0开始计数

zRevRank k v 返回v在降序集合k里的排名,从0开始计数

 

zRange k i j [withscores] 返回下标在[i,j]里的升序子集

zRevRange k i j [withscores] 返回下标在[i,j]里的降序子集

 

zCount k min max 返回score在[min,max]里的元素数量

zRangeByScore k min max [withscores] [limit offset count]

返回score在[min,max]里的升序子集

zRevRangeByScore k max min [withscores] [limit offset count]

返回score在[max,min]里的降序子集

 

zRem k v1 v2... 移出,返回被移出的数量

zRemRangeByRank k i j 移出下标区间[i,j]内元素,返回移出的数量

zRemRangeByScore k min max 移出值区间[min,max]内元素,返回移出的数量

 

zUnionStore d n k1 [k2.. ] [w1 [w2..]] [sum/min/max]

n个集合k1..kn的并集存到d里,返回d的基数

wi表示集合ki的乘法因子,score会先乘w,再传给聚合函数

聚合函数默认为sum,表示d里的score是ki里相同v的score的和

min、max表示d里的score是ki里相同v的score的最小/大值

zInterStore d n k1 [k2.. ] [w1 [w2..]] [sum/min/max]

交集,返回d的基数

 

所有元素的score都相同:

zRangeByLex k min max [limit offset count]

返回v在区间[min,max]里的子集

zLexCount k min max 返回v在区间[min,max]里的元素数量

zRemRangeByLex 移出v在区间[min,max]里的元素,返回移出的数量

 

 

zAdd、zIncrBy、zCount、zRem、zLexCount

zRank、zRevRank

复杂度 O(lgn)

 

zRange、zRevRange

zRangeByScore、zRevRangeByScore

zRemRangeByRank、zRemRangeByScore

zRangeByLex、zRemRangeByLex

复杂度 O(lgn + m),n为k的基数,m为结果集的基数或被移出/返回的数量

 

zUnionStore

复杂度 O(n) + O(mlgm),n为k1、k2..的基数总和,m为结果集的基数

 

zInterStore

复杂度O(nk) + O(mlgm),n为基数最小的k的基数,k为集合数量,m为结果集的基数

 

以上是关于redis sorted set的主要内容,如果未能解决你的问题,请参考以下文章

关于redis中的zset(sorted set)

Redis教程:Sorted-Sets数据类型

在 PyQt 模型中按多列排序

直接在安装了redis的Linux机器上操作redis数据存储类型--对Sorted-Sets操作

redis(十五):Redis 有序集合(sorted set)(python)

redis(十五):Redis 有序集合(sorted set)(python)