在实际项目中遇到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://www.cnblogs.com/antball/p/4976990.html

JedisConnectionException: Unexpected end of stream.的更多相关文章

  1. 线上redis问题修复:JedisConnectionException: Unexpected end of stream.

    经过: 项目上线后经常报 Unexpected end of stream.; nested exception is redis.clients.jedis.exceptions.JedisConn ...

  2. 连接池你用对了吗?一次Unexpected end of stream异常的排查

    能收获什么? 更加了解TCP协议 Redis与客户端关闭连接的机制 基于Apache Common连接池的参数调优 Linux网络抓包 情况简介 近期迁移了部分应用到K8s中,业务开发人员反馈说,会发 ...

  3. 图片上传unexpected end of stream

    第二次上传头像图片的时候出现 unexpected end of stream 解决办法: 将第一次图片上传成功后做以下操作即可: mBitmapFile.delete(); mBitmapFile ...

  4. java.net.ProtocolException:unexpected end of stream

    原因:php 给android 写接口出现java.net.ProtocolException:unexpected end of stream,查找android方面原因时发现数据超长 ,发现htm ...

  5. 通过nginx转发,用外网连接阿里云的redis,报Unexpected end of stream的解决办法

    一.在与redis同一个内网的服务器上A的nginx做了下面的设置 stream { upstream redis { server  redis.rds.aliyuncs.com:6379 max_ ...

  6. Jedis Unexpected end of stream & java.net.SocketException: Broken pipe问题解决思路

    笔者一直维护的稳定基础服务测试环境不稳定了,这能忍!盘他,虽然不一定能完全盘的了. 背景: hrexternal 基础服务对外提供公司员工获取的多个接口,很多接口访问频率比较高,加了缓存,使用的是re ...

  7. Jedis超时时间设置梳理

    JedisConnectionException: Unexpected end of stream #932 Repeatable exception and for the life of me, ...

  8. Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'

    @Configuration public class HttpSessionConfig { @Bean public static ConfigureRedisAction configureRe ...

  9. Spring-Data-Redis 下实现jedis连接断开后自动重连

    原先使用jedis的时候,处理手段是在从连接池获取连接时捕获JedisConnectionException异常,在异常处理部分重新获取连接,但是spring data redis似乎不会,如下所示: ...

随机推荐

  1. echarts样式修改

    本人是查看如下链接: http://down.admin5.com/demo/code_pop/cs/dsj/doc/example/themeDesigner.html# 图示很简洁明了.

  2. JAVA中String(字符串)课堂总结

    一:Java编译器中关于字符串自动优化 例子一: 源代码: public class StringPool { public static void main(String args[]) { Str ...

  3. UML中的类间的关系

    1.泛化(Generalization) 指的是子类与父类之间的继承关系,空心三角+实线,箭头指向父类   eg:Father类为Son类的父类     2.依赖(Dependency) 没关系 &g ...

  4. jquery属性与样式

    1.attr()与prop() 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.如:在img元素中,src就是元素的特性,用来标记图片的地址. 操作特性的DOM方法主 ...

  5. 残酷中蜕变的SEOer

    SEO在不断蜕变,今天的自己推翻昨天的自己. 大牛说"SEOer们走的路不同,最终都会殊途同归."   最后都会炼出"SEO的道"最终都会回归到网站基础工程.毕 ...

  6. C# 深入了解泛型

    本文是根据网上&书本总结来的. 1. 介绍 泛型程序设计是程序设计语言的一种风格或范式. 泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时(instantia ...

  7. Solr搜索技术

    Solr搜索技术 今日大纲 回顾上一天的内容: 倒排索引 lucene和solr的关系 lucene api的使用 CRUD 文档.字段.目录对象(类).索引写入器类.索引写入器配置类.IK分词器 查 ...

  8. String对象的Replace()

    <!DOCTYPE html> <html> <head> </head> <body> <script type="tex ...

  9. 模拟点击a链接

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head&g ...

  10. html5权威指南:客户端分区响应图

    客户端分区响应图:http://www.cnblogs.com/enjoymylift/p/5984338.html