虚拟机搭建redis单机版及redis-cluster,使用redis desktop manager和java(eclipse)连接redis过程遇到问题汇总

如果你看到这里,我默认你已经安装好了 redis,并且已经成功的在虚拟机的 Linux 系统中 ping 通。

介绍一下我的环境:VMware 虚拟机安装 centos 6.5 版的 Linux 系统,redis 是 3.0.0. 主机是 win10,使用的 redis desktop manager 是一个很古老的版本 0.7.9.809,确实十分古老。但是博主只是为了测试是否能连接,因此各位不要纠结这个问题。JAVA IDE 是 eclipse mars。

好了,在虚拟机中已经可以成功 Ping 通,如下图

现在进入正题!!!!!

我真的是太气愤了!!!网上虽然确实有一大堆人出谋划策,帮助大家解决学习过程中遇到的 Bug。但是!!!能不能不要千篇一律复制粘贴!!对自己写的东西负责好吗!!!

从头到尾,我看了百来篇技术博客、文档,都是说 bind 127.0.0.1 注释掉(确实需要),受保护模式改为 no 设置密码主机和虚拟机 ip 要在同一网段等(根本不需要)...还有要不就是贴一堆 failure  trace 代码!!连那种没有用的代码问问题的时候都要粘上来,谁有那个心情看啊!!!

请务必答应我错误代码放精华部分就行了好吗!!!

好吧,上面是牢骚,接下来才是正题!!

如果你已经用完了上述所有方法还是无法解决 redis desktop manager 无法连接虚拟机中的 redis 时,罪魁祸首一定是你的虚拟机防火墙。

最好的测试是不是虚拟机中的 linux 系统的防火墙在捣鬼的办法如下:

打开你 windos 系统的 cmd,敲 telnet linux 系统 ip 端口号,如:telnet 192.168.18.133 6379

(linux 系统的 Ip 应该都知道咋看吧,敲 ifconfig 取第一个出现的 Ip 地址就行了)

如果提示 telnet 不是内部外部指令啥的,打开控制面板,依次点击下图中矩形框中的东西

请务必在系统提示你重启的时候果断重启!!!!请务必在系统提示你重启的时候果断重启!!!!请务必在系统提示你重启的时候果断重启!!!!

网上说打开 telnet 客户端不用重启的是 win7 系统,win10 比 win7 傲娇啊!!不重启就不让你的选择生效!楼主在这里也走了弯路,一把辛酸泪。

 设置完了,重启之后,你的所有程序都关闭了吧。这个时候就请你不厌其烦的,打开你的 vmware,再开启你的 centos,再启动你的 redis,再测试一下能否在 centos 中 ping 通。也就是... 回到最初的样子。

弄完之后,进入 windows 的 cmd 界面,敲 telnet linux 系统 ip 端口号,如果迅速出现一片漆黑,那你可以关掉网页了.... 因为本篇博客帮不了你。

如果出现(当然我输 6380 是为了截图失败的结果,你应该输的估计是 6379)

 

那就说明的确是你的 centos 的防火墙在整幺蛾子!不听话!先把它关小黑屋呆一会儿!让它心甘情愿开放你需要的端口,再打开它。

依次敲击如下代码: 

/etc/init.d/iptables stop

/sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT

/etc/init.d/iptables save

service iptables restart

敲击完了之后,可以查看一下是否开放成功,检查状态的代码:/etc/init.d/iptables status

 如果开放成功应该是这样的:

你们关注 6379 就是了,其它的端口是我 redis-cluster 用的,开启的方法都一样,在用 eclipse 连集群失败的时候也是因为端口没有开,错误代码是:

(单机版的错误代码)redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

(集群版的错误代码)redis.clients.jedis.exceptions.JedisConnectionException: no reachable node in cluster

开启端口之后,再用 telnet 指令检查一下能否连接。如果还是不能连接,就再关一下防火墙,再开一下防火墙。反正我是这么解决的.... 如果你这么做了还没有解决的话,就各种重启一下试试吧... 反正你也找不到别的解决办法,还不如用网管的万能法则——重启。

幸运的话,你也出现一片漆黑了,再用 redis desktop manager 测试一下是否能连接成功。

如果成功的话,反应是很快的,如果你点 TESTCONNECTION 很久都没反应,估计又失败了。很抱歉,恕在下才疏学浅,帮不上忙.... 祝你好运!