在操作Hashes with Servicestack池redisClientsManager時出現錯誤。發生意外錯誤ServiceStack Redis客戶端
這裏是如何我已經註冊了國際奧委會
private static IRedisClientsManager redisClientsManager;
redisClientsManager = new PooledRedisClientManager("host:6379");
container.Register<IRedisClientsManager>(c => redisClientsManager);
container.Register(c => c.Resolve<IRedisClientsManager>().GetClient());
container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));
,這裏是怎麼了在倉庫使用它,
IRedisClientsManager manager;
public repository(IRedisClientsManager mgr)
{
this.manager=mgr;
}
//方法談Redis的
using(var red = manager.getClient())
{
//do stuff with Other datatype except Hashes WORKS
}
//Error raised here
using(var redHash = manager.getClient())
{
//do stuff with Hashes DOESNT WORKS
}
錯誤: 意外錯誤:* 0 ....,Redis響應錯誤 任何Suggesti介紹如何使用PooledRedisClientManager線程安全。
添加堆棧跟蹤:
消息:意外的答覆:* 0,運動:6379,LastCommand:
at ServiceStack.Redis.RedisNativeClient.CreateResponseError(String error) at ServiceStack.Redis.RedisNativeClient.ParseSingleLine(String r) at ServiceStack.Redis.RedisNativeClient.SendExpectData(Byte[][] cmdWithBinaryArgs) at ServiceStack.Redis.RedisNativeClient.EvalShaStr(String sha1, Int32 numberKeysInArgs, Byte[][] keys) at ServiceStack.Redis.RedisClient.ExecLuaShaAsString(String sha1, String[] keys, String[] args) at Services.Data.Repository.GetMo(geoJ , DateTime , String) in \Data\Repository.cs:line 169 at Services.Api.getMService.Any(getM request) in \Api\getMService.cs:line 15 at lambda_method(Closure , Object , Object) at ServiceStack.ServiceHost.ServiceRunner`1.Execute(IRequestContext requestContext, Object instance, TRequest request)
請提供一個不起作用的代碼示例,您可以在Gistlyn上創建一個[Live C#Redis示例](http://gistlyn.com/?gist=54e452bb1e86e132068a595d7e72d1a6)。 – mythz
@mythz我試圖重新創建問題,但無法重現。我正在實施Repository Pattern,在那裏我註冊了Repository,構造函數實例化了Clients Manager,如上所示。 –
沒錯,但我們需要能夠重現問題以識別它。除了CacheClient應該是一個singleton(所以刪除ReuseScope.None)並且'GetClient()'應該是PascalCase。你也不需要爲'新的PooledRedisClientManager(「主機:6379」)' – mythz