두 개의 스레드에서 답변을 보았지만 나에게 도움이되지 못했고 때때로 문제가 발생했기 때문에이 질문을 던지십시오.Jedis, jedis 연결을 얻을 수 없습니다. 풀에서 리소스를 가져올 수 없습니다.
jedis 버전 2.8.0, 스프링 데이터 redis 버전 1.7.5를 사용하고 있습니다. 캐싱 응용 프로그램 용 서버 버전 2.8.4가 있습니다.
내가 redis에 저장되고 요청을받는 다중 캐시는 redis에서 수행됩니다. 데이터를 저장하고 가져 오기 위해 스프링 데이터 redis API를 사용하고 있습니다.
모든 저장하고 작품을 잘 수 있지만, 가끔 예외 아래 점점 :
Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool | org.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolorg.springframework.data.redis.RedisConnectionFailureException: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:198)
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.getConnection(JedisConnectionFactory.java:345)
org.springframework.data.redis.core.RedisConnectionUtils.doGetConnection(RedisConnectionUtils.java:129)
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:92)
org.springframework.data.redis.core.RedisConnectionUtils.getConnection(RedisConnectionUtils.java:79)
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:191)
org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:166)
org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:88)
org.springframework.data.redis.core.DefaultHashOperations.get(DefaultHashOperations.java:49)
내 레디 스 구성 클래스 :
@Configuration
public class RedisConfiguration {
@Value("${redisCentralCachingURL}")
private String redisHost;
@Value("${redisCentralCachingPort}")
private int redisPort;
@Bean
public StringRedisSerializer stringRedisSerializer() {
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
return stringRedisSerializer;
}
@Bean
JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory factory = new JedisConnectionFactory();
factory.setHostName(redisHost);
factory.setPort(redisPort);
factory.setUsePool(true);
return factory;
}
@Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
redisTemplate.setExposeConnection(true);
// No serializer required all serialization done during impl
redisTemplate.setKeySerializer(stringRedisSerializer());
//`redisTemplate.setHashKeySerializer(stringRedisSerializer());
redisTemplate.setHashValueSerializer(new GenericSnappyRedisSerializer());
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
@Bean
public RedisCacheManager cacheManager() {
RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate());
redisCacheManager.setTransactionAware(true);
redisCacheManager.setLoadRemoteCachesOnStartup(true);
redisCacheManager.setUsePrefix(true);
return redisCacheManager;
}
}
사람, 왜이 수도이 문제에 직면하거나 아무 생각이나요 이 일이 일어날까요?
전체 스택 추적을 게시하십시오. – mp911de
@ mp911de : 데이터가 있으면 제공합니다. 서버를 다시 시작 했으므로 로그가 없으므로이 문제가 가끔 발생하기 때문에 기다려야 할 수도 있습니다. –
전체 스택 추적이 아닙니다. 연결 실패의 이유는 대개 마지막에있다 (JedisConnectionException의 원인). – mp911de