Jedis与redis版本兼容问题


报错:

java.lang.NumberFormatException: For input string: "7001@17001"

解决:由于redis集群的采用的版本是4.1的,在maven的pom.xml中将jedis的版本改成2.9的就可以了,

如果报错依旧,此处有一个大坑。

在buildpath中显示版本jredis2.9,实际上调用仍为旧版本。

具体可通过在cmd pom.xml文件路径下执行 mvn dependency:tree 可以查看包依赖结构。

能够发现实际调用jedis版本仍为旧版本,且此包依赖于commons-pool2包,pool2包版本较低。

在maven调用中,有四个原则:

1.第一声明优先原则:即在配置文件中先写的生效.

2.路径就近原则:即直接依赖优先传递依赖.

3.排除原则:传递依赖出现问题时,可以如下所写,排除依赖

<exclusions>

<exclusion>

<groupId>xxx</groupId>

<artifactId>xxx</artifactId>

</exclusion>

</exclusions>

4.版本锁定原则:通过dependencyManagement标签

转载于:https://my.oschina.net/u/2462104/blog/1815870

根据第二个原则仍是调用了旧版本pool2所要求的jedis版本。

可直接声明与jredis匹配的新版本commons-pool2来解决这个问题。

 

具体搭配版本可在mvn官网包下的依赖查看

 

    <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.9.0</version>
    </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${commons-pool2.version}</version>
</dependency>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM