이 오류는 Spring Data Redis와 Redisson 간의 버전 불일치로 발생한다.
"java.lang.ClassNotFoundException: org.springframework.data.redis.connection.RedisZSetCommands$Tuple
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
org.redisson.spring.data.connection.RedissonConnection.<clinit>(RedissonConnection.java:2443)
org.redisson.spring.data.connection.RedissonConnectionFactory.getConnection(RedissonConnectionFactory.java:113)
org.springframework.data.redis.cache.DefaultRedisCacheWriter.execute(DefaultRedisCacheWriter.java:355)
org.springframework.data.redis.cache.DefaultRedisCacheWriter.get(DefaultRedisCacheWriter.java:142)
오류 메시지는 org.springframework.data.redis.connection.RedisZSetCommands$Tuple 클래스를 찾을 수 없음을 나타내는데, 이는 종종 Spring Data Redis와 Redisson의 호환되지 않는 버전 때문이다.
Reddison과 Spring Data Redis의 버전이 호환되도록 맞춰준다.
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
implementation 'org.redisson:redisson-spring-data-:3.18.0'
제멋대로 되어 있는 redis와 redisson 버전을 아래와 같이 바꿔준다.
implementation ("org.redisson:redisson-spring-boot-starter:3.34.1") {
exclude group: 'org.redisson', module: 'redisson-spring-data-33'
}
implementation "org.redisson:redisson-spring-data-27:3.34.1"
redisson-spring-data-33
모듈을 제외하여 충돌을 방지한다.redisson-spring-data-27
모듈을 포함하여 Spring Data Redis 2.7.x와 호환되도록 한다.이는 Redisson 깃허브에 명시된 해결 방법이다.
참조
https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter