解决Jedis 在Java环境中连接Redis报错

问题描述

当正确的导入jar包(导入pom)之后启动测试程序报错

源码程序:

@Test
public void redisTest(){
    Jedis jedis = new Jedis("192.168.85.200",6379);
    String set = jedis.set("name", "itheima");
    String name = jedis.get("name");
    System.out.println(name);
    jedis.close();

redis.clients.jedis.exceptions.JedisConnectionException: Failed to create socket.

问题排查

排查一

排查点 :Jedis 设置host地址和port是否填写错误

检查结果:
在这里插入图片描述

此处使用的是vm的虚拟即运行系统是CenOS7 检查后发现host 地址以及Redis的端口没错

排查二

排查点: Redis的配置设置了连接ip限制

检测结果
在这里插入图片描述
已经注释 不会造成限制

排查三

排查点:linux 防火墙

操作:关闭防火墙

systemctl stop firewalld.service
systemctl stop iptables.service

新问题:

​ Failed to stop iptables.service: Unit iptables.service not loaded.

翻译:iptables停止失败。服务iptables没有加载。

操作2:

yum install iptables-services

提示安装成功

在这里插入图片描述

再次执行:

systemctl stop iptables.service

这次没再报错

重新启动Redis

ps aux | grep redis
    
kill xxxx(上述指令查询到的 redis-server的进程ID)

redis-server redis.conf  (注意这是根据配置文件启动Redis  这个配置文件是我自己写的已经注释bind 127.0.0.1)

问题解决

代码:

 @Test
    public void redisTest(){
        Jedis jedis = new Jedis("192.168.85.200",6379);
        String set = jedis.set("name", "zhangsan");
        String name = jedis.get("name");
        System.out.println(name);
        jedis.close();
    }

结果:

zhangsan
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐