Redis(1)-Jedis连接配置

发布于:2024-05-30 ⋅ 阅读:(109) ⋅ 点赞:(0)

问题

阿里云安装并启用Redis后,尝试在本地用Jedis调用,发现报错

public class Jedis01 {
    @Test
    public void connect(){
        Jedis jedis = new Jedis("101.37.31.211", 6379); // 公网ip
        jedis.auth("123"); // 密码
        String ping = jedis.ping();
        System.out.println(ping);
        jedis.close();
    }
}

报错内容:

redis.clients.jedis.exceptions.JedisConnectionException: Failed to connect to any host resolved for DNS name.

解决方案

  1. 阿里云管理后台查看公网ip
    image.png
  2. 本机尝试ping公网ip,发现可以ping通,接着,搜了一些博客,总结以下一些需要配置的地方。
  3. 配置 redis.conf 文件
# protected-mode yes 将其关闭:
protected-mode no

注释掉以下内容,开放ip可以让其他主机也可以连接
# bind 127.0.0.1 -::1
# bind 0.0.0.0
  1. 重启 redis
/etc/init.d/redis-server restart

依旧会报错,可以发现能ping通,但是无法访问6379端口
image.png|456
5. 继续配置,更新防火墙规则,我是ubuntu,如果是centos可能命令不同

# 启用 ufw 防火墙
ufw enablie
# 重新加载防火墙
ufw reload
# 允许外部访问 6379 端口
ufw allow 6379/tcp
# 重新加载防火墙
ufw reload
# 查看 ufw 状态和规则
ufw status

我们可以看到已经开放 6379 端口了:

Status: active

To                         Action      From
--                         ------      ----
6379/tcp                   ALLOW       Anywhere
6379/tcp (v6)              ALLOW       Anywhere (v6)

重启redis后,继续测试,发现依旧报错,OK,继续找原因…
6. 在服务器控制台,配置安全组,入方向加上 6379 端口,授权对象是 0.0.0.0/0
image.png
继续测,依旧失败,崩溃了…有没有大佬可以帮忙解决看看哪里没有设置好

曲线救国:
windows系统安装redis,凑活使用,借鉴的博客是Window下Redis的安装和部署详细图文教程(Redis的安装和可视化工具的使用)_redis安装-CSDN博客

  1. Releases · tporadowski/redis 下载Redis.zip文件
  2. 解压后,将文件目录配置到系统环境变量中
    image.png
  3. 命令行页面中,redis-server 启动redis
  4. 测试一下
    @Test  
    public void connect(){  
        Jedis jedis = new Jedis("127.0.0.1", 6379);  
//        jedis.auth("123");  
        String ping = jedis.ping();  
        System.out.println(ping);  
        jedis.close();  
    }

输出

PONG

Process finished with exit code 0

终于成功了