ZINTERSTORE

<< ZUNIONSTORE ZSCAN >>

집합을 구해서 새로운 집합에 저장

사용법은 zinterstore dest_key 2 src_key1 src_key2 이다.
결과 집합은 지정한 dest_key에 저장된다.
각 member의 score는 더해진다.

src_key1 ={ (1,A),(2,B),(3,C)}
src_key2 = {(4,B),(5,C)(6,D)}
dest_key = {(6,B),(8,C)}

Example

명령>zinterstore dest_key 2 myset1 myset2
결과>4
명령>zrange dest_key 0 -1 withscores
결과> 0) 6 -> B
1) 8 -> C

애니메이션 보기



weights 사용

사용법은 zinterstore dest_key 2 src_key1 src_key2 weights 2 3 이다.
첫 번째 weight 2는 src_key1의 각 score에 곱해지고, 두 번째 weight 3는 src_key2의 각 score에 곱해진다.

src_key1 ={ (1,A),(2,B),(3,C) } ->{ (2*2,B)(3*2,C) }
src_key2 ={ (4,B),(5,C),(6,D) }->{ (4*3,B)(5*3,C) }
dest_key ={ (4+12,B)(6+15,C) }
={ (16,B)(21,C) }

Example

명령>zinterstore dest_key 2 myset1 myset2 weights 2 3
결과>2
명령>zrange dest_key 0 -1 withscores
결과> 0) 16 -> B
1) 21 -> C

애니메이션 보기



aggregate 사용

사용법은 zinterstore dest_key 2 src_key1 src_key2 aggregate sum|min|max 이다.
sum은 각 score를 합한다. aggregate를 지정하지 않으면 sum 이 default이므로 sum으로 계산된다.
min은 각 member에서 적은 score를 취하고, max는 큰 score를 취한다.

src_key1 ={ (1,A),(2,B),(3,C) }
src_key2 ={ (4,B),(5,C),(6,D) }
dest_key aggregate min = {(2,B),(3,C) }
dest_key aggregate max = {(4,B),(5,C) }

Example

명령>zinterstore dest_key 2 myset1 myset2 aggregate min
결과>4
명령>zrange dest_key 0 -1 withscores
결과> 0) 2 -> B
1) 3 -> C
명령>zinterstore dest_key 2 myset1 myset2 aggregate max
결과>4
명령>zrange dest_key 0 -1 withscores
결과> 0) 4 -> B
1) 5 -> C

애니메이션 보기



세개 집합의 합집합을 구해서 저장

사용법은 zinterstore dest_key 3 myset1 myset2 myset3 이다.

myset1 ={ (1,A),(2,B),(3,C)}
myset2 = {(4,B),(5,C)(6,D)}
myset3 = { (7,C)(8,D)(9,E) }
dest_key ={ (15,C)}
source key의 갯수에는 제한이 없다.



source key를 desctination key에 지정 가능

ZINTERSTORE myset1 myset1 myset2
myset1의 기존 내용은 지워지고, 결과가 myset1에 들어간다.



명령문

ZINTERSTORE dest_key numkeys src_key [src_key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]

  • 이 명령은 version 2.0.0 부터 사용할 수 있다.
  • 논리적 처리 소요시간은 O(N)+O(M log(M))이다. N은 입력 집합들의 총 member 수이고, M은 결과 집합의 member 수이다.
관련 명령 ZINTERSTORE, SINTERSTORE, SUNIONSTORE, SDIFFSTORE
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

명령을 실습해 보시려면 여기를 클릭해서 Redis Web Client 를 실행하세요.


<< ZUNIONSTORE ZINTERSTORE ZSCAN >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

Email 답글이 올라오면 이메일로 알려드리겠습니다.