Я пытался реализовать Redis с Spring Boot, я случайно столкнулся с нижеприведенным исключением на моем локальном хосте:
redis.clients.jedis.exceptions.JedisConnectionException: не удалось получить ресурс из пула;
Я уже пробовал различные комбинации свойств файла JedisPoolConfig. Но никто из них не помогает, не уверен, где я ошибаюсь.
@Configuration
public class RedisConfigurationSetup {
@Bean
public RedisConnectionFactory jedisConnectionFactory() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(10000);
poolConfig.setMinIdle(1000);
poolConfig.setMaxIdle(-1);
poolConfig.setMaxWaitMillis(500);
poolConfig.setTestOnBorrow(true);
poolConfig.setTestOnReturn(true);
JedisConnectionFactory ob = new JedisConnectionFactory(poolConfig);
ob.setHostName("127.0.0.1");
ob.setPort(6379);
ob.setUsePool(true);
return ob;
}
@SuppressWarnings({ "rawtypes" })
@Bean(name = "redisTemplate")
public RedisTemplate stringRedisTemplate() {
RedisTemplate rt = new RedisTemplate();
rt.setConnectionFactory(jedisConnectionFactory());
rt.setEnableTransactionSupport(true);
return rt;
}
}
public class GeoLocationCacheServiceImpl implements GeoLocationCacheService {
@Autowired
@Qualifier("redisTemplate")
RedisTemplate geoObjectRedisTemplate;
@Override
public void saveUpdateGeoLoc(GeoObject geoObject) {
if (geoObject != null) {
// Some Business logics
geoObjectRedisTemplate.opsForValue().set(geoObject.getObjectID(), geoObject);
// Some Business logics
}
}
}