Druid Redis Cache
Druid Redis Cache
druid-redis-cache 확장은 Redis 기반의 Druid 캐시 구현이에요. 클러스터 모드와 스탠드얼론 모드를 지원하고, broker, historical, middle manager 노드에 설치할 수 있어요.
출처: 문서
본문
Redis 기반의 Druid 용 캐시 구현이에요.
아래는 이 모듈이 알고 있는 안내와 구성 옵션이에요.
Installation
Druid와 함께 제공되는 pull-deps 도구로 broker, historical, middle manager 노드에 이 확장을 설치해 주세요.
java -classpath "druid_dir/lib/*" org.apache.druid.cli.Main tools pull-deps -c org.apache.druid.extensions.contrib:druid-redis-cache:{VERSION}
Enabling
설치 후 이 확장을 활성화하려면,
druid-redis-cache확장을 포함하세요.- broker 노드에서 캐시를 활성화하려면 broker 캐싱 문서에 따라 관련 속성을 설정하세요.
- historical 노드에서 캐시를 활성화하려면 historical 캐싱 문서에 따라 관련 속성을 설정하세요.
- middle manager 노드에서 캐시를 활성화하려면 peon 캐싱 문서에 따라 관련 속성을 설정하세요.
druid.cache.type을redis로 설정하세요.- 다음 속성들을 추가하세요.
Configuration
Cluster mode
redis 클러스터를 활용하려면 다음 속성들을 설정해야 해요.
참고: 일부 redis 클라우드 서비스 제공자는 redis 프록시를 통해 redis 클러스터 서비스를 제공해요. 이런 클러스터는 아래의 Standalone mode 구성에 따라 주세요.
| 속성 | 설명 | 기본값 | 필수 |
|---|---|---|---|
druid.cache.cluster.nodes |
클러스터의 Redis 노드. 쉼표로 구분된 문자열로 표현돼요. 아래 예시 참고. | None | yes |
druid.cache.cluster.maxRedirection |
최대 재시도 횟수. | 5 | no |
예시:
# a typical redis cluster with 6 nodes
druid.cache.cluster.nodes=127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003,127.0.0.1:7004,127.0.0.1:7005,127.0.0.1:7006
Standalone mode
스탠드얼론 redis를 사용하려면 다음 속성들을 설정해야 해요.
| 속성 | 설명 | 기본값 | 필수 |
|---|---|---|---|
druid.cache.host |
Redis 서버 host. | None | yes |
druid.cache.port |
Redis 서버 port. | None | yes |
druid.cache.database |
Redis 데이터베이스 인덱스. | 0 | no |
참고: druid.cache.cluster.nodes와 druid.cache.host 둘 다 제공되면 클러스터 모드가 우선해요.
Shared Properties
위 속성들 외에도, 서로 다른 요구를 충족하도록 커스터마이즈할 수 있는 추가 속성들이 있어요.
| 속성 | 설명 | 기본값 | 필수 |
|---|---|---|---|
druid.cache.password |
redis 서버/클러스터에 접근하기 위한 비밀번호. | None | no |
druid.cache.expiration |
캐시 항목의 만료 시간. | P1D | no |
druid.cache.timeout |
Redis에 연결하고 Redis에서 항목을 읽는 타임아웃. | PT2S | no |
druid.cache.maxTotalConnections |
Redis에 대한 최대 총 연결 수. | 8 | no |
druid.cache.maxIdleConnections |
Redis에 대한 최대 유휴 연결 수. | 8 | no |
druid.cache.minIdleConnections |
Redis에 대한 최소 유휴 연결 수. | 0 | no |
druid.cache.expiration과 druid.cache.timeout 속성의 값은 Period 포맷이거나 밀리초 단위의 숫자일 수 있어요.
# Period format(recomended)
# cache expires after 1 hour
druid.cache.expiration=PT1H
# or in number(milliseconds) format
# 1 hour = 3_600_000 milliseconds
druid.cache.expiration=3600000
Metrics
일반적인 캐시 메트릭 외에도, redis 캐시 구현은 total과 delta 둘 다에서 다음을 보고해요.
| 메트릭 | 설명 | 정상 값 |
|---|---|---|
query/cache/redis/*/requests |
redis 캐시에 대한 요청 수. | redis에 대한 어떤 요청이든 요청 수를 1 증가시켜요. |
더 알아보기 (Learn more)
- Druid 기본 캐싱 설정은 Broker caching 문서를 참고해 주세요.
- 확장 프로그램 불러오기에서 확장 load list에 추가하는 방법을 확인해 보세요.