구성 파라미터

구성 파라미터 (Configuration Parameters)

Redis의 확률적 데이터 구조(probabilistic data structures)는 여러 구성 파라미터를 지원해요. 이 페이지에서는 Bloom filter와 Cuckoo filter의 구성 파라미터가 Redis 8에서 어떻게 설정되는지, 그리고 각 파라미터의 기본값과 유효 범위를 정리해 드릴게요.

출처: Redis 공식 문서 — configuration (probabilistic data types)

Redis 8에서의 구성 방식

Redis Open Source의 Redis 8부터, 확률적 데이터 구조의 구성 파라미터는 다음과 같은 방식으로 설정돼요:

  • 로드 시점(load time): redis.conf 파일을 통해 설정
  • 런타임(run time): 해당되는 경우 CONFIG SET 명령으로 설정

또한 Redis 8은 확률적 구성 파라미터를 다른 구성 파라미터처럼 영속화(persist)해요. 예를 들어 CONFIG REWRITE 명령을 쓸 수 있죠.

Redis 확률적 데이터 구조 구성 파라미터

아래 표는 Bloom filter 구성 파라미터 중 어떤 것을 런타임에 설정할 수 있는지, 그리고 Redis Software 및 Redis Cloud와의 호환성을 요약해요.

파라미터 이름
(버전 < 8.0)
파라미터 이름
(버전 ≥ 8.0)
런타임 Redis
Software
Redis
Cloud
ERROR_RATE bf-error-rate ✅ 지원 ✅ Flexible & Annual
❌ Free & Fixed
bf-expansion-factor

다음 표는 Cuckoo filter 구성 파라미터 중 런타임 설정 가능 여부와 호환성을 요약해요.

파라미터 이름
(버전 < 8.0)
파라미터 이름
(버전 ≥ 8.0)
런타임 Redis
Software
Redis
Cloud
cf-bucket-size
cf-initial-size
cf-expansion-factor
cf-max-iterations

Redis Open Source 버전 < 8.0의 파라미터 이름은 deprecated(사용 중단 예정)이지만, Redis 8에서도 여전히 지원돼요. 자세한 내용은 Redis 구성 문서도 참고하세요.

주의: 필터는 항상 예상 용량(capacity)과 원하는 오류율(error rate)에 맞춰 크기를 정해야 해요. 작은 필터가 여럿 존재하고 대부분 기본 크기 근처에 머무를 것으로 예상되는 경우에는 INSERT 계열 명령을 기본값으로 쓰는 게 좋아요. 필터를 의도된 용도에 맞게 최적화하지 않으면 성능과 메모리 효율이 떨어져요.

Bloom filter 기본 파라미터 (Default parameters for Bloom filters)

bf-expansion-factor

v8.0.0에서 추가됨. Bloom filter의 확장 계수(expansion factor).

  • 타입: integer
  • 유효 범위: [0 .. 32768]
  • 기본값: 2

bf-initial-size

Bloom filter의 초기 용량(initial capacity).

  • 타입: integer
  • 유효 범위: [1 .. 1048576]
  • 기본값: 100

Cuckoo filter 기본 파라미터 (Default parameters for Cuckoo filters)

cf-bucket-size

v8.0.0에서 추가됨. 각 Cuckoo filter 버킷의 항목 수.

  • 타입: integer
  • 유효 범위: [1 .. 255]
  • 기본값: 2

cf-initial-size

v8.0.0에서 추가됨. Cuckoo filter의 초기 용량.

  • 타입: integer
  • 유효 범위: [2*cf-bucket-size .. 1048576]
  • 기본값: 1024

cf-expansion-factor

v8.0.0에서 추가됨. Cuckoo filter의 확장 계수.

  • 타입: integer
  • 유효 범위: [0 .. 32768]
  • 기본값: 1

cf-max-expansions

Cuckoo filter의 최대 확장 횟수.

  • 타입: integer
  • 유효 범위: [1 .. 65535]
  • 기본값: 32

cf-max-iterations

v8.0.0에서 추가됨. Cuckoo filter의 최대 반복(iteration) 횟수.

  • 타입: integer
  • 유효 범위: [1 .. 65535]
  • 기본값: 20

모듈 로드 시 구성 파라미터 설정 (deprecated)

이 방법들은 Redis 8부터 deprecated예요.

redis.conf에서:

loadmodule ./redisbloom.so [OPT VAL]...

Redis CLI에서 MODULE LOAD 명령으로:

127.0.0.1:6379> MODULE LOAD redisbloom.so [OPT VAL]...

명령줄(command line)에서:

$ redis-server --loadmodule ./redisbloom.so [OPT VAL]...

참고: 위 127.0.0.6379> 표시는 원문에 그대로 표기된 것으로, 일반적인 127.0.0.1:6379> 표기와 다를 수 있어요. (원문 그대로 인용)

더 알아보기 (Learn more)