IredisClientManager + Ninject - Usa insingletonsCope?
-
11-12-2019 - |
Domanda
Ho un'applicazione MVC ASP.NET in cui ho appena iniziato a utilizzare il client Redis di ServiceStack.Uso Ninjey come il mio contenitore di IOC.Attualmente i miei attacchi sembrano questo:
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());
.
Creando in modo efficace una istanza Singleton di BasicReDisClientMermiclSclInnerManger presso l'APP Start-up da utilizzare per istanziare in qualsiasi richiesta per un Icacheclient o IredisClient.È quello che ho fatto qui corretto per i casi di utilizzo tipici?Grazie in anticipo!
Soluzione
Sì, sia il BasicreDisClientManager e il PoolDedisClientManager sono entrambi threadsafe e progettati per essere utilizzati come singleton.La differenza tra il 2 è che BasicreDisClientManager restituisce crea una nuova connessione ogni volta mentre il poatoreredisClientManager mantiene un pool di connessioni di Redis aperte.