我对redis进行了集群,并尝试使用redisTemplate在其中插入数据。当到达要放入数据的行时,我在下面收到错误消息。 “ redis.clients.jedis.exceptions.JedisMovedDataException:已移动” org.springframework.data.redis.ClusterRedirectException:重定向:将插槽7319重定向到IP地址:6379。嵌套的异常是redis.clients.jedis.exceptions.JedisMovedDataException:MOVED 7319 IP地址:6379
有什么主意吗? redisConnectionFactory bean中的hostName是集群的Configuration端点。
return items -> {
HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();
items.forEach(item -> {
hashOps.put((item.getProgramName()), item.getProgramName(), item.toJson().toString());
});
};
@Bean
public JedisConnectionFactory redisConnectionFactory() {
JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory();
redisConnectionFactory.setHostName(hostName);
redisConnectionFactory.setPort(port);
return redisConnectionFactory;
}
@Bean(name = "redisTemplate")
public RedisTemplate<String, String> redisTemplate() {
RedisTemplate<String, String> redisTemplate = new RedisTemplate<String, String>();
redisTemplate.setConnectionFactory(redisConnectionFactory());
redisTemplate.setDefaultSerializer(new StringRedisSerializer());
return redisTemplate;
}
答案 0 :(得分:1)
您正在使用Redis群集,但您的配置用于独立的Jedis连接工厂。您应该提供RedisClusterConfiguration来创建JedisConnectionFactory。
以下帖子将有所帮助:
How to config redis-cluster when use spring-data-redis 1.7.0.M1