Azure Cache for Redis 개발 FAQ

이 문서는 Azure Cache for Redis의 개발 방법에 대한 일반적인 질문의 답변을 제공합니다.

Azure Cache for Redis를 시작하려면 어떻게 해야 하나요?

Azure Cache for Redis는 몇 가지 방법으로 시작할 수 있습니다.

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 Portal에서 호스트 이름, 포트 및 액세스 키를 검색합니다.

Azure Cache for Redis 서버를 연결하려면 캐시 클라이언트에 캐시에 대한 호스트 이름, 포트 및 키가 필요합니다. 일부 클라이언트는 약간 다른 이름으로 이러한 항목을 참조할 수 있습니다. Azure Portal에서 호스트 이름, 포트 및 키를 가져올 수 있습니다.

  • 액세스 키를 가져오려면 리소스 메뉴에서 인증을 선택합니다. 그런 다음 액세스 키 탭을 선택합니다.

    Azure Cache for Redis 키

  • 캐시의 호스트 이름과 포트를 확인하려면 리소스 메뉴에서 개요를 선택합니다. 호스트 이름은 <DNS name>.redis.cache.windows.net 형식입니다.

    Azure Cache for Redis 속성

Azure Cache for Redis에 대한 로컬 에뮬레이터가 있나요?

Azure Cache for Redis용 로컬 에뮬레이터는 없습니다. 로컬 컴퓨터의 Redis 명령줄 도구에서 MSOpenTech 버전의 redis-server.exe를 실행할 수 있습니다. 그런 다음, 다음 예제와 같이 로컬 캐시 에뮬레이터에 연결하여 비슷한 환경을 얻습니다.

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;
    }
}

원하는 경우 필요에 따라 온라인 Azure Cache for Redis에 대한 기본 캐시 설정과 더 가깝게 일치하도록 redis.conf 파일을 구성할 수 있습니다.

어떻게 Redis 명령을 실행할 수 있나요?

Azure Cache for Redis에서 지원되지 않는 Redis 명령에 나열된 명령을 제외하고는 Redis 명령에 나열된 명령 중 하나를 사용할 수 있습니다. Redis 명령을 실행하는 여러 가지 옵션이 있습니다.

표준 또는 프리미엄 캐시를 사용하는 경우 Redis 콘솔을 사용하여 Redis 명령을 실행할 수 있습니다. Redis 콘솔은 Azure Portal에서 Redis 명령을 안전하게 실행하는 방법을 제공합니다.

Redis 명령줄 도구를 사용할 수도 있습니다. 이러한 도구를 사용하려면 다음 단계를 수행합니다.

  1. Redis 명령줄 도구를 다운로드합니다.

  2. redis-cli.exe를 사용하여 캐시에 연결합니다.

  3. 다음 예제와 같이 -h 스위치를 사용하여 캐시 엔드포인트를 전달하고 -a를 사용하여 키를 전달합니다.

    redis-cli -h <Azure Cache for Redis name>.redis.cache.windows.net -a <key>

참고 항목

Redis 명령줄 도구는 TLS 포트에서 작동하지 않지만, Azure Cache for Redis에서 Redis 명령줄 도구를 사용하는 방법 문서의 지침에 따라 stunnel과 같은 유틸리티를 사용하여 도구를 TLS 포트에 안전하게 연결할 수 있습니다.

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에 대해 알아보세요.