ServiceStack Redis客户端并接收超时

时间:2014-03-19 14:36:42

标签: c# redis servicestack

我们正在使用ServiceStack RedisClient进行缓存。最近我们在Redis和我们的Web服务器之间有一些网络延迟。我们使用PooledRedisClientManager。发送命令(特别是Get)时,我们注意到以下行为:

  1. 网络中存在一些延迟
  2. 我们收到SocketIO例外:

      

    无法从传输连接中读取数据:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机无法响应而建立的连接失败。

    连接仍然是开放的 - 只是很慢。

  3. 此异常一直传播到我们的代码库,在那里我们处理客户端(即返回池)

  4. 因此,来自客户的所有回复都是n-1。例如:

    var x = client.Get<string>(id1); //this fails for latency. x = ""
    //network restored
    var y = client.Get<string>(id2); //y = value(id1)
    var z = client.Get<string>(id3); //z = value(id2)
    var w = client.Increment(id4); //fails for 'unexpected token' since it gets value(id3)
    
  5. 其他人遇到过这个问题?你是怎么解决的?

0 个答案:

没有答案