我在AWS上托管我的应用程序。我已将我的属性文件配置如下
spring.redis.host = {AWS主机端点} spring.redis.port = 6379
我的应用程序之间的连接有效。但是,spring会在连接到aws主机端点之前首先尝试连接到本地主机,因此会抛出错误。错误如下所示。
2017-05-30 10:37:58.203 [main] ERROR redis.clients.jedis.HostAndPort:
cant resolve localhost address
我如何解决这个问题,谢谢你
EDIT 下面显示了我的Redis配置类
@Configuration
@EnableCaching
public class RedisCacheConfig {
final Logger logger = LoggerFactory.getLogger(RedisCacheConfig.class);
JedisConnectionFactory connectionFactory;
@Autowired
public RedisCacheConfig(JedisConnectionFactory connectionFactory) {
this.connectionFactory = connectionFactory;
}
@Bean
@Autowired
public CacheManager getCacheManager(CacheExpiration expiration) {
RedisCacheManager manager = new RedisCacheManager(getRedisTemplate());
manager.setExpires(expiration.getMapper());
//expiration.getMapper();
return manager;
}
@Bean
public RedisTemplate getRedisTemplate() {
RedisTemplate template = new RedisTemplate();
template.setConnectionFactory(connectionFactory);
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
}
答案 0 :(得分:4)
这个错误似乎是6月15日在Jedis中fixed所以应该包含在下一个版本中。
与此同时,您始终可以构建最新的master并在项目中使用该JAR。请记住在项目中包含Jedis的依赖项。
从最新的Jedis master(目前版本为3.0.0-SNAPSHOT)构建JAR:
$ git clone https://github.com/xetorthio/jedis.git
$ cd jedis
$ mvn -Dmaven.test.skip=true package
$ mkdir -p /path/to/your/project/lib
$ cp target/jedis-3.0.0-SNAPSHOT.jar /path/to/your/project/lib/
包含依赖项的示例 build.gradle 代码段:
dependencies {
file project.file("lib/jedis-3.0.0-SNAPSHOT.jar")
compile "org.slf4j:slf4j-api:1.7.22"
compile "org.apache.commons:commons-pool2:2.4.2"
}
如果您想使用最新版本,只需在顶部添加补丁,您可以将其选择到2.9.0标记,如下所示:
$ git clone https://github.com/xetorthio/jedis.git
$ cd jedis
$ git checkout jedis-2.9.0
$ git cherry-pick 42a6523041e710087640ceaab11d3abcd34f3a72
这会导致您必须合并的冲突,但kdiff3会自动为我解决所有冲突,因此根据您使用的合并工具,您可能无需执行任何操作{{ 1}}然后按[回车]。
在解决了您刚刚构建的冲突后,您最终会得到一个名为 jedis-2.9.0-SNAPSHOT.jar 的JAR。