복붙노트

[REDIS] ASP.NET 코어 컨트롤러에 StackExchange.Redis 사용

REDIS

ASP.NET 코어 컨트롤러에 StackExchange.Redis 사용

나는 레디 스는 MVC 컨트롤러에서 비트 필드와 hashfields 등의 기능을 사용하고 싶습니다. 내 응용 프로그램에서 필요없는 명령, 기본 GET 및 SET 명령을 내가 ASP.NET 코어의 지원을 캐싱 기본적으로 제공이 이해하지만, 이것은 단지 지원합니다. 나는 (콘솔 예.) 일반 응용 프로그램에서 StackExchange.Redis을 사용하는 방법을 알고,하지만 난 확인하는 ASP 사이트에를 설정하는 방법을 모르겠어요.

어디에서 모두가 컨트롤러에서 나중에 내가에 액세스 할 수 있도록 연결 초기화 코드를 삽입해야합니까? 나는에 대한 의존성 주입을 사용하는 것이이 일이 있습니까?

해결법

  1. ==============================

    1.당신의 시작 클래스의 ConfigureServices 방법, 당신은 추가 할 수 있습니다

    당신의 시작 클래스의 ConfigureServices 방법, 당신은 추가 할 수 있습니다

    services.AddSingleton<IConnectionMultiplexer>(ConnectionMultiplexer.Connect("yourConnectionString"));
    

    그런 다음이 뭔가에 생성자 서명을 변경하여 의존성 주입을 사용할 수 있습니다 :

    public YourController : Controller
    {
        private IConnectionMultiplexer _connectionMultiplexer;
        public YourController(IConnectionMultiplexer multiplexer)
        {
            this._connectionMultiplexer = multiplexer;
        }
    }
    
  2. ==============================

    2.이 블로그는 ASP.NET 코어로 레디 스 서비스를 구현하는 방법에 대한 (전체 코드의 repo를 동반)은 작성자가 있습니다. 그것은 자동 레디 스의 HashSet의에 POCO 클래스를 serialises 상용구 서비스가 있습니다.

    이 블로그는 ASP.NET 코어로 레디 스 서비스를 구현하는 방법에 대한 (전체 코드의 repo를 동반)은 작성자가 있습니다. 그것은 자동 레디 스의 HashSet의에 POCO 클래스를 serialises 상용구 서비스가 있습니다.

  3. ==============================

    3.간단한 방법은 Nuget 패키지를 설치하는 것입니다

    간단한 방법은 Nuget 패키지를 설치하는 것입니다

    Install-Package Microsoft.Extensions.Caching.Redis 
    

    당신의 ASP MVC .NET 핵심 프로젝트이다.

    그런 다음 방법 ConfigureServices에서 클래스 시작의 의존성 주입과 서비스를 구성 :

            services.AddDistributedRedisCache(option =>
            {
                option.Configuration = Configuration["AzureCache:ConnectionString"];
                option.InstanceName = "master";
            });
    

    이 같은 자료 배포를위한 appsettings.json에 바인딩 연결 문자열을 추가합니다 :

    "AzureCache": {
        "ConnectionString": "" 
      }  
    

    당신이 하늘빛을 사용하는 경우, 배포 후 푸른 측에 런타임에 바인딩에 ASP MVC .NET 핵심 응용 서비스를위한 응용 프로그램 설정에서 응용 프로그램 설정 이름을 추가 할 수 있습니다. 생산을위한 연결 문자열은 보안상의 이유에서 코드에서 발생하지 않습니다.

    푸른 바인딩 연결 문자열

    예를 들어, 바인딩 추가 개발 appsettings.Development.json

    "AzureCache": {
        "ConnectionString": "<your connection string>"
      }
    

    생성자의 컨트롤러에 서비스를 주입 :

    public class SomeController : Controller
    {
            public SomeController(IDistributedCache distributedCache)
    
  4. from https://stackoverflow.com/questions/46368234/using-stackexchange-redis-in-a-asp-net-core-controller by cc-by-sa and MIT license