【发布时间】:2015-03-16 22:11:42
【问题描述】:
我有 2 个 Redis Server redis1 和 redis2 实例。 我正在尝试使用 Spring Data Redis 支持从 redis1 获取数据并将数据保存到 redis2,但它不起作用。我的代码:
//class a
@Configuration
public class RedisAConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName("host1");
return jedisConnectionFactory;
}
@Bean
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
return redisTemplate;
}
}
//class b
@Configuration
public class RedisBConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
jedisConnectionFactory.setHostName("host2");
return jedisConnectionFactory;
}
@Bean
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
redisTemplate.setConnectionFactory(jedisConnectionFactory());
return redisTemplate;
}
}
//use class
@EnableConfigurationProperties({RedisAConfig.class, RedisBConfig.class})
public class Receiver {
@Autowired
private RedisAConfig redisAConfig;
@Autowired
private RedisAConfig redisBConfig;
private String getUsernameFromRedis(String userIp) {
return redisBConfig.redisTemplate().opsForValue()..get(userIp);
}
private void saveThreatsToRedis(String userIp, List<Log> threats) {
JSONSerializer serializer = new JSONSerializer();
String json = serializer.serialize(threats);
String key = "TH:" + userIp;
redisAConfig.redisTemplate().opsForValue().set(key, json);
}
}
当我使用 getUsernameFromRedis() 方法时,使用的 redis 主机是“host1”而不是“host2”:-( 问题出在哪里?
【问题讨论】:
标签: spring redis spring-data