收到错误redis.clients.jedis.exceptions.JedisMovedDataException:已移动

时间:2018-07-05 19:00:49

标签: redis spring-data-redis

我对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;
}

1 个答案:

答案 0 :(得分:1)

您正在使用Redis群集,但您的配置用于独立的Jedis连接工厂。您应该提供RedisClusterConfiguration来创建JedisConnectionFactory。

以下帖子将有所帮助:

http://stackoverflow.com.mevn.net/questions/46667584/springboot-elasticache-jedismoveddataexception-moved

How to config redis-cluster when use spring-data-redis 1.7.0.M1