Привет, я пытаюсь создать повторный кластер для RedisCacheManager, но свойства кластера не работают. Информация об ошибке, как это: Причина: org.springframework.data.redis.RedisConnectionFailureException: не удалось получить ресурс из пула; вложенным исключением является redis.clients.jedis.exceptions.JedisConnectionException: не удалось получить ресурс из пула
Пример: RedisClusterConfig.класс
@Configuration
public class RedisClusterConfig {
@Bean
RedisClusterConfiguration redisClusterConfiguration(){
List<String> nodes = new ArrayList<>();
nodes.add("192.168.145.141:7001");nodes.add("192.168.145.141:7002");nodes.add("192.168.145.141:7003");
nodes.add("192.168.145.141:7004");nodes.add("192.168.145.141:7005");nodes.add("192.168.145.141:7006");
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration(nodes);
return redisClusterConfiguration;
}
@Bean("redisConnectionFactory")
JedisConnectionFactory redisConnectionFactory(){
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory(redisClusterConfiguration());
return jedisConnectionFactory;
}
@Bean("redisCacheManager")
public RedisCacheManager redisCacheManager() {
return RedisCacheManager.create(redisConnectionFactory());
}
}
Демо-приложение.класс
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
RedisConnectionFactory redisConnectionFactory = (RedisConnectionFactory)ctx.getBean("redisConnectionFactory");
RedisCacheManager redisCacheManager = (RedisCacheManager)ctx.getBean("redisCacheManager");
Cache cache = redisCacheManager.getCache("abc");
if (cache != null){
cache.put("13",13);
String a = cache.get("13").toString();
System.out.println("a is " + a);
}else {
System.out.println("can not find cache");
}
};
}
}
Я отлаживаю код, нахожу вот так:
Информация об отладке: введите описание изображения здесь
Я не знаю, почему узлы кластера неравны узлам кеша. Пом файл такой:





<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> <version>2.1.3.RELEASE</version>< /dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><версия>2.9.0</version></dependency>