问题描述
我有一个小型的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