다음을 통해 공유


Azure Managed Redis(미리 보기) 클라이언트 라이브러리

Azure Managed Redis(미리 보기)는 널리 사용되는 메모리 내 데이터 저장소인 Redis를 기반으로 구축되었습니다. 많은 프로그래밍 언어의 Redis 클라이언트는 Azure Managed Redis에 액세스할 수 있습니다. 각 클라이언트 라이브러리에는 Redis 명령을 사용하여 Redis 서버를 호출하는 자체 API가 있지만 클라이언트 라이브러리는 모든 Redis 서버와 통신하도록 빌드되었습니다.

각 클라이언트는 해당 라이브러리에 대한 참조 문서를 자체적으로 관리하고 있습니다. 라이브러리는 클라이언트 라이브러리 개발자 커뮤니티를 통해 지원을 제공받을 수 있는 링크를 포함하고 있습니다. Azure Managed Redis 팀은 클라이언트 라이브러리의 개발이나 지원을 담당하지 않습니다.

다음 권장 사항은 인기와 질문에 대한 지원 및 답변을 위한 활성 온라인 커뮤니티가 있는지 여부를 기반으로 합니다. 사용 가능한 최신 버전만 사용하고 새 버전을 사용할 수 있게 되면 정기적으로 업그레이드하는 것이 좋습니다. 이러한 라이브러리는 현재 개발 중이며 안정성과 성능이 개선된 새 버전을 릴리스하는 경우가 많습니다.

클라이언트 라이브러리 언어 GitHub 리포지토리 설명서
StackExchange.Redis C#/.NET 링크 자세한 내용은 여기를 참조하세요.
Lettuce Java 링크 자세한 내용은 여기를 참조하세요.
Jedis Java 링크
node_redis Node.js 링크
Redisson Java 링크 자세한 내용은 여기를 참조하세요.
ioredis Node.js 링크 자세한 내용은 여기를 참조하세요.

참고 항목

애플리케이션은 오픈 소스 Redis와의 호환성을 제공하는 모든 클라이언트 라이브러리를 사용하여 Azure Managed Redis 인스턴스에 연결 가능합니다.

클러스터링 정책에 따라 올바른 클라이언트 라이브러리 선택

Azure Managed Redis는 엔터프라이즈 클러스터링 정책 및 OSS 클러스터링 정책을 지원합니다. 자세한 내용은 여기를 참조하세요(클러스터링 정책 정보에 대한 링크 추가).

엔터프라이즈 클러스터링 정책을 통해 모든 클라이언트 라이브러리가 Redis 인스턴스에서 작동합니다. 그러나 OSS 클러스터링 정책을 사용하는 경우 선택한 클라이언트 라이브러리가 클러스터형 Redis 인스턴스에 대한 연결을 지원하는지 확인합니다.

차단된 명령

Microsoft는 기본적으로 다음 명령을 사용하지 않도록 설정하는 Azure Managed Redis 인스턴스의 구성 및 관리를 관리합니다. 차단된 명령에 대한 자세한 내용은 클러스터 관리 명령 호환성을 참조 하세요.

다중 키 명령

AMR 인스턴스는 클러스터형으로 구성되어, 다중 키 기반 명령 실행 시 CROSSSLOT예외 현상이 나타날 수 있습니다. 동작은 사용되는 클러스터링 정책에 따라 달라집니다. OSS 클러스터링 정책을 사용하는 경우 다중 키 명령을 사용하려면 모든 키를 동일한 해시 슬롯에 매핑해야 합니다.

Enterprise 클러스터링 정책에 CROSSSLOT 오류가 표시될 수도 있습니다. Enterprise 클러스터링을 사용하는 슬롯에서 DEL, MSET, MGET, EXISTS, UNLINKTOUCH의 다중 키 명령만 허용됩니다.

활성-활성 데이터베이스에서 다중 키 쓰기 명령(DEL, MSET, UNLINK)은 동일한 슬롯에 있는 키에서만 실행할 수 있습니다. 그러나 다중 키 명령 MGET, EXISTSTOUCH는 활성-활성 데이터베이스의 슬롯에서 허용됩니다. 자세한 내용은 데이터베이스 클러스터링을 참조하세요.

엔터프라이즈 클러스터링 정책에 대해 차단된 명령

  • CLUSTER INFO
  • CLUSTER HELP
  • CLUSTER KEYSLOT
  • 클러스터 노드
  • 클러스터 슬롯

활성 지역 복제에 대해 차단된 명령

  • FLUSHALL
  • FLUSHDB

클라이언트 라이브러리 관련 참고 자료

클라이언트 라이브러리별 지침 모범 사례에 대한 정보는 다음 링크를 참조하세요.

Redisson(Java)

redisson 3.14.1 이상을 사용하는 것을 권장합니다. 이전 버전에는 장애 조치(failover) 후 문제를 초래하는 알려진 연결 누수 문제가 있습니다. 애플리케이션에서 사용하는 기능에 영향을 줄 수 있는 다른 알려진 문제에 대해 Redisson 변경 로그를 모니터링합니다. 자세한 내용은 CHANGELOGRedisson FAQ를 참조하세요.

기타 참고 사항:

  • Redisson은 다른 클라이언트와 달리 기본적으로 '복제본에서 읽기' 전략을 사용합니다. 이 기본값을 변경하려면 'readMode' 구성 설정을 수정합니다.
  • Redisson에는 구성 가능한 최소 및 최대 설정이 있는 연결 풀링 전략이 있으며 기본 최소값은 큽니다. 큰 기본값은 공격적인 다시 연결 동작 또는 '연결 폭풍'에 기여할 수 있습니다. 위험을 줄이려면 몇 개의 연결을 통해 명령 또는 명령 일괄 처리를 효율적으로 파이프라인할 수 있으므로 더 적은 수의 연결을 사용하는 것이 좋습니다.
  • Redisson의 기본 유휴 연결 제한 시간은 10초입니다. 이로 인해 연결이 더 많이 닫히고 다시 열립니다.

다음은 필요에 따라 수정할 수 있는 클러스터 모드에 권장되는 기본 구성입니다.

clusterServersConfig:
  idleConnectionTimeout: 30000
  connectTimeout: 15000
  timeout: 5000
  retryAttempts: 3
  retryInterval: 3000
  checkLockSyncedSlaves: false
  failedSlaveReconnectionInterval: 15000
  failedSlaveCheckInterval: 60000
  subscriptionsPerConnection: 5
  clientName: "redisson"
  loadBalancer: !<org.redisson.connection.balancer.RoundRobinLoadBalancer> {}
  subscriptionConnectionMinimumIdleSize: 1
  subscriptionConnectionPoolSize: 50
  slaveConnectionMinimumIdleSize: 2
  slaveConnectionPoolSize: 24
  masterConnectionMinimumIdleSize: 2
  masterConnectionPoolSize: 24
  readMode: "MASTER"
  subscriptionMode: "MASTER"
  nodeAddresses:
  - "redis://mycacheaddress:10000"
  scanInterval: 1000
  pingConnectionInterval: 60000
  keepAlive: false
  tcpNoDelay: true

Azure의 IBM Liberty에서 HTTP 세션 상태에 대한 저장소로 JCache를 지원하는 Redisson에 대한 문서는 AKS(Azure Kubernetes Service) 클러스터에서 Open Liberty 또는 WebSphere Liberty와 함께 Java EE JCache 사용을 참조 하세요.

클라이언트 라이브러리 사용 방법

참조 설명서 외에도, 다양한 언어 및 캐시 클라이언트를 활용한 Azure Managed Redis 시작 방법을 안내하는 자습서를 이용하실 수 있습니다.

자습서에서 이러한 클라이언트 라이브러리 중 일부를 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

다음 단계