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其实也是为了它实现的锁

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,016评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • 2019年12月2日 登录接口 账户为admin 密码 Admin123-3123123 2次base64加密...
    pig_e41b阅读 502评论 0 0
  • Android 系统启动流程 本文基于android8.0系统源码来分析 系统启动大致流程图分析,一图以蔽之: 其...
    我的橘子分你一瓣阅读 1,318评论 0 2
  • JVM 说一下 jvm 的主要组成部分?及其作用? JVM包括类加载子系统、堆、方法区、栈、本地方法栈、程序计数器...
    文刀雨木同阅读 459评论 0 1