租了一个阿里云的ECS服务器,选的是Ubuntu 16.04,然后在里面装了个Redis。看过Redis基础的部分,配置文件也懂一些。在jedis.ping()的时候出现下面这个错误。
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out at redis.clients.jedis.Connection.connect(Connection.java:134) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:69) at redis.clients.jedis.Connection.sendCommand(Connection.java:86) at redis.clients.jedis.BinaryClient.ping(BinaryClient.java:82) at redis.clients.jedis.Jedis.ping(Jedis.java:34) at com.zhangsan.redis.test.TestPing.main(TestPing.java:11)Caused by: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at redis.clients.jedis.Connection.connect(Connection.java:129) ... 5 more
然后去百度谷歌了各种答案,一一尝试,没有任何效果。中间由于更改过防火墙,去阿里云控制台准备重启,然后就发现问题了,上面出现提示,“安全组未设置任何自定义放行规则,会导致无法访问实例端口,若需访问请添加安全组规则放行对应的端口 ”。
点击红框中的内容,会看到类似下图,也就是阿里云允许的所有用于访问服务器的端口了。
很明显,没有包含6379端口,还好,有一个ssh连接用的22(不然,ssh连接都没办法用)。然后点击右上的“添加安全组规则” 。填写如下内容即可。 同理,如果准备使用其它端口,务必来添加相应安全规则。
然后确定。再重启redis-server,就可以愉快的运行阿里云服务器上的redis了。o( ̄▽ ̄)d