ServiceStack의 IresisClientManager + NINJECT - insingletonscope를 사용합니까?
-
11-12-2019 - |
문제
방금 ServiceStack의 Redis Client를 사용하기 시작한 ASP.NET MVC 응용 프로그램이 있습니다.ioc 컨테이너로 NINJECT를 사용합니다.현재 내 바인딩은 다음과 같습니다.
Bind<IRedisClientsManager>()
.ToMethod(c => new BasicRedisClientManager("localhost:6379"))
.InSingletonScope();
Bind<ICacheClient>().ToMethod(c => c.Kernel.Get<IRedisClientsManager>().GetCacheClient());
Bind<IRedisClient>().ToMethod(c => c.Kernel.Get<IRedisClientsManager>().GetClient());
.
ICACHECLIENT 또는 IRESISCLIENT에 대한 모든 요청에서 인스턴스화하는 데 사용되도록 APP 시작에서 BACIPREDISCLIENTMANAGER의 Singleton 인스턴스를 효과적으로 생성합니다.전형적인 유스 케이스에 대해 내가 여기서 옳은 일입니까?미리 감사드립니다!
해결책
예 basicRedisClientManager 와 pooledredisclientManager 는 모두 threadsafe와 싱글 톤으로 사용되도록 설계되었습니다.2의 차이점은 POOLEDREDISCLIENTMANAGER가 OPEN REDIS 연결 풀을 유지 관리하는 동안 BASICREDISCLIENTMANAGER 리턴이 새 연결을 만듭니다.
제휴하지 않습니다 StackOverflow