原文链接: http://blog.csdn.net/oxinliang12/article/details/52279143
直奔主题,Java连接虚拟机报错,代码如下:
public class TestPing {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.201.128", 6379);
System.out.println(jedis.ping());
}
}
运行报错,控制台信息如下:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out
借鉴一些网友的解决方案:
关闭虚拟机的防火墙
1)暂时关闭防火墙:/etc/init.d/iptables stop
2) 重启虚拟机生效:chkconfig iptables off 或者 /sbin/chkconfig --level 2345 iptables off
楼主使用的是第二种方法,如下图所示:
重启虚拟机之后,在查看防火墙状态,如下图所示
继续运行上述代码,报错如下:
Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
解决方案,修改redis.conf配置文件,将端口号127.0.0.1注释掉,这样任何IP都能访问,如下图所示:
保存退出后,运行代码,发现报错依旧,因为尚未启动redis服务,启动redis服务,如下图所示:
运行代码,此时报错如下:
- <span style="color:#ff0000;">Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: </span>
- <span style="color:#ff0000;">DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: </span>
- <span style="color:#ff0000;">1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. </span>
- <span style="color:#ff0000;">2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. </span>
- <span style="color:#ff0000;">3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. </span>
- <span style="color:#ff0000;">4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.</span>
上述exception大致意思是:拒绝redis在保护模式下运行的,没有绑定IP地址,没有授权密码,如果你想从外部电脑连接redis的话,你必须要采纳以下其中的某一个解决方法
楼主采用的第二种方法,修改redis.conf配置文件,将protected-mode yes 改为no,如下图所示
重启虚拟机,启动redis服务,如下图所示
运行代码,控制台输出PONG,如下图所示:
到此,问题解决。
题外话:我有个疑问就是防火墙和redis.conf配置文件里已经把IP注释了,为何会报红色的错误,经过网上查阅资料,发现其他网友也有类似问题,不过大部分人用的红色报错的第四种解决办法,在这里给出链接
相关推荐
此文章已于 14:50:59 2017/12/6 发布到 HealerJean梦想博客java 连接不上虚拟机redis类别 redis1、我的自己的电脑中re
在本文中,我们将探讨如何在Ubuntu操作系统上搭建Redis虚拟机环境,并安装Redis服务器,同时也会涉及SSH工具连接虚拟机的相关问题。 首先,为了在Ubuntu虚拟机上安装Redis,我们需要确保虚拟机已经配置妥当并运行。...
Java 连接 Redis 集群的实现 在这个资源中,我们将探讨如何使用 Java 客户端连接 Redis 集群,并实现单例模式和集群模式的连接。 Redis 集群 Redis 集群是一种高可用性的 Redis 部署方式,通过将多个 Redis 节点...
1. Jedis.jar: 这是Java连接Redis的核心库,包含了所有与Redis服务器交互的API。Jedis提供了一系列的接口和类,如Jedis、JedisSentinelPool、SentinelManager等,以供开发者使用。例如,`Jedis`是基础的客户端接口,...
总结来说,当`gem install redis`报错“加载命令:install (LoadError)”和“无法加载此类文件 -- zlib”时,这意味着系统缺少`zlib`库。解决这个问题的关键是安装`zlib-devel`(或相应的开发库),然后重新配置和...
Java是广泛使用的编程语言,Java开发者常常需要通过Java连接Redis来实现数据交互。 本资源包“java连接Redis资源包(最新)”提供了适用于Windows和Linux环境的Redis安装文件,确保无论你在哪种操作系统上,都能...
Redis 连接报错 Error:NOAUTH Authentication required 解决方案 Redis 是一个开源的、基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理中间件。然而,在使用 Redis 时,可能会遇到各种错误,例如 ...
在配置Spring与Redis的整合时,首先需要在Spring的配置文件(如:applicationContext.xml)中声明一个`JedisConnectionFactory`,这是连接Redis服务器的基础。你可以通过设置hostName、port、password等属性来配置你...
Java连接Redis是一个常见的任务,特别是在开发分布式应用时。Redis是一个高性能的键值数据库,而Java作为后端开发的主流语言,提供了多种方式来与Redis进行交互。本篇将详细介绍如何在Java项目中使用jar包来连接...
本文将深入探讨如何在Java环境中设置并使用Jedis连接Redis服务器,实现数据的读写操作。 首先,要开始使用Java与Redis连接,我们需要在项目中引入Jedis库。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖...
Java 连接 Redis 是在 Java 应用程序中与 Redis 数据库进行交互的过程。Redis 是一个高性能的键值存储系统,常用于缓存、消息中间件等场景。要实现 Java 与 Redis 的通信,我们需要使用 Java Redis 客户端库,如 ...
Java连接Redis测试是一个常见的开发任务,特别是在构建高性能、高并发的Web应用中。Redis作为一个内存数据存储系统,常被用作数据库、缓存和消息中间件。本项目提供了在Java环境中连接并操作Redis的示例代码,使得...
Java连接Redis的Jedis库是Java开发者在进行Redis数据存储与检索时常用的一个客户端库。Redis是一个高性能的键值数据库,常被用作缓存、消息队列等场景,而Jedis则是Java语言中对Redis服务接口进行封装的库,方便Java...
在本文中,我们将深入探讨如何使用Java连接并操作Redis分布式缓存数据库。Redis是一个高性能的键值存储系统,常用于缓存、消息队列、事件发布/订阅等场景。Java作为广泛使用的编程语言,提供了丰富的客户端库来与...
Java连接Redis是将Java应用程序与Redis内存数据存储系统进行交互的一种技术。Redis是一个高性能的键值数据库,广泛用于缓存、消息队列等场景。在Java中,我们通常使用Jedis库来实现与Redis的连接。Jedis是Redis官方...
**Jedis:Java连接Redis数据库的利器** Jedis是Java开发者用来与Redis内存数据库进行交互的一个强大工具。Redis,作为一种高性能的键值数据库,广泛应用于缓存、消息队列等多种场景,而Jedis则为Java程序员提供了一...
`tommy_study_redis`这个文件名可能是项目或学习资料的命名,其中可能包含了上述步骤的详细实现,包括Java连接Redis的示例代码以及如何在实际项目中集成Redis。通过阅读这些资料,你可以更深入地理解如何在Java应用...
**Jedis:Java连接Redis的首选库** Jedis是Java开发者用来与Redis内存数据存储进行交互的客户端库。Redis是一个高性能的键值数据库,广泛应用于缓存、消息队列等多种场景。Jedis作为官方推荐的Java客户端,提供了...
2. **连接Redis服务器**:在Java代码中,你可以通过创建Jedis实例来建立到Redis服务器的连接: ```java Jedis jedis = new Jedis("localhost", 6379); ``` 3. **基本操作**:一旦连接建立,你可以使用Jedis对象...
Java连接Redis通常依赖于Jedis库,这是一个Java客户端,用于操作Redis键值存储系统。在Java项目中使用Redis,你需要将Jedis相关的jar包引入到你的项目类路径中。"java连接redis需要的jar"这一标题表明我们主要讨论的...