Java 连接redis单机报ip不存在问题总结
今天用java 连接redis 时遇到很多问题, 在此将问题记录下来
首先介绍下本地环境:
java 项目: springboot
redis 集群 :centos7
192.168.78.186:6379
192.168.78.188:6380
192.168.78.190:6381
1.java连接redis集群报如下错误
为了排查问题, 我改为先连接一台redis服务器,192.168.78.186 6379。安装网上说明检查以下内容:
1.bind 127.0.0.1改为 #bind 127.0.0.1 (注释掉)
2.protected-mode yes 改为 protected-mode no
3. daemonize yes 改为 no
确定这些都没问题后还是报上面的错。我考虑到可能是防火墙的问题,接下来检查防护墙的状态和关闭防火墙。不知道命令可以百度, 上面一堆堆全是, 也可以看下这个连接的文章:
https://www.cnblogs.com/jxldjsn/p/10794171.html
在关闭防护墙后, 重启redis, 我重试还是报上面的错。。
在百度的过程中,我学习到以下linux防火墙默认只开放几个端口, 比如22端口,可以修改防火墙开放的端口, 增加自己需要的应用端口,如何开放防火墙端口并且 检查主机和虚拟机可以相互通信,找了下面两篇文章:
https://blog.csdn.net/realjh/article/details/8204849
https://www.cnblogs.com/JimmyFanHome/p/9973516.html
期间,我还遇到cmd命令窗口,telnet 命令不能使用问题, 继续百度
https://blog.csdn.net/yjn1995/article/details/99302431
在主机能够ping 通192.168.78.168 6379 后, 我想这次应该可以了,再次试了下,依旧报上面的问题。
确认也不是防火墙的问题后, 我想可能是代码问题, 回去检查java代码,继续百度。。
jedis 如何连接 redis ,请看这篇文章: https://blog.csdn.net/u013278314/article/details/82656837
通过和我本地代码对比, 我发现在代码中, 端口号前多了http:// 协议,去掉http://,感觉这次可以了,
通过测试, 成功。
总结:
1.先检查代码,保证代码准确
2.检查redis.conf 中配置三项:
bind 127.0.0.1改为 #bind 127.0.0.1 (注释掉)
protected-mode yes 改为 protected-mode no
daemonize yes 改为 no
3.检查防火墙状态状态,测试时可以先关闭防火墙, 生产环境需要开指定的端口给应用服务器。