[REDIS] ASP.net MVC에서 푸른 레디 스 StackExchange.Redis ConnectionMultiplexer
REDISASP.net MVC에서 푸른 레디 스 StackExchange.Redis ConnectionMultiplexer
나는 푸른 레디 스 캐시에 연결하기 위해이 연습을 수행하는 것이 가장 좋습니다 읽었습니다 :
private static ConnectionMultiplexer Connection { get { return LazyConnection.Value; } }
private static readonly Lazy<ConnectionMultiplexer> LazyConnection =
new Lazy<ConnectionMultiplexer>(
() =>
{
return
ConnectionMultiplexer.Connect(connStinrg);
});
그리고 푸른 레디 스의 문서에 따르면 :
그래서 내 ASP.net MVC 응용 프로그램을 통해 ConnectionMultiplexer를 공유하기위한 가장 좋은 방법은 무엇입니까? 이 Global.asax에 호출 할 경우, 또는 내가 컨트롤러, 또는 떨어지게 한 번씩 초기화해야한다. 다른?
또한 나는 내가 컨트롤러에서 서비스에 ConnectionMultiplexer의 인스턴스를 보내야 서비스 내부 레디 스와 통신 할 그렇다면, 응용 프로그램과 통신 할 임무되는 서비스를, 또는 나는 내 모든 서비스를 초기화해야한다, 또는?
당신은 내가 여기에 손실을 조금있어 볼 수 있듯이, 그래서 도움을 기쁘게!
해결법
-
==============================
1.워드 프로세서는 ConnectionMultiplexer 하나의 인스턴스 만이 그것을 다시해야한다는 점에서 옳다. 하나 이상 작성하지 마십시오, 그것을 공유하고 재사용 할 것을 권장합니다. 이제 생성의 경우, 그것은 컨트롤러 또는 Global.asax에에 있으면 안됩니다. 일반적으로 당신은 ConnectionMultiplexer 개인 정적 인스턴스 내부 및 생성 코드가 있어야한다 그의를 사용하여 자신의 RedisCacheClient 클래스 (어쩌면 일부 ICACHE 인터페이스를 구현)를 가져야한다 - 당신이 당신의 질문에 쓴 그대로. 레이지 부분은 처음 사용될 때까지 ConnectionMultiplexer의 생성을 지연한다.
워드 프로세서는 ConnectionMultiplexer 하나의 인스턴스 만이 그것을 다시해야한다는 점에서 옳다. 하나 이상 작성하지 마십시오, 그것을 공유하고 재사용 할 것을 권장합니다. 이제 생성의 경우, 그것은 컨트롤러 또는 Global.asax에에 있으면 안됩니다. 일반적으로 당신은 ConnectionMultiplexer 개인 정적 인스턴스 내부 및 생성 코드가 있어야한다 그의를 사용하여 자신의 RedisCacheClient 클래스 (어쩌면 일부 ICACHE 인터페이스를 구현)를 가져야한다 - 당신이 당신의 질문에 쓴 그대로. 레이지 부분은 처음 사용될 때까지 ConnectionMultiplexer의 생성을 지연한다.
-
==============================
2.애들 아;
애들 아;
당신은 다음과 같은 코드를 사용하여 StackExchange.Redis ConnectionMultiplexer을 다시 사용할 수 있습니다. 그것은 코드의 계층에서 사용할 수 있습니다.
public class RedisSharedConnection { private static Lazy<ConnectionMultiplexer> lazyConnection = new Lazy<ConnectionMultiplexer>(() => { ConnectionMultiplexer connectionMultiplexer = ConnectionMultiplexer.Connect(ConfigurationManager.ConnectionStrings["RedisConnectionString"].ConnectionString); connectionMultiplexer.PreserveAsyncOrder = false; return connectionMultiplexer; }); public static ConnectionMultiplexer Connection { get { return lazyConnection.Value; } } }
from https://stackoverflow.com/questions/32525273/azure-redis-stackexchange-redis-connectionmultiplexer-in-asp-net-mvc by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 가게에 레디 스에서 개체의 소트 세트? (0) | 2020.01.22 |
---|---|
[REDIS] 레디 스 및 Node.js를하고 Socket.io 질문 (0) | 2020.01.22 |
[REDIS] 어떻게 레디 스에서 HSCAN 명령을 사용 하는가? (0) | 2020.01.22 |
[REDIS] StackExchange.Redis을 사용하는 올바른 방법 (0) | 2020.01.22 |
[REDIS] 최대 클라이언트에게 Heroku와 Redistogo 나노에 도달 (0) | 2020.01.22 |