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