我在使用Redis的servicestack庫中的ICacheClient
作爲後端。在Redis和Ninject中使用ServiceStack ICacheClient
我也在使用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可以在這裏響個不停?我已經看到了類似的問題,但無法找到一個明確的答案 – stephen776 2013-02-28 14:38:39
我剛剛從我的Redis的供應商說,我是跑出來的客戶端連接的電子郵件通知,所以我覺得這是DEF我的問題哈哈 – stephen776 2013-02-28 14:59:55
你不應該用完連接時的註冊爲一個單[自redis的所有訪問被包裹在一個使用塊(https://github.com/ServiceStack/ServiceStack.Redis/blob/master/tests/ServiceStack.Redis.Tests/ServiceStack.Redis/PooledRedisClientManager.ICacheClient的.cs)。您可能會遇到與此無關的其他問題。 – mythz 2013-02-28 19:11:23