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)