JedisPool连接拒绝的春季启动

问题描述

我有一个小型的Spring Boot应用程序,正在尝试使用Jedis客户端与Redis集成。

我将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);
    } 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-cli连接到Redis服务器,但不能从我的spring boot应用程序中连接。

关于如何解决此问题的任何想法?

解决方法

尝试使用http:// localhost:6379代替您当前的URI