Отказано в подключении JedisPool к Spring Boot

#java #spring-boot #redis #spring-data-redis

#java #spring-boot #redis #spring-data-redis

Вопрос:

У меня есть небольшое приложение spring boot, которое я пытаюсь интегрировать с Redis с помощью клиента Jedis.

Я настроил пул Jedis так, чтобы он указывал на контейнер Redis docker, работающий локально.

     @Bean
public JedisPool jedisPool() {
    JedisPool jedisPool = null;
    try {
        URI redisUri = new URI("redis://localhost:6379");
        jedisPool = new JedisPool(poolConfig(), redisUri, 20000, null, null, null);
    } catch (URISyntaxException e) {
        logger.error("Failed to create the redis pool: ", e);
    }
    return jedisPool;
}
  

У меня есть RedisService , который использует JedisPool и выполняет транзакции с сервером Redis.

  @Autowired
JedisPool jedisPool;

@Override
public String retrieve(String key) {
    Jedis jedis = jedisPool.getResource();
    String json = jedis.get(key);
    jedis.close();
    return json;
}

@Override
public void store(String key, String value) {
    Jedis jedis = jedisPool.getResource();
    jedis.set(key, value);
    jedis.expire(key, keyExpire);
    jedis.close();
}
  

При запуске приложения я получаю это исключение

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused (Connection refused)

Я могу подключиться к серверу Redis через redis-cli , но не из моего приложения spring boot.

Есть идеи о том, как решить эту проблему?

Ответ №1:

Попробуйте использовать http://localhost:6379 вместо этого ваш текущий URI

Комментарии:

1. то же исключение