You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Spring Boot至3.0.1后出现JedisCommands.del(String)方法缺失错误

问题原因

这是因为Jedis 4.x 与 quartz-redis-jobstore 1.2.0 存在方法签名不兼容:

  • Jedis 3.x 中JedisCommands.del(String)方法签名为Long del(String key)
  • 升级到 Jedis 4.x 后,该方法被重构为Long del(String... keys)(参数从单个String变为可变参数)
  • 而 quartz-redis-jobstore 1.2.0 的代码仍在调用旧的单参数del方法,导致运行时抛出NoSuchMethodError
解决方案

方案1:降级Jedis到兼容版本

将Jedis版本降级到3.x系列(比如3.9.0),确保与quartz-redis-jobstore 1.2.0兼容:

Maven配置

在pom.xml中指定Jedis版本:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>3.9.0</version>
</dependency>

Gradle配置

在build.gradle中指定:

implementation 'redis.clients:jedis:3.9.0'

方案2:替换为支持Jedis 4.x的Quartz Redis JobStore实现

由于net.joelinn:quartz-redis-jobstore最后更新于2019年,已停止维护,建议更换为社区维护的兼容Jedis 4.x的实现,比如使用com.github.xetorthio:jedis-quartz(需确认最新版本),或者基于Spring Boot 3.x的Quartz自动配置自定义Redis存储的JobStore。

方案3:手动修改quartz-redis-jobstore代码

如果必须使用原库,可以克隆其源码,修改AbstractRedisStorage.unlock方法中的del调用:
将

jedis.del(this.redisSchema.lockKey());

改为

jedis.del(new String[]{this.redisSchema.lockKey()});

然后重新打包引入项目。

额外检查
  • 执行依赖树命令排查是否存在多版本Jedis冲突:
    • Maven:mvn dependency:tree | grep jedis
    • Gradle:./gradlew dependencies | grep jedis
      排除所有非目标版本的Jedis依赖。

内容的提问来源于stack exchange,提问作者Thiện Thuật

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 17:50:42