【发布时间】:2013-02-28 14:35:58
【问题描述】:
我正在使用 servicestack 库中的 ICacheClient,并将 Redis 作为后端。
我也在使用 Ninject 进行 DI。
我正在尝试确定在哪个范围内绑定 PooledRedisClient 管理器。
我尝试了以下方法:
Bind<ICacheClient>().ToMethod(ctx => new PooledRedisClientManager(redisURI)).InSingletonScope();
这似乎工作正常,但我经常看到RedisResponseExceptions。
我认为这是因为我的连接用完了。
也许 SingletonScope 不正确?
谁能指出我正确的方向?我正在使用 servicestack 版本:3.9.0
编辑
这是正确的用法吗?
Bind<ICacheClient>().ToMethod(ctx => new PooledRedisClientManager(redisURI).GetCacheClient()).InSingletonScope();
【问题讨论】:
-
也许@mythz 可以在这里插话?我见过类似的问题,但找不到明确的答案
-
我刚从我的 redis 提供商那里收到一封电子邮件通知,说我的客户端连接用完了,所以我认为这是我的问题哈哈
-
在注册为单例since all redis access is wrapped in a using block 时,您不应该用完连接。您可能还有其他与此无关的问题。
标签: c# asp.net redis ninject servicestack