구성 파라미터
구성 파라미터 (Configuration Parameters)
Redis의 확률적 데이터 구조(probabilistic data structures)는 여러 구성 파라미터를 지원해요. 이 페이지에서는 Bloom filter와 Cuckoo filter의 구성 파라미터가 Redis 8에서 어떻게 설정되는지, 그리고 각 파라미터의 기본값과 유효 범위를 정리해 드릴게요.
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>표기와 다를 수 있어요. (원문 그대로 인용)