`
bsr1983
  • 浏览: 1097095 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jedis 中出现ArrayIndexOutOfBoundsException异常的解决方法

 
阅读更多
在使用jedis连接redis并调用publish方法发布消息时,出现了ArrayIndexOutOfBoundsException异常,当时使用的是jedis2.1.0版本,查看源代码发现是write方法中通过递增count,向缓存字节数组中写入数据时出现的ArrayIndexOutOfBoundsException,而且该异常是偶发的,并不是必现的,因此原因也不好追查。
之前在别的模块也遇到过jedis连接redis时出现的各种问题,例如还有下面的异常:
org.jivesoftware.openfire.RedisConnection - Subscribing failed with exception:
redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketException: Broken pipe
        at redis.clients.jedis.Connection.flush(Connection.java:66)
        at redis.clients.jedis.JedisPubSub.proceed(JedisPubSub.java:82)
        at redis.clients.jedis.Jedis.subscribe(Jedis.java:1971)
        at org.jivesoftware.openfire.RedisConnection$1.run(RedisConnection.java:116)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
        at redis.clients.util.RedisOutputStream.flushBuffer(RedisOutputStream.java:29)
        at redis.clients.util.RedisOutputStream.flush(RedisOutputStream.java:227)
        at redis.clients.jedis.Connection.flush(Connection.java:64)
        ... 4 more
后来解决的方式就是替换了一个新版本的jedis的jar包——jedis2.5.1,需要提醒的是,这个版本中使用的commons-pool2的是commons-pool2-2.2.jar,需要Java 6.0+。
如果项目中同时用到了commons DBCP,那么需要注意,如果你使用的是commons-dbcp-1.4,那还需要保留原有的commons-pool1.x(Java 6.0+),否则需要将commons-dbcp升级到2.x版本,而且commons-dbcp2-2.0.1需要Java 7.0+。
处理替换jar,在释放redis连接方面也做了部分改动,会重试几次连接和释放。
0
0
分享到:
评论

相关推荐

    Jedis出现connection timeout问题解决方法(JedisPool连接池使用实例)

    主要介绍了Jedis出现connection timeout问题解决方法,使用Jedis的JedisPool连接池解决了这个问题,需要的朋友可以参考下

    Java Jedis NOAUTH Authentication required问题解决方法

    主要介绍了Java Jedis NOAUTH Authentication required问题解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Jedis API中文使用文档.-比较详细

    Java中使用Jedis操作Redis 文档比较详细, 具体的方法都进行了介绍了, 适合新手, 和老程序员进行复习, jedis api比较乱, 特此整理.

    使用redisson替代jedis

    使用redisson替代jedis中的的对应方法,以及对应的redis的命令在这三方中对应查询及操作,

    Jedis中的Redis命令API

    Jedis中的jedis类中的redis常用命令

    jedis-2.9.0-API文档-中文版.zip

    赠送jar包:jedis-2.9.0.jar; 赠送原API文档:jedis-2.9.0-javadoc.jar; 赠送源代码:jedis-2.9.0-sources.jar; 包含翻译后的API文档:jedis-2.9.0-javadoc-API文档-中文(简体)版.zip 对应Maven信息:groupId...

    jedis中的redis命令

    本文阐述了jedis与redis相对应的各类方法,方便开发者根据需求调用

    jedis-2.8.0-API文档-中文版.zip

    赠送jar包:jedis-2.8.0.jar; 赠送原API文档:jedis-2.8.0-javadoc.jar; 赠送源代码:jedis-2.8.0-sources.jar; 赠送Maven依赖信息文件:jedis-2.8.0.pom; 包含翻译后的API文档:jedis-2.8.0-javadoc-API文档-...

    linux中安装redis和jedis及jedispool

    linux中安装redis和jedis及jedispool; redis安装所遇到的问题;

    jedis jedis.jar

    jedis jar包; 版本:2.0 2.1

    jedis-2.6.2.zip

    jedis 3.0新版本废弃了旧回收资源方法; 废弃方法为:JedisPool.returnResource(Jedis);回收资源 Jedis 3.0版本新回收资源: Jedis.close();此版本的close并不是 直接关闭jedis的连接。 注意点二:JedisPoolConfig 连接...

    jedis-2.9.0.jar

    jedis-2.9.0.jar jedis-2.9.0 jar 包,不包含源码,源码下载地址: http://download.csdn.net/download/tan3739/9993938 测试代码: 导入依赖包: commons-lang-2.5.jar commons-pool2-2.4.2.jar jedis-2.9.0 jar ...

    jedis-2.5.1.jar

    实例方法: ? 1 import redis.clients.jedis.* ? 1 2 3 Jedis jedis = new Jedis("localhost"); jedis.set("foo", "bar"); String value = jedis.get("foo"); 支持的特效: Sorting Connection handling Commands ...

    jedis依赖jar包

    jedis依赖jar包, jedis-2.7.0.jar

    jedis-3.6.0-API文档-中文版.zip

    赠送jar包:jedis-3.6.0.jar; 赠送原API文档:jedis-3.6.0-javadoc.jar; 赠送源代码:jedis-3.6.0-sources.jar; 赠送Maven依赖信息文件:jedis-3.6.0.pom; 包含翻译后的API文档:jedis-3.6.0-javadoc-API文档-...

    jedis-2.9.0-API文档-中英对照版.zip

    赠送jar包:jedis-2.9.0.jar 赠送原API文档:jedis-2.9.0-javadoc.jar 赠送源代码:jedis-2.9.0-...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。

    jedis相关jar包

    jedis相关jar包:commons-pool2-2.3.jar、jedis-2.7.0.jar

    jedis-jedis-2.7.2

    jedis-jedis-2.7.2缓存技术应用

    jedis 2.8.1

    jedis jedis

    jedis源码 (学习jedis)

    jedis源码 (学习jedis必备,附带测试用例)

Global site tag (gtag.js) - Google Analytics