연습 - Azure Cache for Redis의 트랜잭션 만들기

완료됨

Azure Cache for Redis의 인스턴스를 만든 다음, 이 캐시에 두 개의 데이터 값을 삽입하는 간단한 트랜잭션을 만들어 보겠습니다.

Azure Cache for Redis 만들기

먼저 Azure CLI를 사용하여 Azure Cache for Redis를 만들겠습니다. 브라우저 창의 오른쪽에서 Cloud Shell을 사용하여 Azure와 상호 작용합니다.

az redis create 명령을 사용하여 새 Azure Cache for Redis를 만들겠습니다. 여러 매개 변수가 사용됩니다. 가장 일반적인 항목은 다음과 같습니다. 전체 목록을 보려면 설명서를 참조하세요.

매개 변수 설명
--name 캐시 이름 - 전역적으로 고유해야 하며 문자, 숫자, 대시로 구성되어야 합니다.
--resource-group Azure 샌드박스에 포함된 미리 생성된 리소스 그룹 [샌드박스 리소스 그룹 이름]을 사용합니다.
--location 캐시를 배치할 위치를 지정합니다. 일반적으로 데이터 소비자와 가까운 위치를 선택하려 합니다. 이 경우 Azure 샌드박스에서 사용할 수 있는 위치로 제한됩니다. 가장 가까운 위치를 선택합니다.
--vm-size Azure Cache for Redis의 크기입니다. 유효한 값은 [C0, C1, C2, C3, C4, C5, C6, P1, P2, P3, P4]입니다.
--sku Azure Cache for Redis SKU입니다. 유효한 값은 [기본, 표준, 프리미엄]입니다.

위치 선택

무료 샌드박스를 사용하면 Azure 글로벌 지역의 일부 하위 지역에 리소스를 만들 수 있습니다. 리소스를 만들 때 다음 목록에서 지역을 선택합니다.

  • westus2
  • southcentralus
  • centralus
  • eastus
  • westeurope
  • southeastasia
  • japaneast
  • brazilsouth
  • australiasoutheast
  • centralindia
  1. 다음 옵션을 사용하여 캐시를 만듭니다.

    • 크기: C0
    • SKU: 기본
  2. 명령줄 예제는 다음과 같습니다. [name] 매개 변수를 고유한 이름으로 바꿔야 합니다. 미국 동부 대신 다른 지역을 원하는 경우 위치를 바꾸면 됩니다.

    REDIS_NAME=[name]
    
    az redis create \
        --name "$REDIS_NAME" \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --location eastus \
        --vm-size C0 \
        --sku Basic
    

.NET Core 콘솔 애플리케이션 만들기

다음으로, Azure Cache for Redis에 데이터 값을 삽입하는 데 사용할 .NET Core 콘솔 애플리케이션을 만듭니다.

  1. 브라우저 창 오른쪽의 Cloud Shell을 사용하여 새 .NET Core 애플리케이션을 만듭니다. 이름을 "RedisData"로 지정합니다.

    cd ~
    dotnet new console --name RedisData
    
  2. 앱에 대해 만든 새 디렉터리로 변경합니다.

    cd RedisData
    
  3. 애플리케이션을 빌드하고 실행하면 "Hello World!"가 출력됩니다.

    dotnet run
    

ServiceStack.Redis NuGet 패키지 추가

콘솔 애플리케이션이 생성되었으므로 ServiceStack.Redis NuGet 패키지를 추가해야 합니다. 그러면 Azure Cache for Redis에 연결하고 C#에서 명령을 실행할 수 있습니다.

  1. 터미널 셸을 사용하여 NuGet 패키지 ServiceStack.Redis를 추가합니다.

    dotnet add package ServiceStack.Redis
    
  2. 애플리케이션을 다시 빌드하고 실행하여 모두 컴파일되는지 확인합니다. 그러면 "Hello World!"가 출력되어야 합니다.

Azure Cache for Redis 연결 문자열 가져오기

Azure Cache for Redis에 연결하려면 암호 및 URL을 포함하고 있는 연결 문자열이 필요합니다. ServiceStack.Redis에는 [password]@[hostname]:[sslport]?ssl=true 형식의 고유한 연결 문자열이 포함됩니다.

Azure Portal 또는 명령줄을 사용하여 암호를 검색할 수 있습니다. Redis로 읽기 전용 데이터를 캐시하여 웹 애플리케이션 최적화 모듈에서 포털을 사용했으니, 여기서는 명령줄을 사용하겠습니다.

az redis list-keys 명령을 사용하여 액세스 키를 가져옵니다. 다음 명령을 실행하여 기본 키를 가져오고, REDIS_KEY 변수에 저장하고, 표시합니다.

REDIS_KEY=$(az redis list-keys \
    --name "$REDIS_NAME" \
    --resource-group <rgn>[sandbox resource group name]</rgn> \
    --query primaryKey \
    --output tsv)

echo $REDIS_KEY

다음으로, 이 명령을 실행하여 연결 문자열을 결합하고 명령줄에 표시합니다. 호스트 이름은 .redis.cache.windows.net 다음의 캐시 이름이고, 포트는 기본 Redis SSL 포트인 6380입니다.

echo "$REDIS_KEY"@"$REDIS_NAME".redis.cache.windows.net:6380?ssl=true

다음 단계에서 사용해야 하므로 연결 문자열을 클립보드에 복사합니다.

앱에 연결 문자열 추가

  1. 애플리케이션 폴더에서 Cloud Shell 편집기를 엽니다.

    cd ~/RedisData
    code .
    
  2. 다음 명령을 사용하여 메서드가 있는 콘솔 프로젝트를 만듭니다 Main .

    dotnet new console --use-program-main --force
    
  3. Program.cs 소스 파일을 선택합니다.

  4. Program 클래스에 다음 필드를 만들고 연결 문자열에 값으로 붙여넣습니다.

    static string redisConnectionString = "<connection string>";
    

    예를 들면 다음과 같습니다.

    static string redisConnectionString = "ToOosHLZw9Gwyr46ZlxcNeCCIzS35IBkEtwsCt1Xu4c=@myname.redis.cache.windows.net:6380?ssl=true";
    

Azure Cache for Redis에 두 개의 데이터 값 삽입

마지막으로, Azure Cache for Redis에 데이터를 추가하겠습니다.

  1. Program.cs 파일 위쪽에 다음 using 문을 추가합니다.

    using ServiceStack.Redis;
    
  2. Main 메서드의 콘텐츠를 다음 코드로 바꿉니다. 이렇게 하면 트랜잭션을 사용하여 두 값을 추가합니다. 파일을 저장해야 합니다.

    bool transactionResult = false;
    
    using (RedisClient redisClient = new RedisClient(redisConnectionString))
    using (var transaction = redisClient.CreateTransaction())
    {
        //Add multiple operations to the transaction
        transaction.QueueCommand(c => c.Set("MyKey1", "MyValue1"));
        transaction.QueueCommand(c => c.Set("MyKey2", "MyValue2"));
    
        //Commit and get result of transaction
        transactionResult = transaction.Commit();
    }
    
    if (transactionResult)
    {
        Console.WriteLine("Transaction committed");
    }
    else
    {
        Console.WriteLine("Transaction failed to commit");
    }
    
  3. 애플리케이션을 빌드하고 실행하기 전에, Redis 캐시가 완전하게 프로비저닝되었는지 확인합니다. az redis create 명령이 완료된 후 몇 분 정도 걸릴 수 있습니다. 다음 명령을 실행하여 상태를 확인합니다.

    az redis show \
        --name "$REDIS_NAME" \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --query provisioningState
    

    상태가 Creating이면 몇 분 후에 다시 확인하세요. 완료되면 Succeeded로 표시됩니다.

  4. 애플리케이션을 실행하고 콘솔에 트랜잭션 커밋이라고 표시되는지 확인합니다.

    dotnet run
    

데이터 확인

마지막 마무리로, 추가한 데이터가 Azure Cache for Redis에 있는지 확인하겠습니다.

  1. 샌드박스를 활성화한 계정과 동일한 계정을 사용하여 Azure Portal에 로그인합니다.

  2. Azure Cache for Redis를 찾습니다.

    1. Azure Portal 메뉴 또는 페이지에서 모든 리소스를 선택합니다.

    2. 왼쪽에 있는 필터 상자를 사용하여 Azure Cache for Redis 인스턴스를 검색하고 선택합니다.

      또는 맨 위에 있는 검색 상자를 사용하여 캐시 이름을 입력할 수 있습니다.

  3. Azure Cache for Redis 인스턴스를 선택합니다.

  4. Azure Cache for Redis의 개요 창에서 콘솔을 선택합니다. 그러면 하위 수준 Azure Cache for Redis 명령을 입력할 수 있는 Azure Cache for Redis 콘솔이 열립니다.

  5. get MyKey1 명령을 실행합니다. 반환된 값이 MyValue1인지 확인합니다.

  6. get MyKey2 명령을 실행합니다. 반환된 값이 MyValue2인지 확인합니다.

    MyKey1 및 MyKey2의 값을 보여주는 Azure Cache for Redis 콘솔의 스크린샷입니다.