gpt4 book ai didi

redis - ServiceStack 的 IRedisClientManager + Ninject - 使用 InSingletonScope?

转载 作者:IT王子 更新时间:2023-10-29 06:01:08 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 应用程序,我刚刚开始在其中使用 ServiceStack 的 Redis 客户端。我使用 Ninject 作为我的 IoC 容器。目前我的绑定(bind)看起来像这样:

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 的任何请求中进行实例化。我在这里所做的对于典型用例是否正确?提前致谢!

最佳答案

是的,BasicRedisClientManagerPooledRedisClientManager 都是线程安全的,并且设计为用作单例。两者之间的区别在于 BasicRedisClientManager 每次返回都会创建一个新的连接,而 PooledRedisClientManager 维护一个打开的 Redis 连接池。

关于redis - ServiceStack 的 IRedisClientManager + Ninject - 使用 InSingletonScope?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12654945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com