我有一个Redis应用程序,我刚刚开始使用ServiceStack的ASP.NET客户端。我使用Ninject作为IoC容器。目前,我的绑定如下所示:
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());我在应用程序启动时有效地创建了一个BasicRedisClientManager的单例实例,用于在ICacheClient或IRedisClient的任何请求中实例化。我在这里所做的对于典型用例是正确的吗?提前感谢!
发布于 2012-09-30 14:00:59
是的,BasicRedisClientManager和PooledRedisClientManager都是线程安全的,并且都被设计为单独使用。两者的不同之处在于,Redis returns每次都会创建一个新连接,而PooledRedisClientManager则维护一个开放的BasicRedisClientManager连接池。
https://stackoverflow.com/questions/12654945
复制相似问题