Spring Data Redis и проблема совместимости Jedis

Я пытаюсь создать фабрику JedisConnection из RedisClusterConfiguration (псевдокод, приведенный ниже), но сталкиваюсь с ошибкой времени компиляции.

Тип redis.clients.jedis.JedisShardInfo не может быть разрешен. На него косвенно ссылаются необходимые файлы .class.

Фрагмент кода:

RedisClusterConfiguration clusterConfiguration = new RedisClusterConfiguration(clusterList);
return new JedisConnectionFactory(clusterConfiguration);

Используемая версия Spring Data Redis: 2.0.6.RELEASE


person rahul    schedule 30.04.2018    source источник
comment
Эта ошибка устраняется при импорте клиента Jedis (версия 2.9.0). Но ломается в другой момент во время выполнения. Мне любопытно узнать, действительно ли необходим клиент jedis, когда у меня есть зависимость redis от весенних данных.   -  person rahul    schedule 01.05.2018
comment
У меня аналогичная проблема. У вас есть решение вопроса, который вы разместили?   -  person RajeeV VenkaT    schedule 22.01.2021


Ответы (2)


Как вы можете видеть здесь: https://github.com/spring-projects/spring-data-redis/blob/master/pom.xml#L75

Клиент Jedis устанавливается как необязательная зависимость.

В вашем собственном проекте вам нужно импортировать клиент Jedis. Если вы используете Maven:

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
    <type>jar</type>
</dependency>

Клиент Jedis необходим, потому что Spring Data Redis — это зонтичный проект, поддерживающий несколько драйверов (Jedis, Lettuce...). Импорт всех драйверов был бы громоздким. Вам решать, какой драйвер использовать.

person Magd Kudama    schedule 01.05.2018
comment
Ах, я пропустил необязательный параметр. Спасибо, что указали! - person rahul; 01.05.2018

Вы можете проверить в pom spring-data-redis, какую версию jedis он использует, и начать использовать ее. Это гарантирует отсутствие конфликтов.

person ftraian    schedule 10.06.2020