springboot集成redis報錯-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig
看提示信息是GenericObjectPoolConfig類無法找到。
查看github:
https://github.com/spring-projects/spring-boot/issues/12843
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0-Migration-Guide#redis
特別介紹下在2.x版本中,默認是使用lettuce;1.x版本的時候,默認使用的就是Jedis;關於兩個的區別:
Jedis和Lettuce都是Redis Client
Jedis 是直連模式,在多個線程間共享一個 Jedis 實例時是線程不安全的。
如果想要在多線程環境下使用 Jedis,需要使用連接池。
每個線程都去拿Jedis 實例,當連接數量增多時,物理連接成本就較高了。
Lettuce 是基於 netty 的,netty 是一個多線程、事件驅動的 I/O 框架,連接實例可以在多個線程間共享,通過異步的方式可以讓我們更好的利用系統資源,而不用浪費線程等待網絡或磁盤I/O。
可以在pom文件加上依賴:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.2</version> </dependency>
或者:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.6.2</version> </dependency>