[REDIS] `StackExchange.Redis.ConnectionMultiplexer`는`AddStatic` 또는 .NET 핵심 의존성 주입에`AddScope`해야 하는가?
REDIS`StackExchange.Redis.ConnectionMultiplexer`는`AddStatic` 또는 .NET 핵심 의존성 주입에`AddScope`해야 하는가?
내가 StackExchange.Redis를 사용하여 .NET 코어에 레디 스 연결을 추가 해요, 그것은 현재 다음과 같은 :
public static IServiceCollection AddRedisMultiplexer(
this IServiceCollection services,
Func<ConfigurationOptions> getOptions = null)
{
// Get the options or assume localhost, as these will be set in Startup.ConfigureServices assume they won't change
var options = getOptions?.Invoke() ?? ConfigurationOptions.Parse("localhost");
// The Redis is a singleton, shared as much as possible.
return services.AddSingleton<IConnectionMultiplexer>(provider => ConnectionMultiplexer.Connect(options));
}
그런 다음 시작에
public void ConfigureServices(IServiceCollection services)
{
services.AddRedisMultiplexer(() =>
ConfigurationOptions.Parse(Configuration["ConnectionStrings:Redis"]));
...
이것은 그때 의존성 주입 어디를위한 IConnectionMultiplexer를 사용할 수 있다는 것을 의미합니다.
내 질문은 : 나는 전체 응용 프로그램의 단일 인스턴스를 유지하는 AddSingleton 사용했습니다 있도록 ConnectionMultiplexer는 재사용 할 수 있도록 설계되었습니다. 그러나 나는 또한 요청 기간 동안 하나를 사용 AddScoped를 사용할 수 있습니다. 어느 것이 더 좋은 이유는 무엇입니까?
해결법
-
==============================
1.응용 프로그램에 예상되는 부하는 무엇인가? 당신이 많은 동시성이있는 경우, 나는 시작하는 불필요한 부담과 모든 요청에 가까운 많은 연결을 의미 AddScoped를 사용하여 생각합니다.
응용 프로그램에 예상되는 부하는 무엇인가? 당신이 많은 동시성이있는 경우, 나는 시작하는 불필요한 부담과 모든 요청에 가까운 많은 연결을 의미 AddScoped를 사용하여 생각합니다.
또한 이러한 관찰은 AddSingleton를 사용해야 쇼 이럴
또한, ConnectionMultiplexer (IMHO)의 단 하나의 인스턴스를 가진 메모리를 저장합니다.
from https://stackoverflow.com/questions/40844665/should-stackexchange-redis-connectionmultiplexer-be-addstatic-or-addscope by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 스푸핑 / authorized_keys에로 레디 스 쓰기 (0) | 2020.01.23 |
---|---|
[REDIS] 레디 스 팝 / 하위 ServiceStack, 스레드를 취소 (0) | 2020.01.23 |
[REDIS] 레디 스에서 루아에서 현재 날짜와 시간을 가져 (0) | 2020.01.23 |
[REDIS] SignalR은 SSL에 푸른 레디 스에 연결할 수 없습니다 (0) | 2020.01.23 |
[REDIS] 레디 스 : 감독 그래프 가중 구현 (0) | 2020.01.22 |