Java连接阿里云Redis失败解决方案

一、问题描述

        使用Java连接自己阿里云服务器上的Redis失败,报错原因就是连接超时(Connect timed out),如下图所示:

二、解决方法

        (1)首先查看自己redis.conf配置文件中的bind是否注释掉。bind的默认值为127.0.0.1表示只能接受本机的请求访问,将其注释掉则可以接受任何ip地址的访问。

        (2)查看redis.conf配置文件中的protected-mode是否设置为no。protected-mode的默认值为yes表示开启保护模式,此时需要配置bind ip或者设置访问密码。设置为no则外部网络可以直接访问。(在这里我选择了设置为no)

        (3)去阿里云安全组设置将6379端口开放。

三、具体做法

        (1)redis.conf一般放在linux的/etc文件夹下面,所以我们使用以下命令编辑redis.conf文件。

vi /etc/redis.conf

        进入编辑界面后,使用/+关键字搜索bind所在的NETWORK组,输入以下命令可以快速定位到bind所在的位置,然后将下图中最下面一句bind 127.0.0.1 -::1注释掉即可。

/NETWORK


         (2)在bind下方不远处可以看到protected-mode yes,将其改为protected-mode no即可。


        (3)由于我使用的是阿里云服务器,为了安全起见,我对Redis设置了密码。输入/SECURITY可快速定位到设置密码所在的组。将下图最后一行注释取消,然后将foobared改成自己的密码。最后重启Redis。


        (4)阿里云安全组开启6379端口

        ①来到阿里云服务器官网,进入控制台,左边菜单栏中点击实例,然后在实例界面中选择自己的服务器点击管理,如下图1所示,然后点击安全组,如下图2所示。

        ②点击配置规则->手动添加,输入端口范围Redis(6379)(上面有的选),然后授权对象我只授权了自己笔记本的ip地址,感觉授权为0.0.0.0/0不太安全。自己公网ip地址可以在百度搜索ip地址就可以查到,最后设置如图3所示。(但是这种设置方式每次电脑ip地址改变后都要进行修改,不太方便,仅供平时学习使用)。

图1

图2 

图3 

四、测试

         使用Java连接Redis,代码如下:

public class JedisDemo1 {
    public static void main(String[] args) {
        //创建Jedis对象
        Jedis jedis = new Jedis("ip地址",6379); //这里ip地址输入自己redis所在服务器的ip地址
        jedis.auth("password"); //这里password使用你设置的Redis密码,没设置就注释掉
        //测试
        String value = jedis.ping();
        System.out.println(value);
        jedis.close();
    }
}

返回PONG则连接chengg,如下图所示:

五、 最后

        如果按照上述方法仍然显示连接超时,可以尝试关闭linux防火墙等操作。我自己连接失败的原因就是没有在阿里云开启Redis端口。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值