博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JedisConnectionException: Unexpected end of stream.
阅读量:7117 次
发布时间:2019-06-28

本文共 1662 字,大约阅读时间需要 5 分钟。

在实际项目中遇到redis读取时报错。

报错是

[ERROR]  redis.clients.jedis.exceptions.JedisConnectionException: Unexpected end of stream.

[ERROR]  redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:198)
[ERROR]  redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40)
[ERROR]  redis.clients.jedis.Protocol.process(Protocol.java:132)
[ERROR]  redis.clients.jedis.Protocol.read(Protocol.java:196)
[ERROR]  redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
[ERROR]  redis.clients.jedis.Connection.getBinaryBulkReply(Connection.java:207)
[ERROR]  redis.clients.jedis.BinaryJedis.get(BinaryJedis.java:157)

 

网上首先找到的资料是修改redis服务器上面redis的配置

127.0.0.1:6380> CONFIG GET client-output-buffer-limit

127.0.0.1:6380> config set client-output-buffer-limit 'normal 0 0 0 slave 268435456 67108864 60 pubsub 0 0 0'

修改完成之后,再去修改redis的配置文件

client-output-buffer-limit pubsub 0 0 0

 

但是我这边还是不行,在数据访问量大的时候还是会出现上面的错误。

 

然后我修改了代码中redisPool初始化的代码。

/**

     * 原来的构造方法
     * @param ip 访问的ip
     * @param port 访问的端口
     */
    public RedisDaoImpl(String ip, int port){
        jedisPool = new JedisPool(ip,port);
    }

 

/**

     * 修改之后的构造方法
     * @param ip 访问的ip
     * @param port 访问的端口
     */
    public RedisDaoImpl(String ip, int port){
        JedisPoolConfig config = new JedisPoolConfig();
        //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。
        config.setMaxIdle(5);
        //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;
        config.setMaxWaitMillis(1000 * 100);
        //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;
        config.setTestOnBorrow(true);
        jedisPool = new JedisPool(config,ip,port);
    }

 

修改这个配置之后,错误不再出现。

主要是参考下面的文章给我的启发。

里面的工具类包括redis的一些配置讲的很清楚,之后的项目我会把我自己的redis改造一下,改造成他这样的形式,便于我去操作。主要一些要注意的问题其中也提出了,值得学习。

转载地址:http://zbfel.baihongyu.com/

你可能感兴趣的文章
Redux源码分析之基本概念
查看>>
ubuntu(14.04) 网路管理
查看>>
vue按需引入element Transfer 穿梭框
查看>>
Facebook 2018 年度开源回顾:新增开源项目 153 个
查看>>
JDBC的数据类型
查看>>
「镁客·请讲」Ayla米歇尔·马埃索:在物联网,我们要做一个“中心环节”
查看>>
PiFlow v0.5 发布:大数据流水线系统
查看>>
iOS__上传应用到AppStore出现Authenticating with the iTunes store
查看>>
mac下设置eclipse自动提示
查看>>
IntelliJ IDEA中日志分类显示设置
查看>>
数据结构思维 第十六章 布尔搜索
查看>>
独家|从满天飞舞到逐步落地,自动驾驶好消息只会越来越多
查看>>
如何找到后台运行的隐藏程序
查看>>
多维防护:虚拟化安全挑战的破解之道
查看>>
Maven在Eclipse中的实用小技巧
查看>>
JdbcTemplate使用小结
查看>>
2014 网选 5011 Game(Nim游戏,数学题)
查看>>
微软官方windows phone开发视频教程第一天视频(附下载地址)
查看>>
螺旋阵列
查看>>
Gut基础入门(十)Git远程分支
查看>>