다음을 통해 공유


.NET Aspire Redis®* 통합

포함:호스팅 통합Client 통합

Redis 캐싱, 벡터 검색 및 NoSQL 데이터베이스를 위한 세계에서 가장 빠른 데이터 플랫폼입니다. .NET Aspire Redis 통합을 사용하면 기존 Redis 인스턴스에 연결하거나 docker.io/library/redis 컨테이너 이미지사용하여 .NET 새 인스턴스를 만들 수 있습니다.

Garnet Microsoft Research의 고성능 캐시 저장소이며 Redis RESP(serialization protocol)를 준수합니다. .NET Aspire Redis 통합을 사용하면 기존 Garnet 인스턴스에 연결하거나 ghcr.io/microsoft/garnet 컨테이너 이미지사용하여 .NET 새 인스턴스를 만들 수 있습니다.

Valkey는 Redis 포크이며 의Redis serialize 프로토콜 RESP()을 준수합니다. 캐싱, 메시지 큐와 같은 다양한 워크로드를 지원하고 주 데이터베이스 역할을 할 수 있는 고성능 키/값 데이터 저장소입니다. .NET Aspire Redis 통합을 사용하면 기존 Valkey 인스턴스에 연결하거나 docker.io/valkey/valkey 컨테이너 이미지사용하여 .NET 새 인스턴스를 만들 수 있습니다.

호스팅 통합

Redis 호스팅 통합은 Redis 리소스를 RedisResource 형식으로 모델화합니다. 이 형식 및 API에 액세스하여 📦Aspire를 추가하려면 앱 호스트 프로젝트에서Redis NuGet 패키지를 사용하십시오.

dotnet add package Aspire.Hosting.Redis

자세한 내용은 dotnet add package 또는 .NET 응용 프로그램에서 패키지 종속성 관리를 참조하세요.

Redis 리소스 추가

앱 호스트 프로젝트에서 builder 인스턴스에서 AddRedis 호출하여 Redis 리소스를 추가합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

.NET .NET Aspire docker.io/Redis/Redis 이미지와 함께 이전 예제와 같이 앱 호스트에 컨테이너 이미지를 추가하면 로컬 컴퓨터에 새 Redis 인스턴스가 만들어집니다. Redis 리소스(cache 변수)에 대한 참조가 ExampleProject에 추가됩니다.

WithReference 메서드는 ExampleProject이라는 이름이 붙은 "cache"연결을 구성합니다. 자세한 내용은 컨테이너 리소스 수명 주기참조하세요.

기존 Redis 인스턴스에 연결하려는 경우 대신 AddConnectionString 호출합니다. 자세한 내용은 기존 리소스 참조를 참조하세요.

Redis Insights를 사용하여 Redis 리소스 추가

Redis InsightsRedis 리소스에 추가하려면 WithRedisInsight 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithRedisInsight();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Redis Insights는 AI 도우미인 Redis Copilot의 도움을 받아 모든 운영 체제 및 Redis 배포에서 Redis 데이터를 분석하기 위한 무료 그래픽 인터페이스입니다. .NET .NET Aspire 다른 컨테이너 이미지 docker.io/redis/redisinsight 사령관 앱을 실행하는 앱 호스트에 추가합니다.

메모

RedisInsightResource 체인의 호스트 포트를 구성하려면 WithHostPort API에 호출을 실행하고 원하는 포트 번호를 지정하십시오.

Redis Commander를 사용하여 Redis 리소스 추가

Redis 사령관Redis 리소스에 추가하려면 WithRedisCommander 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithRedisCommander();

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

Redis Commander는 Redis 데이터베이스를 보고 편집하고 관리하는 데 사용되는 Node.js 웹 애플리케이션입니다. .NET .NET Aspire은 앱 호스트에 다른 컨테이너 이미지 docker.io/rediscommander/redis-commander를 추가하여 사령관 앱을 실행합니다.

RedisCommanderResource 체인의 호스트 포트를 구성하려면 WithHostPort API를 호출하고 원하는 포트 번호를 제공합니다.

데이터 볼륨과 함께 Redis 리소스 추가

Redis 리소스에 데이터 볼륨을 추가하려면 Redis 리소스에서 WithDataVolume 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

데이터 볼륨은 컨테이너의 수명 주기 외부에서 Redis 데이터를 유지하는 데 사용됩니다. 데이터 볼륨은 Redis 컨테이너의 /data 경로에 탑재되고 name 매개 변수가 제공되지 않으면 이름이 임의로 생성됩니다. 데이터 볼륨에 관한 추가 정보 및바인드 마운트보다 선호되는 이유에 대한 설명은 문서: 볼륨를 참조하세요.

데이터 바인딩 마운트를 통해 Redis 리소스를 추가하십시오.

Redis 리소스에 데이터 바인딩 탑재를 추가하려면 WithDataBindMount 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataBindMount(
                       source: @"C:\Redis\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

중요하다

데이터 바인딩 탑재볼륨비해 기능이 제한되므로 성능, 이식성 및 보안이 향상되어 프로덕션 환경에 더 적합합니다. 그러나 바인딩 탑재를 사용하면 호스트 시스템의 파일에 직접 액세스하고 수정할 수 있으므로 실시간 변경이 필요한 개발 및 테스트에 적합합니다.

데이터 바인드 마운트는 호스트 컴퓨터의 파일 시스템을 이용하여 컨테이너가 재시작된다 해도 Redis 데이터를 보존합니다. 데이터 바인딩 탑재는 Redis 컨테이너의 호스트 컴퓨터에서 Windows의 C:\Redis\Data(또는 Unix경로의 /Redis/Data)에 탑재됩니다. 데이터 바인드 마운트에 대한 자세한 내용은 Docker 문서: 바인드 마운트를 참조하세요.

지속성이 있는 Redis 리소스 추가

Redis 리소스에 지속성을 추가하려면 데이터 볼륨 또는 데이터 바인드 마운트를 사용하여 WithPersistence 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

앞의 코드는 지정된 간격 및 임계값으로 Redis 데이터의 스냅샷을 만들어 Redis 리소스에 지속성을 추가합니다. interval 스냅샷 내보내기 사이의 시간이며 keysChangedThreshold 스냅샷을 트리거하는 데 필요한 키 변경 작업의 수입니다. 지속성에 대한 자세한 내용은 Redis 문서: 지속성참조하세요.

Garnet 호스팅 통합은 Garnet 리소스를 GarnetResource 형식으로 모델화합니다. 📦 Aspire추가할 수 있는 이 형식 및 API에 액세스하려면 Hosting.Garnet은 앱 호스트 프로젝트에서 NuGet 패키지를.

dotnet add package Aspire.Hosting.Garnet

자세한 내용은 dotnet add package 또는 .NET 애플리케이션에서 패키지 종속성을 관리하세요.

Garnet 리소스 추가

앱 호스트 프로젝트에서 builder 인스턴스에서 AddGarnet 호출하여 Garnet 리소스를 추가합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

.NET .NET Aspire ghcr.io/microsoft/garnet 이미지와 함께 이전 예제와 같이 앱 호스트에 컨테이너 이미지를 추가하면 로컬 머신에 새 Garnet 인스턴스가 만들어집니다. Garnet 리소스(cache 변수)에 대한 참조가 ExampleProject에 추가됩니다.

WithReference 메서드는 ExampleProject에 있는 "cache"라는 이름의 연결을 구성합니다. 자세한 내용은 컨테이너 리소스 수명 주기참조하세요.

팁 (조언)

기존 Garnet 인스턴스에 연결하려는 경우 대신 AddConnectionString 호출합니다. 자세한 내용은 기존 리소스 참조를 참조하세요.

데이터 볼륨을 사용하여 Garnet 리소스 추가

Garnet 리소스에 데이터 볼륨을 추가하려면 Garnet 리소스에서 AddGarnet 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

데이터 볼륨은 컨테이너의 수명 주기 외부에 Garnet 데이터를 유지하는 데 사용됩니다. 데이터 볼륨은 Garnet 컨테이너의 /data 경로에 탑재되고 name 매개 변수가 제공되지 않으면 이름이 임의로 생성됩니다. 데이터 볼륨에 대한 자세한 내용 및바인딩 탑재보다 선호하는 이유에 대한 자세한 내용은 문서: 볼륨참조하세요.

데이터 바인드 마운트를 사용하여 Garnet 리소스를 추가하십시오.

Garnet 리소스에 데이터 바인딩 탑재를 추가하려면 WithDataBindMount 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataBindMount(
                       source: @"C:\Garnet\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

중요하다

데이터 바인딩 탑재볼륨비해 기능이 제한되므로 성능, 이식성 및 보안이 향상되어 프로덕션 환경에 더 적합합니다. 그러나 바인딩 탑재를 사용하면 호스트 시스템의 파일에 직접 액세스하고 수정할 수 있으므로 실시간 변경이 필요한 개발 및 테스트에 적합합니다.

데이터 바인드 마운트는 호스트 머신의 파일 시스템을 사용하여 컨테이너를 다시 시작할 때 Garnet 데이터를 영속화합니다. 데이터 바인드 마운트는 Garnet 컨테이너 내에서 호스트 머신의 Windows C:\Garnet\Data(또는 Unix경로의 /Garnet/Data)에 탑재됩니다. 데이터 바인드 마운트에 대한 자세한 내용은 Docker 문서: 바인드 마운트를 참조하세요.

지속성이 있는 Garnet 리소스 추가

Garnet 리소스에 지속성을 추가하려면, 데이터 볼륨 또는 데이터 바인드 마운트를 사용하여 WithPersistence 메서드를 호출하십시오.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddGarnet("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

앞의 코드는 지정된 간격 및 임계값으로 Garnet 데이터의 스냅샷을 만들어 Redis 리소스에 지속성을 추가합니다. interval 스냅샷 내보내기 사이의 시간이며 keysChangedThreshold 스냅샷을 트리거하는 데 필요한 키 변경 작업의 수입니다. 지속성에 대한 자세한 내용은 Redis 문서: 지속성참조하세요.

Valkey 호스팅 통합은 Valkey 리소스를 ValkeyResource 형식으로 모델화합니다. 유형 및 API에 액세스하려면 앱 호스트 프로젝트 내의 Hosting.Valkey NuGet 패키지에📦Aspire를 추가하세요.

dotnet add package Aspire.Hosting.Valkey

자세한 내용은 dotnet add package 또는 응용 프로그램에서 패키지 종속성을 관리하기를 참조하세요 .NET.

Valkey 리소스 추가

앱 호스트 프로젝트에서 builder 인스턴스에서 AddValkey 호출하여 Valkey 리소스를 추가합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache");

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

.NET .NET Aspire docker.io/valkey/valkey 이미지와 함께 이전 예제와 같이 앱 호스트에 컨테이너 이미지를 추가하면 로컬 머신에 새 Valkey 인스턴스가 만들어집니다. ExampleProject에 Valkey 리소스(cache 변수)에 대한 참조가 추가됩니다.

WithReference 메서드는 "cache"라는 이름의 ExampleProject에서 연결을 구성합니다. 자세한 내용은 컨테이너 리소스 수명 주기참조하세요.

기존 Valkey 인스턴스에 연결하려는 경우 대신 AddConnectionString 호출합니다. 자세한 내용은 기존 리소스 참조를 참조하세요.

데이터 볼륨을 사용하여 Valkey 리소스 추가

Valkey 리소스에 데이터 볼륨을 추가하려면 Valkey 리소스에서 AddValkey 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataVolume(isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

데이터 볼륨은 컨테이너의 수명 주기 외부에 Valkey 데이터를 유지하는 데 사용됩니다. 데이터 볼륨은 Valkey 컨테이너의 /data 경로에 탑재되고 name 매개 변수가 제공되지 않으면 이름이 임의로 생성됩니다. 데이터 볼륨에 대한 자세한 내용 및바인딩 탑재보다 선호하는 이유에 대한 자세한 내용은 문서: 볼륨참조하세요.

데이터 바인드 마운트를 사용하여 Valkey 리소스 추가

Valkey 리소스에 데이터 바인딩 탑재를 추가하려면 WithDataBindMount 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataBindMount(
                       source: @"C:\Valkey\Data",
                       isReadOnly: false);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

중요하다

데이터 바인딩 탑재볼륨비해 기능이 제한되므로 성능, 이식성 및 보안이 향상되어 프로덕션 환경에 더 적합합니다. 그러나 바인딩 탑재를 사용하면 호스트 시스템의 파일에 직접 액세스하고 수정할 수 있으므로 실시간 변경이 필요한 개발 및 테스트에 적합합니다.

데이터 바인딩 탑재는 호스트 컴퓨터의 파일 시스템을 사용하여 컨테이너를 다시 시작하는 동안 Valkey 데이터를 유지합니다. 데이터 바인딩 탑재는 Valkey 컨테이너의 호스트 컴퓨터에서 Windows의 C:\Valkey\Data(또는 Unix/Valkey/Data) 경로에 탑재됩니다. 데이터 바인딩 마운트에 대한 자세한 내용은 Docker 문서:바인드 마운트를 참조하세요.

지속성이 있는 Valkey 리소스 추가

Valkey 리소스에 지속성을 추가하려면 데이터 볼륨이나 데이터 바인드 마운트를 사용하여 WithPersistence 메서드를 호출하십시오.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddValkey("cache")
                   .WithDataVolume()
                   .WithPersistence(
                       interval: TimeSpan.FromMinutes(5),
                       keysChangedThreshold: 100);

builder.AddProject<Projects.ExampleProject>()
       .WithReference(cache);

// After adding all resources, run the app...

앞의 코드는 지정된 간격 및 임계값으로 Valkey 데이터의 스냅샷을 만들어 Redis 리소스에 지속성을 추가합니다. interval 스냅샷 내보내기 사이의 시간이며 keysChangedThreshold 스냅샷을 트리거하는 데 필요한 키 변경 작업의 수입니다. 지속성에 대한 자세한 내용은 Redis 문서: 지속성참조하세요.

통합 건강 검사를 호스팅

Redis 호스팅 통합은 적절한 리소스 종류에 대한 상태 검사를 자동으로 추가합니다. 상태 검사는 server이 실행 중인지 확인하고, 연결이 가능함을 확인합니다.

호스팅 통합은 📦 AspNetCore.HealthChecks에 의존합니다.Redis NuGet 패키지.

Client 통합

.NET Aspire Stack Exchange Redisclient 통합을 시작하려면 client-consuming 프로젝트, 즉 Redisclient을(를) 사용하는 애플리케이션의 프로젝트에서 📦AspireStackExchange NuGet 패키지Redis을 설치합니다. Redis client 통합은 Redis와 상호 작용하는 데 사용할 수 있는 IConnectionMultiplexer 인스턴스를 등록합니다.

dotnet add package Aspire.StackExchange.Redis

Redis client 추가

client사용 중인 프로젝트의 Program.cs 파일에서 어느 IHostApplicationBuilder에도 AddRedisClient 확장 메서드를 호출하여, 컨테이너를 통해 종속성 주입으로 사용할 IConnectionMultiplexer를 등록하십시오. 메서드는 연결 이름 매개 변수를 사용합니다.

builder.AddRedisClient(connectionName: "cache");

조언

connectionName 매개 변수는 앱 호스트 프로젝트에서 Redis 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 Redis 리소스추가를 참조하세요.

connectionName 매개 변수는 앱 호스트 프로젝트에 Garnet 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 Garnet 리소스 추가 을 참조하세요.

connectionName 매개 변수는 앱 호스트 프로젝트에서 Valkey 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 Valkey 자원추가를 참조하세요.

그런 다음 종속성 주입을 사용하여 IConnection 인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.

public class ExampleService(IConnectionMultiplexer connectionMux)
{
    // Use connection multiplexer...
}

종속성 주입에 대한 자세한 내용은 .NET 종속성 주입참조하세요.

키 Redisclient 추가

여러 IConnectionMultiplexer 인스턴스를 서로 다른 연결 이름으로 등록하려는 경우가 있을 수 있습니다. 키 Redis 클라이언트를 등록하려면 AddKeyedRedisClient 메서드를 호출합니다.

builder.AddKeyedRedisClient(name: "chat");
builder.AddKeyedRedisClient(name: "queue");

그런 다음 종속성 주입을 사용하여 IConnectionMultiplexer 인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 연결을 검색하려면 다음을 수행합니다.

public class ExampleService(
    [FromKeyedServices("chat")] IConnectionMultiplexer chatConnectionMux,
    [FromKeyedServices("queue")] IConnectionMultiplexer queueConnectionMux)
{
    // Use connections...
}

키 지정된 서비스에 대한 자세한 내용은 .NET 종속성 주입: 키 지정된 서비스를 참조하세요.

구성

.NET Aspire Stack Exchange Redisclient 통합은 프로젝트의 요구 사항 및 규칙에 따라 Redis 연결을 구성하는 여러 옵션을 제공합니다.

연결 문자열 사용

ConnectionStrings 구성 섹션에서 연결 문자열을 사용하는 경우 AddRedis호출할 때 연결 문자열의 이름을 제공할 수 있습니다.

builder.AddRedis("cache");

ConnectionStrings 구성 섹션에서 연결 문자열을 사용하는 경우 AddGarnet호출할 때 연결 문자열의 이름을 제공할 수 있습니다.

builder.AddGarnet("cache");

ConnectionStrings 구성 섹션에서 연결 문자열을 사용하는 경우 AddValkey호출할 때 연결 문자열의 이름을 제공할 수 있습니다.

builder.AddValkey("cache");

그런 다음 ConnectionStrings 구성 섹션에서 연결 문자열을 검색합니다.

{
  "ConnectionStrings": {
    "cache": "localhost:6379"
  }
}

이 연결 문자열의 서식을 지정하는 방법에 대한 자세한 내용은 Stack Exchange Redis 구성 문서참조하세요.

구성 공급자 사용

.NET Aspire Stack Exchange Redis 통합은 Microsoft.Extensions.Configuration지원합니다. 구성에서 Aspire:StackExchange:Redis 키를 사용하여 StackExchangeRedisSettings를 불러옵니다. 몇 가지 옵션을 구성하는 예제 appsettings.json:

{
  "Aspire": {
    "StackExchange": {
      "Redis": {
        "ConnectionString": "localhost:6379",
        "DisableHealthChecks": true,
        "DisableTracing": false
      }
    }
  }
}

전체 Redisclient 통합 JSON 스키마는 Aspire참조하세요. StackExchange.Redis/ConfigurationSchema입니다.json.

인라인 대리자 사용

Action<StackExchangeRedisSettings> 대리자를 전달하여 일부 또는 모든 옵션을 인라인으로 설정할 수도 있습니다. 예를 들어 DisableTracing을 구성할 수 있습니다.

builder.AddRedisClient(
    "cache",
    static settings => settings.DisableTracing = true);

Client 통합 상태 검사

기본적으로 .NET.NET Aspire 통합은 모든 서비스에 대해 상태 검사를 할 수 있도록 합니다. 자세한 내용은 .NET.NET Aspire 통합 개요참조하세요.

.NET Aspire Stack Exchange Redis 통합은 다음을 처리합니다.

  • StackExchangeRedisSettings.DisableHealthChecks이(가) false일 때, 컨테이너 인스턴스에 연결을 시도하는 상태 검사를 추가합니다.
  • 등록된 모든 상태 검사가 트래픽을 수락할 준비가 된 것으로 간주되려면 앱을 통과해야 하며 이를 지정하는 /health HTTP 엔드포인트와 통합됩니다.

관찰 가능성 및 원격 분석

통합은 로깅, 추적 및 메트릭 구성을 자동으로 설정하며, 이를 관찰성핵심 요소라고도 . 통합 관찰 가능성 및 원격 분석에 대한 자세한 내용은 .NET.NET Aspire 통합 개요참조하세요. 지원 서비스에 따라 일부 통합은 이러한 기능 중 일부만 지원할 수 있습니다. 예를 들어 일부 통합은 로깅 및 추적을 지원하지만 메트릭은 지원하지 않습니다. 구성 섹션에 제시된 기술을 사용하여 원격 분석 기능을 사용하지 않도록 설정할 수도 있습니다.

로깅

.NET Aspire Stack Exchange Redis 통합에서는 다음 로그 범주를 사용합니다.

  • Aspire.StackExchange.Redis

추적

.NET Aspire Stack Exchange Redis 통합은 OpenTelemetry를 사용하여 다음의 추적 활동을 수행합니다.

  • OpenTelemetry.Instrumentation.StackExchangeRedis

지표

.NET Aspire Stack Exchange Redis 통합은 현재 StackExchange.Redis 라이브러리의 제한 사항으로 인해 기본적으로 메트릭을 지원하지 않습니다.

Azure Redis 호스팅 통합

Redis 리소스를 Azure에 배포하려면 📦Aspire.Hosting.Azure.Redis NuGet 패키지를 설치하십시오.

dotnet add package Aspire.Hosting.Azure.Redis

Azure Cache for Redis server 리소스 추가

.NET Aspire 호스팅 AzureRedis 패키지를 설치한 후 앱 호스트 프로젝트에서 AddAzureRedis 확장 메서드를 호출합니다.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddAzureRedis("azcache")

var exampleProject = builder.AddProject<Projects.ExampleProject>()
                            .WithReference(cache);

이전에 호출된 AddAzureRedis는 Redisserver 리소스를 Azure Cache for Redis으로 배포하기 위해 구성합니다.

중요하다

기본적으로 AddAzureRedisMicrosoft Entra ID 인증을 구성합니다. 이렇게 하려면 이러한 리소스(예: client 통합)에 연결해야 하는 애플리케이션을 변경해야 합니다.

Azure Cache for Redis client 추가

기본적으로 Redis 호스팅 통합에서 AddAzureRedis을 호출하면, 📦이(가) Microsoft에서 구성됩니다.Azure의 StackExchangeRedis NuGet 패키지를 통해 인증이 활성화됩니다.

dotnet add package Microsoft.Azure.StackExchangeRedis

Redis 연결은 client 통합과 Microsoft.Azure.StackExchangeRedis를 통해 활용할 수 있습니다. 다음 구성 코드를 고려합니다.

var azureOptionsProvider = new AzureOptionsProvider();

var configurationOptions = ConfigurationOptions.Parse(
    builder.Configuration.GetConnectionString("cache") ?? 
    throw new InvalidOperationException("Could not find a 'cache' connection string."));

if (configurationOptions.EndPoints.Any(azureOptionsProvider.IsMatch))
{
    await configurationOptions.ConfigureForAzureWithTokenCredentialAsync(
        new DefaultAzureCredential());
}

builder.AddRedisClient("cache", configureOptions: options =>
{
    options.Defaults = configurationOptions.Defaults;
});

자세한 내용은 Microsoft를 참조하세요.Azure. StackExchangeRedis 리포지토리입니다.

참고 항목

*: Redis는 Redis Ltd의 등록 상표입니다. 그와 관련된 모든 권리는 Redis Ltd.에 귀속되어 있습니다. Microsoft의 사용은 참조용으로만 사용되며, Redis와 Microsoft 간에 후원, 보증 또는 소속이 있음을 의미하지 않습니다. 맨 위로?