

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Bloom 필터 시작하기
<a name="BloomFilters"></a>

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

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

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

Bloom 관련 지표 `BloomFilterBasedCmds`, `BloomFilterBasedCmdsLatency`, 및 `BloomFilterBasedCmdsECPUs`는 CloudWatch에 통합되어 이 데이터 유형의 사용을 모니터링합니다. 자세한 내용은 [Valkey 및 Redis OSS에 대한 지표](CacheMetrics.Redis.md) 단원을 참조하십시오.

**참고**  
Bloom 필터를 사용하려면 ElastiCache Valkey 8.1 이상에서 실행해야 합니다.
블룸 데이터 형식은 다른 비Valkey 기반 블룸 제품과 RDB 호환되지 않습니다.

## Bloom 필터 데이터 유형 개요
<a name="BloomFilters.datatype"></a>

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

Bloom 필터의 주요 설명서 소스는 valkey.io 설명서 페이지에서 확인할 수 있습니다. 여기에는 다음 정보가 포함되어 있습니다.
+ [Bloom 필터의 일반적인 사용 사례](https://valkey.io/topics/bloomfilters/#common-use-cases-for-bloom-filters)
  + 광고/이벤트 중복 제거
  + 사기 탐지
  + 유해한 콘텐츠/스팸 필터링
  + 고유한 사용자 감지
+ [조정 Bloom 필터와 비조정 Bloom 필터의 차이점](https://valkey.io/topics/bloomfilters/#scaling-and-non-scaling-bloom-filters)
  + 조정 Bloom 필터와 비 조정 Bloom 필터 중에서 결정하는 방법
+ [Bloom 속성](https://valkey.io/topics/bloomfilters/#bloom-properties)
  + Bloom 필터의 튜닝 가능한 속성에 대해 알아봅니다. 여기에는 오탐률, 용량, 조정 및 비조정 속성 등이 포함됩니다.
+ [Bloom 명령의 성능](https://valkey.io/topics/bloomfilters/#performance)
+ [전체 Bloom 필터 통계 모니터링](https://valkey.io/topics/bloomfilters/#monitoring)
+ [대형 Bloom 필터 처리](https://valkey.io/topics/bloomfilters/#handling-large-bloom-filters)
  + Bloom 필터가 메모리 사용량 한도에 도달했는지, 원하는 용량에 도달하도록 규모를 조정할 수 있는지 확인하는 방법에 대한 권장 사항 및 세부 정보입니다.
  + [BF.INFO](https://valkey.io/commands/bf.info/) 명령을 사용하여 Bloom 필터 문서에서 사용하는 메모리 양을 구체적으로 확인할 수 있습니다.

## Bloom 크기 제한
<a name="BloomFilters.size"></a>

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

## 블룸 ACL
<a name="BloomFilters.ACL"></a>

기존의 데이터 유형별 범주(@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 필터 관련 지표
<a name="BloomFilters.Metrics"></a>

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


| CW 지표 | 단위 | 서버리스/노드 기반 | 설명 | 
| --- | --- | --- | --- | 
| BloomFilterBasedCmds | 개수 | 둘 다 | 읽기 및 쓰기 명령을 포함한 총 Bloom 필터 명령 수입니다. | 
| BloomFilterBasedCmdsLatency | 마이크로초 | 자체 관리형 | 읽기 및 쓰기 명령을 포함한 모든 Bloom 필터 명령의 지연 시간입니다. | 
| BloomFilterBasedCmdsECPUs | 개수 | 서버리스 | 읽기 및 쓰기 명령을 포함한 모든 Bloom 필터 명령에서 사용되는 ECPU입니다. | 

## Bloom 필터 명령
<a name="SupportedCommandsBloom"></a>

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


| 이름 | 설명 | 
| --- | --- | 
| [BF.ADD](https://valkey.io/commands/bf.add/) | Bloom 필터에 단일 항목을 추가합니다. 필터가 아직 없는 경우 항목이 생성됩니다. | 
| [BF.CARD](https://valkey.io/commands/bf.card/) | Bloom 필터의 카디널리티를 반환합니다. | 
| [BF.EXISTS](https://valkey.io/commands/bf.exists/) | Bloom 필터에 지정된 항목이 포함되어 있는지 확인합니다. | 
| [BF.INFO](https://valkey.io/commands/bf.info/) | 특정 Bloom 필터의 사용 정보 및 속성을 반환합니다. | 
| [BF.INSERT](https://valkey.io/commands/bf.insert/) | 항목이 0개 이상인 Bloom 필터를 생성하거나 기존 Bloom 필터에 항목을 추가합니다. | 
| [BF.MADD](https://valkey.io/commands/bf.madd/) | Bloom 필터에 하나 이상의 항목을 추가합니다. | 
| [BF.MEXISTS](https://valkey.io/commands/bf.mexists/) | Bloom 필터에 하나 이상의 항목이 포함되어 있는지 확인합니다. | 
| [BF.RESERVE](https://valkey.io/commands/bf.reserve/) | 지정된 속성을 사용하여 빈 Bloom 필터를 생성합니다. | 

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