이 문서는 Azure Cache for Redis의 개발 방법에 대한 일반적인 질문의 답변을 제공합니다.
Azure Cache for Redis를 시작하려면 어떻게 해야 하나요?
Azure Cache for Redis는 몇 가지 방법으로 시작할 수 있습니다.
- .NET, ASP.NET, Java, Node.js 및 Python에 대해 사용할 수 있는 자습서 중 하나를 확인해볼 수 있습니다.
- Microsoft Azure Cache for Redis를 사용하여 고성능 앱을 빌드하는 방법을 참조할 수 있습니다.
- 프로젝트에서 사용하는 개발 언어와 일치하는 예제 클라이언트에 대한 클라이언트 설명서를 확인할 수 있습니다. Azure Cache for Redis에서 사용할 수 있는 많은 Redis 클라이언트가 있습니다. Redis 클라이언트 목록은 https://redis.io/clients에서 참조할 수 있습니다.
Azure 계정이 없는 경우 다음을 수행할 수 있습니다.
- Azure 계정을 무료로 개설할 수 있습니다. 유료 Azure 서비스를 사용해볼 수 있는 크레딧을 받게 됩니다. 크레딧을 모두 사용한 후에도 계정을 유지하고 무료 Azure 서비스 및 기능을 사용할 수 있습니다.
- Visual Studio 구독자 혜택 활성화 MSDN 구독은 유료 Azure 서비스에 사용할 수 있는 크레딧을 매달 제공합니다.
StackExchange.Redis 구성 옵션은 어떤 기능을 수행하나요?
StackExchange.Redis에는 많은 옵션이 있습니다. 이 섹션에서는 몇 가지 일반적인 설정에 대해 설명합니다. StackExchange.Redis 옵션에 대한 자세한 내용은 StackExchange.Redis 구성을 참조하세요.
ConfigurationOptions | 설명 | 권장 |
---|---|---|
AbortOnConnectFail | true로 설정하면 네트워크 오류가 발생한 후 연결을 다시 연결할 수 없습니다. | false로 설정하여 StackExchange.Redis가 자동으로 다시 연결하도록 합니다. |
ConnectRetry | 초기 연결 중에 연결 시도를 반복할 횟수입니다. | 지침은 다음 사항을 참조하세요. |
ConnectTimeout | 연결 작업의 시간 제한(ms)입니다. | 지침은 다음 사항을 참조하세요. |
보통은 클라이언트의 기본값으로 충분합니다. 워크로드에 따라 옵션을 미세 조정할 수 있습니다.
재시도
- ConnectRetry 및 ConnectTimeout에 대한 일반적인 지침은 페일 패스트 및 다시 시도입니다. 이 지침은 워크로드 및 평균적으로 클라이언트에서 Redis 명령을 실행하고 응답을 받는 데 걸리는 시간을 기반으로 합니다.
- 연결 상태를 확인하고 직접 다시 연결하는 대신 StackExchange.Redis가 자동으로 다시 연결하도록 합니다. ConnectionMultiplexer.IsConnected 속성을 사용하지 마세요.
- snowballing - 다시 시도하고 이러한 다시 시도가 눈덩이처럼 늘어나고 결코 복구되지 않는 문제가 발생할 수 있습니다. snowballing이 발생하면 Microsoft Patterns & Practices 그룹에서 게시한 다시 시도 일반 지침에서 설명한 대로 지수 백오프 다시 시도 알고리즘을 사용하는 것이 좋습니다.
시간 제한 값
워크로드를 고려하고, 일치하도록 값을 설정합니다. 큰 값을 저장하는 경우 시간 제한을 더 높은 값으로 설정합니다.
AbortOnConnectFail
을 false로 설정하여 StackExchange.Redis가 다시 연결하도록 합니다.각 요청에 대해 새 연결을 만드는 대신 수명이 긴 단일
ConnectionMultiplexer
인스턴스를 사용합니다. 연결을 관리하는 방법에 대한 예제는 RedisConnection을 사용하여 캐시에 연결의RedisConnection
클래스를 참고하세요.진단 목적으로
ConnectionMultiplexer.ClientName
속성을 앱 인스턴스 고유 이름으로 설정합니다.사용자 지정 작업에 여러 개의
ConnectionMultiplexer
인스턴스를 사용합니다.애플리케이션에 다양한 부하가 있는 경우 이 모델을 따를 수 있습니다. 예시:
- 큰 키를 처리하기 위한 멀티플렉서 1개가 있습니다.
- 작은 키를 처리하기 위한 멀티플렉서 1개가 있습니다.
- 사용하는 각
ConnectionMultiplexer
에 대해 연결 시간 제한 및 재시도 논리에 대해 다양한 값을 설정할 수 있습니다. - 진단에 도움이 되도록 각 멀티플렉서의
ClientName
속성을 설정합니다.
이 지침에 따라
ConnectionMultiplexer
당 대기 시간이 더 간소화될 수 있습니다.
사용할 수 있는 Azure Cache for Redis 클라이언트는 어떻게 되나요?
Redis의 장점 중 하나는 여러 가지 개발 언어를 지원하는 많은 클라이언트가 있다는 것입니다. 클라이언트의 현재 목록에 대해서는 Redis 클라이언트를 참조하세요. 여러 다른 언어 및 클라이언트를 설명하는 자습서는 Azure Cache for Redis를 사용하는 방법을 참조하세요.
호스트 이름, 포트 및 액세스 키 가져오기
Azure Cache for Redis 서버에 연결하려면 캐시 클라이언트에 캐시의 호스트 이름, 포트 및 액세스 키가 필요합니다. 일부 클라이언트는 약간 다른 이름을 사용하여 이러한 항목을 참조할 수 있습니다. Azure Portal에서 호스트 이름, 포트 및 키를 가져올 수 있습니다.
캐시에 대한 액세스 키를 가져오려면 다음을 수행합니다.
- Azure Portal에서 캐시로 이동합니다.
- 서비스 메뉴의 설정 아래에서 인증을 선택합니다.
- 인증 창에서 액세스 키 탭을 선택합니다.
- 액세스 키 값을 복사하려면 키 필드에서 복사 아이콘을 선택합니다.
캐시에 대한 호스트 이름 및 포트를 가져오려면 다음을 수행합니다.
- Azure Portal에서 캐시로 이동합니다.
- 서비스 메뉴에서 개요를 선택합니다.
- Essentials 아래에서 호스트 이름의 경우 복사 아이콘을 선택하여 호스트 이름 값을 복사합니다. 호스트 이름 값에는
<DNS name>.redis.cache.windows.net
형식이 있습니다. - 포트의 경우 복사 아이콘을 선택하여 포트 값을 복사합니다.
Azure Cache for Redis에 대한 로컬 에뮬레이터가 있나요?
Azure Cache for Redis용 로컬 에뮬레이터는 없습니다. 그러나 다음 예에 표시된 것처럼 로컬 컴퓨터에서 커뮤니티 Redis의 복사본을 실행하고 이에 연결하여 로컬 캐시 에뮬레이터와 유사한 환경을 가져올 수 있습니다.
private static Lazy<ConnectionMultiplexer>
lazyConnection = new Lazy<ConnectionMultiplexer> (() =>
{
// Connect to a locally running instance of Redis to simulate
// a local cache emulator experience.
return ConnectionMultiplexer.Connect("127.0.0.1:6379");
});
public static ConnectionMultiplexer Connection
{
get
{
return lazyConnection.Value;
}
}
Redis는 기본적으로 Linux에서 실행되지만 Linux용 Windows 하위 시스템을 사용하여 Windows 컴퓨터에서 Redis를 실행할 수도 있습니다. 자세한 내용은 Windows에 Redis 설치를 참조하세요. 원하는 경우 선택적으로 온라인 Azure Cache for Redis의 기본 캐시 설정과 더 밀접하게 일치하도록 redis.conf 파일을 구성할 수 있습니다.
어떻게 Redis 명령을 실행할 수 있나요?
Azure Cache for Redis에서 지원되지 않는 Redis 명령에 나열된 명령을 제외하고는 Redis 명령에 나열된 명령 중 하나를 사용할 수 있습니다. Redis 명령을 실행하는 여러 가지 옵션이 있습니다.
표준 또는 프리미엄 캐시를 사용하는 경우 Redis 콘솔을 사용하여 Redis 명령을 실행할 수 있습니다. Redis 콘솔은 Azure Portal에서 Redis 명령을 안전하게 실행하는 방법을 제공합니다.
Redis 명령줄 도구를 사용할 수도 있습니다. 이를 사용하려면 Azure Cache for Redis에서 Redis 명령줄 도구 사용을 참조하세요.
Azure Cache for Redis에 MSDN 클래스 라이브러리 참조가 없는 이유는 무엇인가요?
Microsoft Azure Cache for Redis는 널리 사용되는 오픈 소스 인-메모리 데이터 저장소인 레디스를 기반으로 한다. 다양한 프로그래밍 언어에 대해 다양한 Redis 클라이언트를 사용할 수 있습니다. 각 클라이언트에는 Redis 명령을 사용하여 Azure Cache for Redis 인스턴스를 호출하는 자체 API가 있습니다.
클라이언트마다 다르므로 MSDN에서 하나의 중앙 집중식 클래스 참조를 찾을 수 없습니다. 각 클라이언트에서 자체 참조 설명서를 유지 관리합니다. 참조 설명서 외에도 다양한 언어와 캐시 클라이언트를 사용하여 Azure Cache for Redis를 시작하는 방법을 보여 주는 몇 가지 자습서가 있습니다. 이 자습서에 액세스하려면 Azure Cache for Redis 사용 방법과 목차에 포함된 관련 문서를 참조하세요.
Azure Cache for Redis는 PHP 세션 캐시로 사용할 수 있나요?
예, Azure Cache for Redis를 PHP 세션 캐시로 사용하려면 session.save_path
에서 Azure Cache for Redis 인스턴스에 대한 연결 문자열을 지정합니다.
Important
Azure Cache for Redis를 PHP 세션 캐시로 사용하는 경우 다음 예제와 같이 캐시에 연결하는 데 사용되는 보안 키를 URL로 인코딩해야 합니다.
session.save_path = "tcp://mycache.redis.cache.windows.net:6379?auth=<url encoded primary or secondary key here>";
키가 URL로 인코딩되지 않은 경우 다음과 같은 메시지와 함께 예외가 표시될 수 있습니다. Failed to parse session.save_path
PhpRedis 클라이언트에서 Azure Cache for Redis를 PHP 세션 캐시로 사용하는 방법에 대한 자세한 내용은 PHP 세션 처리기를 참조하세요.
Redis 데이터베이스란?
Redis 데이터베이스는 동일한 Redis 인스턴스 내에 있는 데이터를 논리적으로 분리한 단위입니다. 캐시 메모리는 모든 데이터베이스와 해당 데이터베이스에 저장된 키/값에 따라 지정된 데이터베이스의 실제 메모리 소비 간에 공유됩니다. 예를 들어 C6 캐시에는 53GB, P5에는 120GB의 메모리가 있습니다. 하나의 데이터베이스에 53GB/120GB를 모두 사용하거나 여러 데이터베이스 간에 분할할 수 있습니다.
참고 항목
클러스터링을 사용하도록 설정된 프리미엄 Azure Cache for Redis를 사용하는 경우 데이터베이스 0만 사용할 수 있습니다. 이 제한은 본질적인 Redis 제한이므로 Azure Cache for Redis에만 한정되지는 않습니다.
관련 콘텐츠
다른 Azure Cache for Redis FAQ에 대해 알아보세요.