연습 - 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
다음 옵션을 사용하여 캐시를 만듭니다.
- 크기: C0
- SKU: 기본
명령줄 예제는 다음과 같습니다.
[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 콘솔 애플리케이션을 만듭니다.
브라우저 창 오른쪽의 Cloud Shell을 사용하여 새 .NET Core 애플리케이션을 만듭니다. 이름을 "RedisData"로 지정합니다.
cd ~ dotnet new console --name RedisData
앱에 대해 만든 새 디렉터리로 변경합니다.
cd RedisData
애플리케이션을 빌드하고 실행하면 "Hello World!"가 출력됩니다.
dotnet run
ServiceStack.Redis NuGet 패키지 추가
콘솔 애플리케이션이 생성되었으므로 ServiceStack.Redis NuGet 패키지를 추가해야 합니다. 그러면 Azure Cache for Redis에 연결하고 C#에서 명령을 실행할 수 있습니다.
터미널 셸을 사용하여 NuGet 패키지 ServiceStack.Redis를 추가합니다.
dotnet add package ServiceStack.Redis
애플리케이션을 다시 빌드하고 실행하여 모두 컴파일되는지 확인합니다. 그러면 "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
다음 단계에서 사용해야 하므로 연결 문자열을 클립보드에 복사합니다.
앱에 연결 문자열 추가
애플리케이션 폴더에서 Cloud Shell 편집기를 엽니다.
cd ~/RedisData code .
다음 명령을 사용하여 메서드가 있는 콘솔 프로젝트를 만듭니다
Main
.dotnet new console --use-program-main --force
Program.cs 소스 파일을 선택합니다.
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에 데이터를 추가하겠습니다.
Program.cs 파일 위쪽에 다음
using
문을 추가합니다.using ServiceStack.Redis;
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"); }
애플리케이션을 빌드하고 실행하기 전에, Redis 캐시가 완전하게 프로비저닝되었는지 확인합니다.
az redis create
명령이 완료된 후 몇 분 정도 걸릴 수 있습니다. 다음 명령을 실행하여 상태를 확인합니다.az redis show \ --name "$REDIS_NAME" \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --query provisioningState
상태가
Creating
이면 몇 분 후에 다시 확인하세요. 완료되면Succeeded
로 표시됩니다.애플리케이션을 실행하고 콘솔에 트랜잭션 커밋이라고 표시되는지 확인합니다.
dotnet run
데이터 확인
마지막 마무리로, 추가한 데이터가 Azure Cache for Redis에 있는지 확인하겠습니다.
샌드박스를 활성화한 계정과 동일한 계정을 사용하여 Azure Portal에 로그인합니다.
Azure Cache for Redis를 찾습니다.
Azure Portal 메뉴 또는 홈 페이지에서 모든 리소스를 선택합니다.
왼쪽에 있는 필터 상자를 사용하여 Azure Cache for Redis 인스턴스를 검색하고 선택합니다.
또는 맨 위에 있는 검색 상자를 사용하여 캐시 이름을 입력할 수 있습니다.
Azure Cache for Redis 인스턴스를 선택합니다.
Azure Cache for Redis의 개요 창에서 콘솔을 선택합니다. 그러면 하위 수준 Azure Cache for Redis 명령을 입력할 수 있는 Azure Cache for Redis 콘솔이 열립니다.
get MyKey1
명령을 실행합니다. 반환된 값이 MyValue1인지 확인합니다.get MyKey2
명령을 실행합니다. 반환된 값이 MyValue2인지 확인합니다.