2 yangzhi java yangzhi_java 于 2016.03.25 12:26 提问

关于redis集群 no reachable node in cluster的错误

代码如下
private static JedisCluster jedisCluster = null;
static{
Set nodes = new HashSet<>();
nodes.add(new HostAndPort("114.112.69.204", 7001));
nodes.add(new HostAndPort("114.112.69.204", 7002));
nodes.add(new HostAndPort("114.112.69.204", 7003));
nodes.add(new HostAndPort("114.112.69.204", 7004));
nodes.add(new HostAndPort("114.112.69.204", 7005));
nodes.add(new HostAndPort("114.112.69.204", 7006));
// 1、创建一个JedisCluster对象,构造方法,需要指定一个Set对象,set中包含HostAndPort对象。每个HostAndPort就是一个节点的地址。
jedisCluster = new JedisCluster(nodes);
/*JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(1000);
config.setMaxIdle(300);
config.setMaxWait(10000);
config.setTestOnBorrow(false);
jedisPool =new JedisPool(config, "114.112.69.204", 6379);*/
}
@RequestMapping("/index.html")
@ResponseBody
//加入redis缓存
public Map index(HttpServletRequest request, HttpServletResponse response) throws IOException {

    Map<String, Object> result = new HashMap<String, Object>();
    ObjectMapper objectMapper = new ObjectMapper();
    IndexResult indexResult = null;
    String indexJson = jedisCluster.hget("indexResult_KEY","indexResult666");
    if (StringUtils.isNotBlank(indexJson)) {
        try {//取出redis中的数据
            indexResult = objectMapper.readValue(indexJson, IndexResult.class);
        } catch (JsonParseException e) {

            e.printStackTrace();
        } catch (JsonMappingException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }finally{
            if (jedisCluster != null) {
                jedisCluster.close();
            }
        }
在正常请求时会报错!!!!主要错误如下
严重: Servlet.service() for servlet [goutrip_api] in context with path [] threw exception [Request processing failed; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: no reachable node in cluster] with root cause

redis.clients.jedis.exceptions.JedisConnectionException: no reachable node in cluster
at redis.clients.jedis.JedisSlotBasedConnectionHandler.getConnection(JedisSlotBasedConnectionHandler.java:54)
at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:113)
at redis.clients.jedis.JedisClusterCommand.runWithRetries(JedisClusterCommand.java:131)
at redis.clients.jedis.JedisClusterCommand.run(JedisClusterCommand.java:30)
at redis.clients.jedis.JedisCluster.hget(JedisCluster.java:361)
at com.goutrip.controller.index.IndexController.index(IndexController.java:95)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)

而使用命令行取出数据是没有问题的
![图片说明](http://img.ask.csdn.net/upload/201603/25/1458879946_317708.png)

要崩溃了啊!!!!快来救救我!!!!!!!!

5个回答

yangzhi_java
yangzhi_java   2016.03.25 17:44

问题已经解决了,就是包的冲突

liuyuantu
liuyuantu 回复weixin_39714339: 你的问题后来解决没有?
2 个月之前 回复
liuyuantu
liuyuantu 真钓胃口,说了还不如不说,这问题我现在卡住了,快要疯了
2 个月之前 回复
weixin_39714339
weixin_39714339 能不能说清楚什么包的冲突呢???
3 个月之前 回复
qq_33650012
qq_33650012 请问题主是哪个包冲突引起的,我也是相同的问题,本地测试没问题,在测试环境总是报这个错误,谢谢!
一年多之前 回复
donggang1992
donggang1992   2016.03.25 13:39

你是不是用虚拟机搭建的redis,吧虚拟机的防火请关了再试一下

donggang1992
donggang1992 回复yangzhi_java: 在你机子上telnet一下6379端口,看看通不
一年多之前 回复
yangzhi_java
yangzhi_java 不是虚拟机,是公司的服务器
一年多之前 回复
yangzhi_java
yangzhi_java 服务器的防火墙我也都关了啊,好崩溃
一年多之前 回复
yangzhi_java
yangzhi_java 我在demo里面没有问题,就是一到项目里面就这样了
一年多之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.03.25 13:44

是不是程序不能访问对应的服务器节点等。

yangzhi_java
yangzhi_java 能再说细点吗,我已经使出浑身解数了,好迷茫,哈哈
一年多之前 回复
CSDNXIAOS
CSDNXIAOS   2016.03.30 11:23

运行java项目时报错,提示集群挂了。
在服务器运行redis-trib.rb check 127.0.0.1:6380进行检查

发现有报错提示:不能加载相关文件

正常的应该是:

解决方案:
先save数据再删除从节点,然后进行重启从节点实例
再次检查ok......
答案就在这里:redis集群报错:clusterdown the cluster is down
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

yangzhi_java
yangzhi_java   2016.03.25 12:26

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!