Redis基本命令一Sorted Sets操作

Sorted Sets特点:与Sets类似,区别在于元素有序,每个元素都有关联的浮点型分值用于排序,可以根据分值、元素、集合、过滤器、排序的结果集进行查询

命令一览:ZADD、ZRANGE、ZCARD、ZCOUNT、ZRANK、ZREM 、ZSCORE、ZINCRBY、ZREVRANGE 、ZRANGEBYSCORE、ZREMRANGEBYSCORE 

命令翻译自Redis,点击跳转:You can try redis command by yourself.Come on !

一、ZADD

1、操作对象:Sorted Sets

2、用法:

     理论:ZADD key1 score1 value1 key2 score2 value2 ... keyN scoreN valueN

     推荐:ZADD key score value

3、时间复杂度:O(log(N))(N表示Sorted Set中存在的元素个数)

4、作用:向Sorted Set中添加一个带有分值的元素,如果Sorted Set中存在相同分值的元素则会被更新,然后将这个元素重新插入到正确位置保证排序,如果key不存在则会创建一个含有指定元素的Sorted Set,如果key存在但是保存的不是Sorted Set类型就会报错

5、返回值:添加元素成功返回1,分值相同且元素相同则返回0

6、分值可以是双精度、浮点数的字符串表示形式。

举例:

> ZADD hackers 1940 "Alan Kay"
(integer) 1
> ZADD hackers 1965 "Yukihiro Matsumoto"
(integer) 1
> ZADD hackers 1953 "Richard Stallman"
(integer) 1
> ZRANGE hackers 1 2
1) "Alan Kay"
2) "Richard Stallman"

二、ZRANGE

1、操作对象:Sorted Sets

2、用法:ZRANGE key start end [withscores]

3、时间复杂度:O(log(N)) + O(M)(N表示Sorted Set中元素个数,M表示请求的元素个数)

4、作用:返回Sorted Set从最低到最高分值的元素列表,0表示最低且是Sorted Set中的第一个元素

5、返回值:删除多个元素成功,返回移除元素的个数;删除某个元素成功,返回1,删除失败返回0

6、三种情况:

     1)start可以从0开始,end为-1表示到Sorted Set末尾元素,为-2表示到Sorted Set倒数第二个元素,依次类推

     2)end大于Sorted Set长度,不会有错误,Redis会认为到Sorted Set末尾元素

     3)start超出Sorted Set长度或者start>end,返回空的Sorted Set

举例:

> ZRANGE hackers 0 -1
1) "-1"
2) "So Wils"
3) "Soe Wils"
4) "Wilson"
5) "son"
6) "Alan Turing"
7) "Alan Kay"
8) "Richard Stallman"
9) "Sophie Wilson"
10) "Yukihiro Matsumoto"

三、ZCARD

1、操作对象:Sorted Sets

2、用法:ZCARD key

3、时间复杂度:O(1)

4、作用:获取key中元素个数

5、返回值:key存在返回元素个数,key不存在则视为空返回0

举例:

> ZCARD zkey
2
> ZCARD zset
0

四、ZCOUNT

1、操作对象:Sorted Sets

2、用法:ZCOUNT key min max

3、时间复杂度:O(log(N)+M)(N表示Sorted Set中元素个数,M表示min和max间的元素个数)

4、作用:获取Sorted Set中分值在min和max之间的元素的个数

5、返回值:

举例:

> ZCOUNT hackers 1680 1890
0
> ZCOUNT hackers 1580 1900
1
> ZCOUNT hackers 1500 1900
1
> ZCOUNT hackers 1500 1990
6

五、ZRANK

1、操作对象:Sorted Sets

2、用法:ZRANK key member

3、时间复杂度:O(log(N))(N表示合并的Set列表的元素总数)

4、作用:获取member在key中的分值排名,第一个元素排名是0,表示分值最低,依此类推,分值由低到高,排名即由低到高

5、返回值:member的分值在key中的排名名次,如果member不存在Sorted Set中或者key不存在则返回nil

举例:

> ZRANGE hackers 0 -1
1) "-1"
2) "S Wils"
3) "So Wils"
4) "Soe Wils"
5) "Wilson"
6) "son"
7) "Alan Turing"
8) "Alan Kay"
9) "Richard Stallman"
10) "Sophie Wilson"
11) "Yukihiro Matsumoto"
> ZRANK hackers son
5

六、ZREM 

1、操作对象:Sorted Sets

2、用法:ZREM key member

3、时间复杂度:O(log(N))(N表示Sorted Set中的元素个数)

4、作用:删除key中的member

5、返回值:删除成功返回1;如果member不存在Sorted Set中则不执行操作返回0;如果key保存的不是Sorted Set则返回错误

举例:

> ZREM hackers son
1

 七、ZSCORE

1、操作对象:Sorted Sets

2、用法:ZSCORE key member

3、时间复杂度:O(1)

4、作用:获取key的分值

5、返回值:成功则返回member的分值;如果member不存在Sorted Set中或者key不存在则返回nil

举例:

> zscore hackers Wilson
1457.0

 八、ZINCRBY

1、操作对象:Sorted Sets

2、用法:ZINCRBY key increment member

3、时间复杂度:O(log(N))(N表示Sorted Set中的元素个数)

4、作用:如果member存在key中,对其分值增加increment的数值,并对member的增加后得分值排序,如果member不存在key中,则以increment作为分值将member添加到key中;如果key不存在,则会创建一个有increment数值的member的key

5、返回值:成功则返回member的增加increment数值后的分值;如果key保存的不是Sorted Set则返回错误

举例:

> zscore hackers Wilson
1457.0
> ZINCRBY hackers 100 Wilson
1557.0

九、ZREVRANGE 

1、操作对象:Sorted Sets

2、用法:ZREVRANGE key start end [WITHSCORES]

3、时间复杂度:O(log(N)) + O(M)(N表示Sorted Set中元素个数,M表示请求的元素个数)

4、作用:获取按照分值由高到低排序后的元素列表,start和end表示元素在key中的位置

5、返回值:按照分值由高到低排序后的元素列表

举例:

> ZREVRANGE hackers 0 -1
1) "Yukihiro Matsumoto"
2) "Sophie Wilson"
3) "Richard Stallman"
4) "Alan Kay"
5) "Alan Turing"
6) "Wilson"
7) "Soe Wils"
8) "So Wils"
9) "S Wils"
10) "-1"

十、ZRANGEBYSCORE 

1、操作对象:Sorted Sets

2、用法:

      ZRANGEBYSCORE key min max [LIMIT offset count] (Redis >= 1.1)

      ZRANGEBYSCORE key min max [LIMIT offset count] [WITHSCORES] (Redis >= 1.3.4)

3、时间复杂度:O(log(N)) + O(M)(N表示Sorted Set中元素个数,M表示命令返回的元素个数)

4、作用:获取分值在min和max间的元素,可以用LIMIT选项限制元素结果列表的个数

5、返回值:分值在min和max间的元素列表

举例:

> ZRANGEBYSCORE hackers 1550 1980
1) "Wilson"
2) "Alan Turing"
3) "Alan Kay"
4) "Richard Stallman"
5) "Sophie Wilson"
6) "Yukihiro Matsumoto"
> ZRANGEBYSCORE hackers 1550 1980 LIMIT offset 3
1) "Wilson"
2) "Alan Turing"
3) "Alan Kay"

十一、ZREMRANGEBYSCORE 

1、操作对象:Sorted Sets

2、用法:ZREMRANGEBYSCORE key min max

3、时间复杂度:O(log(N)) + O(M)(N表示Sorted Set中元素个数,M表示命令删除的元素个数)

4、作用:删除分值在min和max间的元素,包含分值为min或max的元素也会被删除

5、返回值:删除元素的个数

举例:

> ZREMRANGEBYSCORE hackers 1690 1890
0
> ZREMRANGEBYSCORE hackers 1690 1990
5

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值