Azure Managed Redis(미리 보기) 클라이언트 라이브러리
Azure Managed Redis(미리 보기)는 인기 있는 메모리 내 데이터 저장소인 Redis를 기반으로 합니다. Azure Managed Redis는 다양한 프로그래밍 언어에 대해 다양한 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 인스턴스에 대한 연결을 지원하는지 확인합니다.
차단된 명령
Azure Managed Redis 인스턴스의 구성 및 관리는 기본적으로 다음 명령을 사용하지 않도록 설정하는 Microsoft에서 관리합니다. 차단된 명령에 대한 자세한 내용은 클러스터 관리 명령 호환성을 참조 하세요.
다중 키 명령
AMR 인스턴스는 클러스터형 구성을 사용하므로 여러 키에서 작동하는 명령에 예외가 표시 CROSSSLOT
될 수 있습니다. 동작은 사용되는 클러스터링 정책에 따라 달라집니다. OSS 클러스터링 정책을 사용하는 경우 다중 키 명령을 사용하려면 모든 키를 동일한 해시 슬롯에 매핑해야 합니다.
Enterprise 클러스터링 정책에 CROSSSLOT
오류가 표시될 수도 있습니다. Enterprise 클러스터링을 사용하는 슬롯에서 DEL
, MSET
, MGET
, EXISTS
, UNLINK
및 TOUCH
의 다중 키 명령만 허용됩니다.
활성-활성 데이터베이스에서 다중 키 쓰기 명령(DEL
, MSET
, UNLINK
)은 동일한 슬롯에 있는 키에서만 실행할 수 있습니다. 그러나 다중 키 명령 MGET
, EXISTS
및 TOUCH
는 활성-활성 데이터베이스의 슬롯에서 허용됩니다. 자세한 내용은 데이터베이스 클러스터링을 참조하세요.
엔터프라이즈 클러스터링 정책에 대해 차단된 명령
- 클러스터 정보
- 클러스터 도움말
- CLUSTER KEYSLOT
- 클러스터 노드
- 클러스터 슬롯
활성 지역 복제에 대해 차단된 명령
- FLUSHALL
- FLUSHDB
클라이언트 라이브러리 관련 참고 자료
클라이언트 라이브러리별 지침 모범 사례에 대한 정보는 다음 링크를 참조하세요.
- StackExchange.Redis(.NET)
- Java - 어떤 클라이언트를 사용해야 하나요?
- Lettuce(Java)
- Jedis(Java)
- Redisson(Java)
- Node.JS
- PHP
- HiRedisCluster
- ASP.NET 세션 상태 제공자
Redisson(Java)
redisson 3.14.1 이상을 사용하는 것이 권장됩니다. 이전 버전에는 장애 조치(failover) 후 문제를 초래하는 알려진 연결 누수 문제가 있습니다. 애플리케이션에서 사용하는 기능에 영향을 줄 수 있는 다른 알려진 문제에 대해 Redisson 변경 로그를 모니터링합니다. 자세한 내용은 CHANGELOG
및 Redisson 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를 시작하는 방법을 보여 주는 자습서를 찾을 수 있습니다.
자습서에서 이러한 클라이언트 라이브러리 중 일부를 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.
- .NET Framework 앱 코딩
- .NET Core 앱 코딩
- ASP.NET 웹앱 코딩
- ASP.NET Core 웹앱 코딩
- Java 앱 코딩
- Node.js 앱 코딩
- Python 앱 코딩