ServiceStack.Redis在事务中执行多个更新时抛出随机错误

时间:2013-10-08 19:31:05

标签: c# transactions redis servicestack

我有一些代码循环遍历更新列表以应用于许多Redis哈希,这在大多数情况下效果很好。问题是,我偶尔会遇到如下错误:

  

ServiceStack.Redis.RedisResponseException:未知命令   '1234:日期:20130909:每日',sPort:34527,LastCommand:at   ServiceStack.Redis.RedisNativeClient.CreateResponseError   (System.String错误)[0x00000] in:0 at   ServiceStack.Redis.RedisNativeClient.ExpectWord(System.String word)   [0x00000] in:0 at   ServiceStack.Redis.RedisNativeClient.ExpectQueued()[0x00000] in   :0点   ServiceStack.Redis.Pipeline.QueuedRedisOperation.ProcessResult()   [0x00000] in:0

我不确定这是否真的是Redis方面或客户端/驱动程序上的故障,但是在请求/响应中肯定会出现问题。

这是我正在尝试做的一些示例代码:

using (var redisClient = redisClientManager.GetClient())
{
     using (var multi = redisClient.CreateTransaction())
     {
          foreach (var originalHashValue in hashDictionary)
          {
               multi.QueueCommand(
                    r => r.IncrementValueInHash(hash, originalHashValue.Key, originalHashValue.Value));
          }

          var redisUpdateResult = multi.Commit();
     }
}

代码非常简单,结果不一致,所以我不确定该怎么想。

我正在使用最新的稳定redis,通过GigE LAN连接。

  • redis_version:2.6.16
  • 框之间的平均值小于.2ms
  • “mtr”显示其一致/可靠的连接

思想?

0 个答案:

没有答案