在快速读取Redis时出现异常

在快速读取Redis时出现异常

​JedisConnectionException: Attempting to read from a broken connection

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小尤 2021-01-08 11:48:11

同学你好,1. 当jedis的连接池不够,或者网络抖动请求redis超时,就可能会出现JedisConnectionException。

2. 当出现JedisConnectionException,可能会与出现RedisInputStream缓冲区的脏数据,为了避免此问题,同学可需要remove掉连接试一下。如下所示:

    http://img1.sycdn.imooc.com//climg/5ff7ef9a09dd3ea006860364.jpg

注:此问题可能是redis没有反应过来(发送多条,但redis没有返回数据)导致的,同学可以暂时先忽略此问题。

祝学习愉快!

  • 提问者 要快乐_ #1

    删掉这里不会报空指针异常吗 我一开始定义的Jedis jedis = null;


    2021-01-08 12:30:19
  • 好帮手慕小尤 回复 提问者 要快乐_ #2

    同学你好,刚是老师理解错误,已修改回答,请同学查看。给您的学习带来不便,深感抱歉!

    祝学习愉快!

    2021-01-08 13:38:25
好帮手慕小尤 2021-01-08 10:09:13

同学你好,根据同学反馈的信息,老师无法定位问题。建议同学反馈全部的错误信息,并建议同学以复制粘贴的方式反馈代码,便于老师定位问题。

祝学习愉快!

  • 提问者 要快乐_ #1

    我在后续的SpringBoot中使用Jedis存储用户信息,在根据token快速获取用户信息时便会Jedis断开连接

    Jedis jedis =null;
    try {
    jedis=new Jedis(Constant.HOST,Constant.PORT);
    if (!jedis.exists(token)){
    throw new WebforumException(WebforumExceptionEnum.LOGIN_EXPIRED);
    }
    ApiRestResponse parse = JSONObject.parseObject(jedis.get(token),ApiRestResponse.class);
    return parse;
    }catch (IllegalArgumentException e){
    throw new WebforumException(WebforumExceptionEnum.LOGIN_EXPIRED);
    }catch (JedisConnectionException e){
    throw new WebforumException(WebforumExceptionEnum.JEDIS_FAILED);
    }
    finally {
    if (jedis!=null){
    jedis.close();
    }
    }


    2021-01-08 10:19:20
  • 提问者 要快乐_ #2

    获取几次没问题,如果用Swagger文档快速发送请求,便会JedisConnectionException: Attempting to read from a broken connection

    然后我的登录等接口需要用到Redis的都不能用了,需要重新启动项目,Jedis也不会重新连接

    2021-01-08 10:21:26
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师