springboot集成redis報錯-ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章