通过StringRedisTemplate获取底层Jedis连接时出错::

时间:2025-03-22 09:32:28
:  cannot be cast to 
	at (:46) ~[classes/:na]
	at .invoke0(Native Method) ~[na:1.8.0_91]
	at (:62) ~[na:1.8.0_91]
	at (:43) ~[na:1.8.0_91]
	at (:498) ~[na:1.8.0_91]
	at (:190) ~[spring-web-5.1.:5.1.]
	at (:138) ~[spring-web-5.1.:5.1.]
	at (:104) ~[spring-webmvc-5.1.:5.1.]
	at (:892) ~[spring-webmvc-5.1.:5.1.]
	at (:797) ~[spring-webmvc-5.1.:5.1.]
	at (:87) ~[spring-webmvc-5.1.:5.1.]
	at (:1039) ~[spring-webmvc-5.1.:5.1.]
	at (:942) ~[spring-webmvc-5.1.:5.1.]
	at (:1005) ~[spring-webmvc-5.1.:5.1.]
	at (:897) ~[spring-webmvc-5.1.:5.1.]
	at (:634) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:882) ~[spring-webmvc-5.1.:5.1.]
	at (:741) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:231) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:53) ~[tomcat-embed-websocket-9.0.:9.0.22]
	at (:193) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:99) ~[spring-web-5.1.:5.1.]
	at (:118) ~[spring-web-5.1.:5.1.]
	at (:193) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:92) ~[spring-web-5.1.:5.1.]
	at (:118) ~[spring-web-5.1.:5.1.]
	at (:193) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:93) ~[spring-web-5.1.:5.1.]
	at (:118) ~[spring-web-5.1.:5.1.]
	at (:193) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:200) ~[spring-web-5.1.:5.1.]
	at (:118) ~[spring-web-5.1.:5.1.]
	at (:193) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:166) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:202) ~[tomcat-embed-core-9.0.:9.0.22]
	at (:96) [tomcat-embed-core-9.0.:9.0.22]
	at (:490) [tomcat-embed-core-9.0.:9.0.22]
	at (:139) [tomcat-embed-core-9.0.:9.0.22]
	at (:92) [tomcat-embed-core-9.0.:9.0.22]
	at (:74) [tomcat-embed-core-9.0.:9.0.22]
	at (:343) [tomcat-embed-core-9.0.:9.0.22]
	at .http11.(:408) [tomcat-embed-core-9.0.:9.0.22]
	at (:66) [tomcat-embed-core-9.0.:9.0.22]
	at $(:853) [tomcat-embed-core-9.0.:9.0.22]
	at $(:1587) [tomcat-embed-core-9.0.:9.0.22]
	at (:49) [tomcat-embed-core-9.0.:9.0.22]
	at (:1142) [na:1.8.0_91]
	at $(:617) [na:1.8.0_91]
	at $(:61) [tomcat-embed-core-9.0.:9.0.22]
	at (:745) [na:1.8.0_91]
  •  
  •  
  • // 获取底层Jedis连接
    Jedis jedis=(Jedis) ().getConnection().getNativeConnection();
    

    在错误信息中我们看到 cannot be cast to 我的理解是异步命令无法实现Jedis的底层连接,所以要想办法关掉Redis自带的异步客户端功能.中引入Redis依赖时需要排除异步客户端功能:
<dependency>
   <groupId></groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
     <exclusions>
         <!-- 不依赖Redis的异步客户端lettuce -->
         <exclusion>
             <groupId></groupId>
             <artifactId>lettuce-core</artifactId>
         </exclusion>
     </exclusions>
</dependency>