2017-03-22 3 views
0

Azure Redis Cache를 사용하여 "Multi Tenant MVC Application"의 출력 캐싱을 저장하려고합니다. 어떻게 든 Redis 서버에 저장된 키를 구별하는 방법이 필요합니다. TenantId_a2/*를주의 깊게 살펴보면 아래의 스크린 샷을보실 수 있습니다. 'TenantId'라는 키 이름을 프로그래밍 방식으로 제어하고 싶었습니다.Azure Redis 동적 응용 프로그램 이름 또는 키 이름

enter image description here

내가 출력 캐싱을위한 레디 스를 사용하고 있기 때문에, 내가 web.config 파일에서 레디 스 출력 캐시를 구성 할 필요가 여기에 스크린 샷 :

enter image description here

구성하는 또 다른 방법이있다 응용 프로그램 코드에서 redis 캐시하지만 출력 캐싱을위한 것이 아닙니다 ... 물론입니다. 어떤 방법 출력 캐싱 또는 상기 요구 사항을 달성하기 위해 다른 방법이 코드를 사용하는 경우

public class AzureRedisCache 
{ 
    private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => 
    { 
     string configString = "********"; 
     var options = ConfigurationOptions.Parse(configString); 
     options.ClientName = "TenantId"; // GREAT :) 
     options.AllowAdmin = true; 
     return ConnectionMultiplexer.Connect(options); 
    }); 

    public static ConnectionMultiplexer Connection 
    { 
     get 
     { 
      return lazyConnection.Value; 
     } 
    } 
} 

지금이 전화를, 우리가 잘 모르겠어요

IDatabase cache = AzureRedisCache.Connection.GetDatabase(); 

를 사용 즉, 코드입니다. 제발 제안 해주세요.

답변

0

이와 비슷한 제품을 찾고 계십니까? 응용 프로그램 이름을 동적으로 설정하면 도움이 될까요?

OutputCacheSection ops = (OutputCacheSection)WebConfigurationManager.GetSection("system.web/caching/outputCache"); 
     ProviderSettings providerSettings = ops.Providers[0]; 
     providerSettings.Parameters["applicationName"] = "myDynamicApplicationName"; 
+0

분명히하기 위해 위의 코드를 앱 시작 로직에 넣으십시오. 이는 앱 실행 중에 임의로 변경해야하는 설정이 아닙니다 (예 : 고객의 입력을 기반으로 함). – JonCole

+0

답장을 보내 주셔서 대단히 감사합니다. 한 번 시도하면 업데이트됩니다. –

+0

applicationName을 기반으로 Redis에서 캐시를 삭제할 수 있습니까? –