2022-11-22 关于redisson的sentinel模式启动不了的问题

环境:window的java服务,虚拟机centos7的redis集群,在window上启动服务连接redis集群

redisson版本为3.7.1 redis7.0

一、配置没问题,包括主从和sentinel

问题:无法连接到redis(can not connect to rediss://ip:2369.....关键行会标志在Redisson.create(config)方法,大概这样子,是否跟我一样的问题自己判断吧)

(1)window再装了个redis,然后 在window系统的redis文件执行cmd “redis-cli.exe -h redis集群其中一个的ip -p 26379 info” 发现跟linux执行一样,正常

(2)java写一个执行cmd命令的,直接上代码,dddd

public class Test {

    public static void main(String [] args){

      String a =redis文件目录\\redis-cli.exe -h linux的redis的ip -p 26379 info";

Test test =new Test();

test.execCmdOrder(a);

}

    public String execCmdOrder(String cmdCommand) {

        if (StringUtils.isEmpty(cmdCommand)){

            throw new RuntimeException("需要执行的命令不可以为空");

}

        /*if (***其他判断条件***){

            throw new RuntimeException("不满足判断条件的原因");

}*/

        //组装cmd 命令

        String cmd= cmdCommand ;

BufferedReader br=null;

Process process=null;

//执行命令结果

        StringBuilder result =null;

try {

            //执行cmd命令

            process=Runtime.getRuntime().exec(cmd);

//获取cmd命令的输出结果

            br=new BufferedReader(new InputStreamReader(process.getInputStream()));

result=new StringBuilder();

String tmp;

//组装命令执行结束后返回值

            while ((tmp=br.readLine())!=null){

                result.append(tmp).append("\n");

}

            process.waitFor();

} catch (IOException |InterruptedException e) {

            e.printStackTrace();

}finally {

            if (br!=null){

                try {

                    br.close();

} catch (IOException e) {

                    e.printStackTrace();

}

            }

            if (process !=null) {

                process.destroy();

}

            System.out.println("执行命令结束以后控制台返回结果为 :" +result);

}

        return result.toString();

}

}

上面大部分代码是百度的,自己改命令就行了。

于是结果就是跟(1)的结果一样是正常,于是看代码,点进去关键方法,


1.jpg

在这里debug看到了是因为ssl的问题。。我透

于是

2.jpg

把这的rediss改为redis就好了

于是继续。。。。。

下一个问题出现了

它会提示commond slaves不合法什么的,确实没有slaves了啊我redis都7.0了,急了,上git看看版本,发现3.7.1有个文件是4年前的,不太懂这个能不能证明它的年龄,但是马上改成最新的3.8.0了。

启动!失败!还是一样的错误,再细看错误日志

关键字句在 Set checkSentinelsList = false to avoid this check这个上面,于是


3.jpg

就行了,解决!

测试,通过,暂无发现什么问题

要问解决的原理,真不懂,百度也没找到几个是详细说redisson的,不知道是不是我找的姿势不对

用redisson其实也是为了它实现的锁

我只是以粗暴的方式解决了这个,希望能给大家带来有用的地方

你可能感兴趣的:(2022-11-22 关于redisson的sentinel模式启动不了的问题)