Bloom 필터 시작하기 - Amazon ElastiCache

Bloom 필터 시작하기

ElastiCache는 요소가 집합의 멤버인지 확인하기 위한 공간 효율적인 확률적 데이터 구조를 제공하는 Bloom 필터 데이터 구조를 지원합니다. Bloom 필터를 사용하면 오탐지가 발생할 수 있습니다. 필터는 요소가 집합에 추가되지 않았더라도 요소가 존재한다는 것을 잘못 나타낼 수 있습니다. 그러나 Bloom 필터를 사용하면 거짓 부정을 방지할 수 있습니다. 즉, 요소가 집합에 추가되었더라도 요소가 존재하지 않는다는 잘못된 표시입니다.

fp 비율을 조정하여 잠재적 거짓 긍정의 비율을 워크로드에 대해 선호하는 비율로 설정할 수 있습니다. 용량(Bloom 필터가 보유할 수 있는 항목 수), 크기 조정 및 크기 조정 외 속성 등을 구성할 수도 있습니다.

지원되는 엔진 버전으로 클러스터를 생성하면 블룸 데이터 유형 및 관련 명령을 자동으로 사용할 수 있습니다. bloom 데이터 형식은 valkey-py, valkey-javavalkey-go를 포함한 공식 Valkey 클라이언트 라이브러리의 Bloom 필터 명령 구문과 API 호환됩니다. 기존 Bloom 기반 Valkey 및 Redis OSS 애플리케이션을 ElastiCache로 쉽게 마이그레이션할 수 있습니다. 전체 명령 목록은 Bloom 필터 명령 섹션을 참조하세요.

Bloom 관련 지표 BloomFilterBasedCmds, BloomFilterBasedCmdsLatency, 및 BloomFilterBasedCmdsECPUs는 CloudWatch에 통합되어 이 데이터 유형의 사용을 모니터링합니다. 자세한 내용은 Valkey 및 Redis OSS에 대한 지표 섹션을 참조하세요.

참고
  • Bloom 필터를 사용하려면 ElastiCache Valkey 8.1 이상에서 실행해야 합니다.

  • 블룸 데이터 형식은 다른 비Valkey 기반 블룸 제품과 RDB 호환되지 않습니다.

Bloom 필터 데이터 유형 개요

Bloom 필터는 요소를 추가하고 요소가 존재하는지 확인할 수 있는 공간 효율적인 확률적 데이터 구조입니다. 필터가 추가되지 않았더라도 요소가 존재함을 잘못 나타내는 경우 거짓 긍정이 발생할 수 있습니다. 그러나 Bloom 필터는 거짓 부정(추가된 경우에도 요소가 존재하지 않음을 잘못 나타냄)이 발생하지 않도록 보장합니다.

Bloom 필터의 주요 설명서 소스는 valkey.io 설명서 페이지에서 확인할 수 있습니다. 여기에는 다음 정보가 포함되어 있습니다.

Bloom 크기 제한

단일 Bloom 필터 객체의 메모리 사용량은 128MB로 제한됩니다. BF.INFO <key> SIZE 명령을 사용하여 Bloom 필터가 소비하는 메모리 양을 확인할 수 있습니다.

블룸 ACL

기존의 데이터 유형별 범주(@string, @hash 등)와 유사합니다. Bloom 명령 및 데이터에 대한 액세스 권한 관리를 단순화하기 위해 새 범주 @bloom이 추가되었습니다. 다른 기존 Valkey 또는 Redis OSS 명령은 @bloom 범주에 속하지 않습니다.

@read, @write, @fast와 같은 새로운 Bloom 명령을 포함하기 위해 업데이트된 3가지 기존 ACL 범주가 있습니다. 다음의 표는 Bloom 명령이 적절한 범주에 매핑되었음을 나타냅니다.

Bloom 명령 @read @write @fast @bloom

BF.ADD

y

y

y

BF.CARD

y

y

y

BF.EXISTS

y

y

y

BF.INFO

y

y

y

BF.INSERT

y

y

y

BF.MADD

y

y

y

BF.MEXISTS

y

y

y

BF.RESERVE

y

y

y

Bloom 필터 관련 지표

Bloom 데이터 구조와 관련된 다음 CloudWatch 지표가 제공됩니다.

CW 지표 단위 서버리스/노드 기반 설명

BloomFilterBasedCmds

개수

모두

읽기 및 쓰기 명령을 포함한 총 Bloom 필터 명령 수입니다.

BloomFilterBasedCmdsLatency

마이크로초

자체 관리형

읽기 및 쓰기 명령을 포함한 모든 Bloom 필터 명령의 지연 시간입니다.

BloomFilterBasedCmdsECPUs

개수

Serverless

읽기 및 쓰기 명령을 포함한 모든 Bloom 필터 명령에서 사용되는 ECPU입니다.

Bloom 필터 명령

Bloom 필터 명령Valkey.io 웹 사이트에 설명되어 있습니다. 각 명령 페이지에서는 구문, 동작, 반환 값 및 잠재적 오류 조건을 포함하여 Bloom 명령에 대한 포괄적인 개요를 제공합니다.

명칭 설명
BF.ADD

Bloom 필터에 단일 항목을 추가합니다. 필터가 아직 없는 경우 항목이 생성됩니다.

BF.CARD

Bloom 필터의 카디널리티를 반환합니다.

BF.EXISTS

Bloom 필터에 지정된 항목이 포함되어 있는지 확인합니다.

BF.INFO

특정 Bloom 필터의 사용 정보 및 속성을 반환합니다.

BF.INSERT

항목이 0개 이상인 Bloom 필터를 생성하거나 기존 Bloom 필터에 항목을 추가합니다.

BF.MADD

Bloom 필터에 하나 이상의 항목을 추가합니다.

BF.MEXISTS

Bloom 필터에 하나 이상의 항목이 포함되어 있는지 확인합니다.

BF.RESERVE

지정된 속성을 사용하여 빈 Bloom 필터를 생성합니다.

참고

BF.LOAD는 ElastiCache에서 지원되지 않습니다. 이는 ElastiCache가 지원하지 않는 AOF 사용하고만 관련이 있습니다.