首页 新闻 搜索 专区 学院

Redis连接池报No more data;请问有没有人知道怎么解决,我自己模拟的从来没有出现过

0
悬赏园豆:100 [已解决问题] 解决于 2015-11-02 15:51

protected void ExpectSuccess()
{
int c = SafeReadByte();
if (c == -1)
throw CreateResponseError("No more data");

var s = ReadLine();

Log((char)c + s);

if (c == '-')
throw CreateResponseError(s.StartsWith("ERR") && s.Length >= 4 ? s.Substring(4) : s);
}

 

 

补充:

BufferedStream Bstream = new BufferedStream(new NetworkStream(socket), 16 * 1024);

private int SafeReadByte()
{
       return Bstream.ReadByte();
}

 

 

小菜变大鸟的主页 小菜变大鸟 | 初学一级 | 园豆:5
提问于:2015-09-28 22:03
< >
分享
最佳答案
0

尝试下检测网络环境呢?考虑Redsi服务端超时情况

收获园豆:100
千亦千寻 | 菜鸟二级 |园豆:404 | 2015-11-02 15:50

解决了

小菜变大鸟 | 园豆:5 (初学一级) | 2015-11-02 15:51
其他回答(4)
0

windows下的redis确实不太稳定,我也就接触过,没遇到过你这个问题。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-09-29 11:40

@小菜变大鸟: 同感,遇到好多次这样的事情,本地好好的,上到线上就有问题,有的是数据太多的问题,有的是上线版本的问题,有的根本不知道啥问题,只能多试了,加油吧!

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-09-30 09:55
0

我用是StackExchange提供的类库,之前调用都是同步请求的,后来改用提供的异步的方法就没出过这个问题。

拉风的拉灯 | 园豆:585 (小虾三级) | 2015-09-29 13:04

@小菜变大鸟: 修正下,我用的stackexchange类库,之前拼写错了。

一般这个问题应该是哪个操作堵塞了,servicestack.redis不熟悉,你看看有没有异步方法调用,或者你可以考虑性能调试工具捕获哪个线程调用的方法花费的时间最长。我用的是Windbg调试分析的。

支持(0) 反对(0) 拉风的拉灯 | 园豆:585 (小虾三级) | 2015-09-29 17:46
0

请教博主,这个问题是如何解决的。我现在也碰到这个问题饿了。。。。

灬花落丶莫相离 | 园豆:202 (菜鸟二级) | 2016-07-03 11:34

 我的是因为连接池里面的我连接对象实际已经断开连接了,但是代码有个地方漏检测了,Ping方法检测要全面,仔细检查下代码

支持(0) 反对(0) 小菜变大鸟 | 园豆:5 (初学一级) | 2016-12-21 08:31
0

碰到了同样的问题,请教是怎么解决的。

wywyxa | 园豆:202 (菜鸟二级) | 2016-12-20 22:38

 我的是因为连接池里面的我连接对象实际已经断开连接了,但是代码有个地方漏检测了,Ping方法检测要全面,仔细检查下代码

支持(0) 反对(0) 小菜变大鸟 | 园豆:5 (初学一级) | 2016-12-21 08:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册