Redisシリーズ-ストレージ編sorted set主な操作コマンド

10261 ワード

Redisシリーズ-ストレージ編sorted set主要操作関数小結
redisは、秩序化された集合、すなわちsorted setをサポートする.sorted setはsetに基づいて、ソート属性を追加し、setのアップグレード版です.ここではsorted setの一般的な関数について簡単に説明します.
1)insert
a)zadd
  :zadd key score member [[score member] [score member] ...]

  :       member【  score  】    key ,  member    ,   score。    member  ,        member

[root@xsf001 ~]# redis-cli 
redis 127.0.0.1:6379> ZADD score 230 zhangsan
(integer) 1
redis 127.0.0.1:6379> zadd score 240 lisi 250 wangwu
(integer) 2
redis 127.0.0.1:6379> zadd score 100 liuli
redis 127.0.0.1:6379> zadd score 249 wangwu
(integer) 0

  :  redis  ,        member

2)select
a)zrange
  :zrange key start stop [withscores]

  :     key     【     start stop】 member[  score];

redis 127.0.0.1:6379> zrange score 0 -1  #    
1) "liuli"
2) "zhangsan"
3) "lisi"
4) "wangwu"
redis 127.0.0.1:6379> zrange score 0 -1 withscores  #  member score
1) "liuli"
2) "100"
3) "zhangsan"
4) "230"
5) "lisi"
6) "240"
7) "wangwu"
8) "249"
redis 127.0.0.1:6379> zrange score 0 2 withscores  #     
1) "liuli"
2) "100"
3) "zhangsan"
4) "230"
5) "lisi"
6) "240"
redis 127.0.0.1:6379> zrange score 0 -2  #      
1) "liuli"
2) "zhangsan"
3) "lisi"

  :0,       ,-1         ,-2          

b)zcount
  :zcount key min max

  :  key score   min  max   member  

redis 127.0.0.1:6379> zrange score 0 -1 withscores
1) "liuli"
2) "100"
3) "zhangsan"
4) "230"
5) "lisi"
6) "240"
7) "wangwu"
8) "249"
redis 127.0.0.1:6379> zcount score 230 240  # count(score >=230 && score <=240)
(integer) 2

c) zscore
  :zscore key member

  :     key member score

redis 127.0.0.1:6379> zscore score liuli
"100"

d)zrevrange
  :zrevrange key start stop [withscores]

  :     key     [    start stop] member[ score],  member  score     

redis 127.0.0.1:6379> zrevrange score 0 -1 withscores
1) "wangwu"
2) "249"
3) "lisi"
4) "240"
5) "zhangsan"
6) "230"
7) "liuli"
8) "100"
redis 127.0.0.1:6379> zrevrange score 1 -2
1) "lisi"
2) "zhangsan"

  :  0        ,-1       ,-2        ;    

e)zrangebyscore
  :zrangebyscore key min max [withscores] [limit offset count]

  :     key ,score    min      max member。      score       。  withscores            member    member score;    limit            。

redis 127.0.0.1:6379> zrangebyscore score 100 10000 withscores
1) "liuli"
2) "100"
3) "zhangsan"
4) "230"
5) "lisi"
6) "240"
7) "wangwu"
8) "249"
redis 127.0.0.1:6379> zrangebyscore score 100 10000  limit 1 3
1) "zhangsan"
2) "lisi"
3) "wangwu"

f)zrevrangebyscore
  :zrevrangescore key max min [withscores] [limit offset count]

  :     key score<=max  score>=min    ,      score        。    withscores          score,    limit          。

redis 127.0.0.1:6379> zrevrangebyscore score 0 10000
(empty list or set)
redis 127.0.0.1:6379> zrevrangebyscore score 10000 0
1) "wangwu"
2) "lisi"
3) "zhangsan"
4) "liuli"
redis 127.0.0.1:6379> zrevrangebyscore score 10000 0 withscores limit 0, 2
1) "wangwu"
2) "249"
3) "lisi"
4) "240"

  :max min  

g)zrank
  :zrank key member

  :  score    ,  member      index

redis 127.0.0.1:6379> zrange score 0 -1
1) "liuli"
2) "zhangsan"
3) "lisi"
4) "wangwu"
redis 127.0.0.1:6379> zrank score liuli
(integer) 0
redis 127.0.0.1:6379> zrank score wangwu
(integer) 3

h)zrevrank
  :zrevrank key member

  :  score      ,  member    key  index

redis 127.0.0.1:6379> zrange score 0 -1
1) "liuli"
2) "zhangsan"
3) "lisi"
4) "wangwu"
redis 127.0.0.1:6379> zrevrank score liuli
(integer) 3
redis 127.0.0.1:6379> zrevrank score wangwu
(integer) 0

i)zcard
  :zcard key

  :     key   

redis 127.0.0.1:6379> zcard score
(integer) 4
redis 127.0.0.1:6379> zcard stdu  #        0
(integer) 0

3)update
a)zincrby
  :zincrby key increment member

  :   key member    increment,      score

redis 127.0.0.1:6379> zscore score liuli
"100"
redis 127.0.0.1:6379> zincrby score 300 liuli
"400"
redis 127.0.0.1:6379> zscore score liuli
"400"
redis 127.0.0.1:6379> zincrby score 500 xie
"500"
  :  member key    ,    member

4)delete
a)zrem
  :zrem key member [member ...]

  :            member,    member   

redis 127.0.0.1:6379> zrange score 0 -1
1) "zhangsan"
2) "lisi"
3) "wangwu"
4) "liuli"
5) "xie"
redis 127.0.0.1:6379> zrem score xie wwww  #www   
(integer) 1
redis 127.0.0.1:6379> zrange score 0 -1
1) "zhangsan"
2) "lisi"
3) "wangwu"
4) "liuli"

  :  member   ,   

b)zremrangebyrank
  :zremrangebyrank key start stop

  :            【start stop】   ,        

redis 127.0.0.1:6379> zrange score 0 -1
1) "zhangsan"
2) "lisi"
3) "wangwu"
4) "liuli"
redis 127.0.0.1:6379> zremrangebyrank score 0 1
(integer) 2
redis 127.0.0.1:6379> zrange score 0 -1
1) "wangwu"
2) "liuli"

  :  stop start  ,   0 

c)zremrangebyscore
  :zremrangebyscore key min max

  :       member,  member score    min    max;        

redis 127.0.0.1:6379> zrange score 0 -1 withscores
1) "wangwu"
2) "249"
3) "liuli"
4) "400"
redis 127.0.0.1:6379> zremrangebyscore score 248 250
(integer) 1
redis 127.0.0.1:6379> zrange score 0 -1 withscores
1) "liuli"
2) "400"

5)その他
a)zinterstore
  :zinterstore destination numkeys  key[key...] [weights weight] [aggregate sum|min|max]

  :          ,     key      numkeys    ,         destination。     ,destination    score      key    score  。  weights             ,      score        (aggregate)  ,       。         weight,   1;  aggregate           。min,  score,max,  score,sum,  。

redis 127.0.0.1:6379> zrange score 0 -1 withscores
1) "lisi"
2) "20"
3) "liuli"
4) "400"
redis 127.0.0.1:6379> zrange score1 0 -1 withscores
1) "wangwu"
2) "20"
3) "liuli"
4) "30"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 #     sum(score.member.score * 1 + score1.member.score * 1)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "430"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 weights 1 2 #    ,sum(score.member.score * 1 + score1.member.score * 2)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "460"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 aggregate min #      ,min(score.member.score * 1 , score1.member.score * 1)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "30"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 aggregate max #       max(score.member.score * 1 , score1.member.score * 1)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "400"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 aggregate sum  #    ,sum(score.member.score * 1 , score1.member.score * 1)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "430"
redis 127.0.0.1:6379> zinterstore dest 2 score score1 weights 1 2 aggregate min #       min(score.member.score * 1 , score1.member.score * 2)
(integer) 1
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "liuli"
2) "60"

b)zunionstore
  :zunionstore destination numkeys  key[key...] [weights weight] [aggregate sum|min|max]

  :          ,     key      numkeys    ,         destination。。     ,destination    score      key    score  。weights      ,aggregate      ,  ,    zinterstore    

redis 127.0.0.1:6379> zrange score 0 -1 withscores
1) "lisi"
2) "20"
3) "liuli"
4) "400"
redis 127.0.0.1:6379> zrange score1 0 -1 withscores
1) "wangwu"
2) "20"
3) "liuli"
4) "30"
redis 127.0.0.1:6379> zunionstore dest 2 score score1 #     sum(score.member.score * 1 , score1.member.score * 1)
(integer) 3
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "lisi"
2) "20"
3) "wangwu"
4) "20"
5) "liuli"
6) "430"
redis 127.0.0.1:6379> zunionstore dest 2 score score1  weights 1 2 aggregate sum #     sum(score.member.score * 1 , score1.member.score * 2)
(integer) 3
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "lisi"
2) "20"
3) "wangwu"
4) "40"
5) "liuli"
6) "460"
redis 127.0.0.1:6379> zunionstore dest 2 score score1  weights 1 2 aggregate max #      max(score.member.score * 1 , score1.member.score * 2)
(integer) 3
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "lisi"
2) "20"
3) "wangwu"
4) "40"
5) "liuli"
6) "400"
redis 127.0.0.1:6379> zunionstore dest 2 score score1  weights 2 4 aggregate min #      min(score.member.score * 2 , score1.member.score * 4)
(integer) 3
redis 127.0.0.1:6379> zrange dest 0 -1 withscores
1) "lisi"
2) "40"
3) "wangwu"
4) "80"
5) "liuli"
6) "120"

注意:sorted setのすべての関数は、次の方法で表示してください.
[root@xsf001 ~]# redis-cli 
redis 127.0.0.1:6379> help @sorted_set