Jedis与redis版本兼容问题报错:
解决:由于redis集的采⽤的版本是4.1的,在maven的l中将jedis的版本改成2.9的就可以了,如果报错依旧,此处有⼀个⼤坑。
在buildpath中显⽰版本jredis2.9,实际上调⽤仍为旧版本。
具体可通过在l⽂件路径下执⾏ mvn dependency:tree 可以查看包依赖结构。
能够发现实际调⽤jedis版本仍为旧版本,且此包依赖于commons-pool2包,pool2包版本较低。
在maven调⽤中,有四个原则:
1.第⼀声明优先原则:即在配置⽂件中先写的⽣效.
linux安装redis报错
2.路径就近原则:即直接依赖优先传递依赖.
3.排除原则:传递依赖出现问题时,可以如下所写,排除依赖
<exclusions>
<exclusion>
<groupId>xxx</groupId>
<artifactId>xxx</artifactId>
</exclusion>
</exclusions>
4.版本锁定原则:通过dependencyManagement标签
根据第⼆个原则仍是调⽤了旧版本pool2所要求的jedis版本。
可直接声明与jredis匹配的新版本commons-pool2来解决这个问题。
具体搭配版本可在mvn官⽹包下的依赖查看
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.apachemons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${commons-pool2.version}</version>
</dependency>