项目场景:

提示:这里简述项目相关背景:

例如:项目是java 代码,测试环境启动连接的Redis集群连接失败;(该redis 集群一直废弃未使用)


问题描述

提示:一共三个问题,根据解决顺序排序:

问题一:连接redis 集群提示 Password decode error!
在这里插入图片描述

问题二:主从无法同步数据
在这里插入图片描述

问题三:IDEA启动java 代码连接 no reachable node in cluster


原因分析:

提示:思路 密码解密失败—> redis集群连接失败

1、分析密码错误原因:解密工具类中的秘钥错误,追源码查看加密时用的密码为"XXXX";

2、主从数据无法复制:排查redis各个节点日志文件,日志一直在刷“ERR Can’t SYNC while not connected with my master(无发连接主节点时,无法同步数据)”

3、IDEA启动java 代码连接 no reachable node in cluster,无法连接到节点,应该是集群创建存在问题;


解决方案:

问题一 修改redis解密工具类中的秘钥
问题二、三解决 项目启动 连接redis集群失败

问题一 追踪密码加密位置源码,获取秘钥,修改redis解密工具类中的秘钥

问题二 尝试解决方式:
(1)修改 redisxxx.config 中的 bind IP,测试IP:0.0.0.0 172.0.0.1 (均无效)
(2)关闭服务器防火墙;
(3)在redis.conf文件中设置redis密码 (6个节点全部执行,并全部重启)

masterauth passwd123
requirepass passwd123

(4)删除 ./redis/data 中文件,重启redis 服务后,各个redis 节点服务正常;运行日志中无主从同步,启动代码,出现第三个问题;

问题三 no reachable node in cluster,需要创建redis 集群解决;

以下是创建集群遇见的问题:
1、检查redis 各个节点启动正常,但是日志文件中 为 “0 client ,0 sval”
2、使用 redis-trib.rb 重新创建集群;

redis-trib.rb  create  --replicas  1  xxx.xxx.xxx.xxx:27100   xxx.xxx.xxx.xxx:27101   xxx.xxx.xxx.xxx:27102  xxx.xxx.xxx.xxx:27103  xxx.xxx.xxx.xxx:27104  xxx.xxx.xxx.xxx:27105 

3、执行报错提示 “/usr/bin/env: ruby: No such file or directory” 没有ruby环境。
原因:执行redis-trib.rb,此脚本是ruby脚本,它依赖ruby环境。

4、安转ruby 环境
参考:https://www.runoob.com/ruby/ruby-installation-unix.html

5、安装 redis-3.3.0.gem
解决Redis创建集群报错`require’: cannot load such file – redis LoadError
参考:
https://blog.csdn.net/leenhem/article/details/121923346
https://www.csdn.net/tags/Ntzacg5sNzMxOTMtYmxvZwO0O0OO0O0O.html

查看redis 服务是否正常
查看redis log日志 1个slaves(redis从机)
重启代码 缓存连接成功;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐