Jedis與redis版本兼容問題

報錯:html

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

解決:因爲redis集羣的採用的版本是4.1的,在maven的pom.xml中將jedis的版本改爲2.9的就能夠了,java

若是報錯依舊,此處有一個大坑。redis

在buildpath中顯示版本jredis2.9,實際上調用仍爲舊版本。apache

具體可經過在cmd pom.xml文件路徑下執行 mvn dependency:tree 能夠查看包依賴結構。maven

可以發現實際調用jedis版本仍爲舊版本,且此包依賴於commons-pool2包,pool2包版本較低。ui

在maven調用中,有四個原則:spa

1.第一聲明優先原則:即在配置文件中先寫的生效..net

2.路徑就近原則:即直接依賴優先傳遞依賴.code

3.排除原則:傳遞依賴出現問題時,能夠以下所寫,排除依賴orm

<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>
相關文章
相關標籤/搜索