반응형
레디스 세트
Redis 세트 소개
Redis 세트는 순서가 지정되지 않은 고유 문자열(구성원) 모음입니다. Redis 세트를 사용하여 효율적으로 다음을 수행할 수 있습니다.
- 고유 항목을 추적합니다(예: 주어진 블로그 게시물에 액세스하는 모든 고유 IP 주소 추적).
- 관계(예: 주어진 역할을 가진 모든 사용자의 집합)를 나타냅니다.
- 교집합, 합집합 및 차분과 같은 일반적인 집합 연산을 수행합니다.
예
- 사용자 123 및 456에 대한 즐겨찾기 도서 ID 세트 저장:
> SADD user:123:favorites 347
(integer) 1
> SADD user:123:favorites 561
(integer) 1
> SADD user:123:favorites 742
(integer) 1
> SADD user:456:favorites 561
(integer) 1
- 사용자 123이 책 742 및 299를 좋아하는지 확인하십시오.
> SISMEMBER user:123:favorites 742
(integer) 1
> SISMEMBER user:123:favorites 299
(integer) 0
- 사용자 123과 456은 공통적으로 좋아하는 책이 있습니까?
> SINTER user:123:favorites user:456:favorites
1) "561"
- 사용자 123이 즐겨찾는 책은 몇 권입니까?
> SCARD user:123:favorites
(integer) 3
제한
Redis 세트의 최대 크기는 2^32 - 1(4,294,967,295) 구성원입니다.
기본 명령
- SADD집합에 새 구성원을 추가합니다.
- SREM집합에서 지정된 멤버를 제거합니다.
- SISMEMBER집합 구성원에 대한 문자열을 테스트합니다.
- SINTER두 개 이상의 집합이 공통으로 갖는 구성원 집합(즉, 교차)을 반환합니다.
- SCARD집합의 크기(일명 카디널리티)를 반환합니다.
set 명령의 전체 목록을 참조하십시오 .
성능
항목이 집합 구성원인지 여부를 추가, 제거 및 확인하는 등 대부분의 집합 작업은 O(1)입니다. 이것은 그들이 매우 효율적이라는 것을 의미합니다. 그러나 수십만 명 이상의 구성원이 있는 대규모 집합의 경우 SMEMBERS명령을 실행할 때 주의해야 합니다. 이 명령은 O(n)이며 단일 응답으로 전체 집합을 반환합니다. 대안 SSCAN으로 세트의 모든 구성원을 반복적으로 검색할 수 있는 를 고려하십시오.
대안
대규모 데이터 세트(또는 스트리밍 데이터)에 대한 구성원 확인을 설정하면 많은 메모리를 사용할 수 있습니다. 메모리 사용량이 걱정되고 완벽한 정밀도가 필요하지 않은 경우 세트의 대안으로 Bloom 필터 또는 Cuckoo 필터 를 고려하십시오.
Redis 세트는 일종의 인덱스로 자주 사용됩니다. 데이터를 인덱싱하고 쿼리해야 하는 경우 RediSearch 및 RedisJSON 을 고려하세요 .
더 알아보기
- Redis Sets Explained 및 Redis Sets Elaborated 는 Redis 세트를 다루는 짧지만 철저한 비디오 설명입니다.
- Redis University의 RU101 은 Redis 세트를 자세히 살펴봅니다.
참고(번역) : https://redis.io/docs/data-types/sets/
반응형
'Database > NoSQL' 카테고리의 다른 글
[mongoDB] centos7 몽고DB 설치 (0) | 2022.10.12 |
---|---|
[redis] 레디스 데이터타입 - hashes(해시) (0) | 2022.10.06 |
[redis] 레디스 데이터 타입 - SortedSet (정렬된세트) (0) | 2022.10.06 |
[redis] 레디스 데이터 타입 - Strings(문자열) (0) | 2022.10.06 |
[redis] centos7 레디스 설치 및 설정 (0) | 2022.09.20 |