Ниже приведен фрагмент кода, который отлично работает для подключения к экземпляру Redis и выполнения операций CRUD. (Один экземпляр)
@Bean
public JedisConnectionFactory connectionFactory() {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration(redisUri, redisPort);
config.setPassword(redisPassword);
JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration
.builder();
jedisClientConfiguration.connectTimeout(Duration.ofMillis(120000));
jedisClientConfiguration.usePooling();
return new JedisConnectionFactory(config, jedisClientConfiguration.build());
}
@Bean
public RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory jedisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory);
return redisTemplate;
}
Но при попытке установить sh RedisClusterConfiguration и создать RedisTemplate со следующими ошибками ... (несколько экземпляров)
/*
* spring.redis.cluster.nodes[0] = 127.0.0.1:7379 spring.redis.cluster.nodes[1]
* = 127.0.0.1:7380 ...
*/
@Bean
public JedisConnectionFactory connectionFactory() {
RedisClusterConfiguration clusterConfig = new RedisClusterConfiguration(clusterProperties.getNodes());
clusterConfig.setPassword(redisPassword);
JedisClientConfiguration.JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration
.builder();
jedisClientConfiguration.connectTimeout(Duration.ofMillis(120000));
jedisClientConfiguration.usePooling();
return new JedisConnectionFactory(clusterConfig, jedisClientConfiguration.build());
}
@Bean
public RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory jedisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory);
return redisTemplate;
}
org.springframework.beans .factory.UnsatisfiedDependencyException: Ошибка создания компонента с именем 'redisCacheApplication': Неудовлетворенная зависимость, выраженная через поле 'redisService'; Вложенное исключение - org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании bean-компонента с именем 'redisService': Неудовлетворенная зависимость, выраженная через поле 'repo'; вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создания компонента с именем scheduleOperationRepository: невозможно разрешить ссылку на компонент redisKeyValueTemplate при установке свойства компонента keyValueOperations; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'redisKeyValueTemplate': невозможно разрешить ссылку на бин 'redisKeyValueAdapter' при установке аргумента конструктора; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'redisKeyValueAdapter': невозможно разрешить ссылку на бин 'redisTemplate' при установке аргумента конструктора; вложенным исключением является org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем 'redisTemplate', определенным в ресурсе пути к классу [demo / config / RedisConfig.class]: неудовлетворенная зависимость, выражаемая параметром 0 метода redisTemplate; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания компонента с именем 'connectionFactory', определенным в ресурсе пути к классу [demo / config / RedisConfig.class]: сбой вызова метода init; вложенное исключение - redis.clients.jedis.exceptions.JedisDataException: команда ERR недопустима в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject ~ 123ean.OnjectEgn.OnE. [spring-beans-5.2.2.RELEASE.jar: 5.2.2.RELEASE] в org.springframework.beans.factory.annotation.InjectionMetadata.inject (InjectionMetadata. java: 116) ~ [spring-beans-5.2. 2.RELEASE.jar: 5.2.2.RELEASE]
Может ли кто-нибудь направить меня в правильном направлении ... Спасибо