JedisConnectionException: Unexpected end of stream.
在实际项目中遇到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.的更多相关文章
- 线上redis问题修复:JedisConnectionException: Unexpected end of stream.
经过: 项目上线后经常报 Unexpected end of stream.; nested exception is redis.clients.jedis.exceptions.JedisConn ...
- 连接池你用对了吗?一次Unexpected end of stream异常的排查
能收获什么? 更加了解TCP协议 Redis与客户端关闭连接的机制 基于Apache Common连接池的参数调优 Linux网络抓包 情况简介 近期迁移了部分应用到K8s中,业务开发人员反馈说,会发 ...
- 图片上传unexpected end of stream
第二次上传头像图片的时候出现 unexpected end of stream 解决办法: 将第一次图片上传成功后做以下操作即可: mBitmapFile.delete(); mBitmapFile ...
- java.net.ProtocolException:unexpected end of stream
原因:php 给android 写接口出现java.net.ProtocolException:unexpected end of stream,查找android方面原因时发现数据超长 ,发现htm ...
- 通过nginx转发,用外网连接阿里云的redis,报Unexpected end of stream的解决办法
一.在与redis同一个内网的服务器上A的nginx做了下面的设置 stream { upstream redis { server redis.rds.aliyuncs.com:6379 max_ ...
- Jedis Unexpected end of stream & java.net.SocketException: Broken pipe问题解决思路
笔者一直维护的稳定基础服务测试环境不稳定了,这能忍!盘他,虽然不一定能完全盘的了. 背景: hrexternal 基础服务对外提供公司员工获取的多个接口,很多接口访问频率比较高,加了缓存,使用的是re ...
- Jedis超时时间设置梳理
JedisConnectionException: Unexpected end of stream #932 Repeatable exception and for the life of me, ...
- Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'
@Configuration public class HttpSessionConfig { @Bean public static ConfigureRedisAction configureRe ...
- Spring-Data-Redis 下实现jedis连接断开后自动重连
原先使用jedis的时候,处理手段是在从连接池获取连接时捕获JedisConnectionException异常,在异常处理部分重新获取连接,但是spring data redis似乎不会,如下所示: ...
随机推荐
- SweetTips: 快意灵动的Android提示库!
此文章是我在简书的文章,自行搬到博客园.简书地址:SweetTips: 快意灵动的Android提示库! 源码及所在DEMO已上传至GitHub:SweetTips,欢迎大家提Bug,喜欢的话记得St ...
- Linux 虚拟机性能监控
性能监控工具 perf kvm 为了在主机中使用perf kvm,您必须访问/ proc / modules和/ proc / kallsyms文件."复制/ proc文件从guest虚拟机 ...
- HDU 2177 取(2堆)石子游戏 (威佐夫博弈)
题目思路:威佐夫博弈: 当当前局面[a,b]为奇异局时直接输出0 否则: 1.若a==b,输出(0 0): 2.将a,b不停减一,看能否得到奇异局,若有则输出: 3.由于 ak=q*k(q为黄金分割数 ...
- redis34--string 操作
String类型操作 1.set key value 设置key对应的值为string类型的value 2.mset key1 value1 - keyN valueN 一次设置多个key的值 3. ...
- Linux中变量#,#,@,0,0,1,2,2,*,$$,$?的含义
$# 是传给脚本的参数个数 $0 是脚本本身的名字 $1 是传递给该shell脚本的第一个参数 $2 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示 ...
- 雄冠条码PV系统-2016-05-17-收获
Q1:微信浏览器 input获取焦点时,页面宽度变大 解决方法: HTML <header> 中添加<meta name="viewport" content=& ...
- HDU 1532 Drainage Ditches
网络最大流模版题,用了(Ford-Fulkerson算法) 代码不贴了,模版见我博客 http://www.cnblogs.com/zufezzt/p/4585752.html
- github上一些觉得对自己工作有用的项目收集
usefullProjectCollect github上一些觉得对自己工作有用的项目收集 技能类 markdown语法中文说明 全文检索 elasticsearch bigdesk elastics ...
- Ubuntu安装Mysql过程及远程问题解决
ubuntu下执行 sudo apt-get instlll mysql-server sudo apt-get install mysql-client 安装过程中会有文字界面设置密码 牢记密码 M ...
- ARC 下面可能导致的内存问题
一.ARC相对MRC来说,减轻了程序员的大部分内存管理工作,使用ARC的时候也需要十分清除内存管理的原理,不然可能带来一些很难调试的问题.下面是ARC下面需要注意的一些问题 1)对象互相引用,形成引用 ...