728x90
( 출처 http://bcho.tistory.com/654 , http://wiki.pchero21.com/wiki/Redis )
Sets
set은 string의 집합이다. 여러개의 값을 하나의 Value 내에 넣을 수 있다고 생각하면 되며 블로그 포스트의 태깅(Tag)등에 사용될 수 있다.재미있는 점은 set간의 연산을 지원하는데, 집합인 만큼 교집합, 합집합, 차이(Differences)를 매우 빠른 시간내에 추출할 수 있다.정렬되지 않은 집합으로 중복된 데이터가 존재하지 않는다.추가 , 제거 및 존재 유무 체크시 소모되는시간이 요소수에 관계없이 일정하다.list와 마찬가지로 최대 요소 개수는 4,294,967,295 개이다.
Redis Sets 사용 관련 document https://redis.io/commands/#set
Sets - document에 더 많이 있지만 필요할것같은것만 정리함.
- SADD - Sets 타입의 key value 추가 ( 다중 추가 가능 Space 구분 )
- SCARD - Sets에 저장되어있는 요소들의 길이를 반환.
- SMEMBERS - 해당되는 key값 안의 요소들을 출력
- SISMEMBER - 해당 요소가 Sets안에 있다면 1 없다면 0을 반환
- SMOVE - 해당 요소를 다른 key값으로 이동시킨다.
- SPOP - 요소에 저장된 값들중 해당 갯수만큼 랜덤으로 POP.
- SRANDMEMBER - 요소에 저장된 값들중 지정된 count만큼 랜덤 반환 ( count가 없으면 1개 반
- SREM - 저장된 요소중에서 일치하는 요소가 있다면 삭제후 1반환 삭제될요소가 없다면 0을 반환
# SADD를 통한 추가 , SMEMBERS를 이용한 Sets 확인 127.0.0.1:6379> SADD mySet "Choi" (integer) 1 127.0.0.1:6379> SADD mySet "YunJin" (integer) 1 127.0.0.1:6379> SADD mySet "YunJin" (integer) 0 127.0.0.1:6379> SMEMBERS mySet 1) "YunJin" 2) "Choi" # SCARD 로 길이 출력 127.0.0.1:6379> SCARD mySet (integer) 2 # SISMEMBER 을 통해 해당 요소가 존재하는지 확인 127.0.0.1:6379> sismember mySet Ch__ (integer) 0 127.0.0.1:6379> sismember mySet Choi (integer) 1 # SMOVE를 통해 mySet에 있던 Choi를 moveSet으로 이동시킨다. ( 없다면 생성 ) 127.0.0.1:6379> SMOVE mySet moveSet Choi (integer) 1 127.0.0.1:6379> smembers mySet 1) "YunJin" 127.0.0.1:6379> smembers moveSet 1) "Choi" # SPOP 을 통한 랜덤 요소 POP default count 0 127.0.0.1:6379> SADD popSet A B C D E (integer) 5 127.0.0.1:6379> SPOP popSet 2 1) "B" 2) "D" 127.0.0.1:6379> SPOP popSet 2 1) "A" 2) "C" 127.0.0.1:6379> SMEMBERS popSet 1) "E" # SRANDMEMBER를 통한 랜덤한 요소 출력 # SPOP과 다르게 출력은되지만 직접적으로 요소가 빠지지는 않는다. # Count > 0 , 즉양수라면 중복되지 않는값들의 절대값만큼 출력되고 # Count < 0 라면 중복된 값들이 Count절대값 만큼 출력된다 127.0.0.1:6379> SADD lottoSet 1 2 3 4 5 6 7 8 9 10 (integer) 10 127.0.0.1:6379> SRANDMEMBER lottoSet 6 1) "2" 2) "9" 3) "3" 4) "5" 5) "10" 6) "4" # SREM 해당 요소 삭제 # lottoSet요소중 1이 삭제됨. 127.0.0.1:6379> SREM lottoSet 1 (integer) 1 127.0.0.1:6379> SMEMBERS lottoSet 1) "2" 2) "3" 3) "4" 4) "5" 5) "6" 6) "7" 7) "8" 8) "9" 9) "10"
728x90
반응형
'Redis' 카테고리의 다른 글
[Redis] 데이터 타입 Lists (0) | 2018.10.18 |
---|---|
[Redis] 데이터 타입 String (0) | 2018.10.18 |
댓글