概述
今天在连接redis时出现了一个奇怪的错误。如下:
public class RedisTest {
@Test
public void redisTest(){
// 连接Redis
Jedis jedis = new Jedis("localhost",6379);
// jedis.auth("h980522");
int i = 0;
try {
long start = System.currentTimeMillis();
while (true) {
long end = System.currentTimeMillis();
if (end - start >= 1000) {
break;
}
jedis.set("test" + i, i + "");
i++;
}
}
//catch(Exception e){
// e.printStackTrace();
// }
finally {
jedis.close();
}
System.out.println("redis每秒操作: "+i+" 次");
}
redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect
省略……
Caused by: java.net.ConnectException: Connection refused:
省略……
这个错误很意思简单,就是说连接被拒绝了。
连接被拒绝了一般可以通过该一下方式进行解决:
redis数据库连接时遇到的错误:redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException:
自己在看了这篇博客后,除了修改端口号6379之外每个方法都尝试了,但是还是不行。
自己为什么不认为是端口号的错误呢?
因为自己在启动redis服务器后,使用客户端进行连接是正常可以使用的。
但是自己后来实在是没有办法,就将redis的端口改为了6380,重新进行链接连接。
重进进行连接,运行成功了。
原本自己以为只是端口的错误。然后自己也不知道怎么想的把已经修改了的6380改回成了6379,结果这次在6379端口下,也运行成功了。
这?是什么情况????
后来自己检查了6379端口,发现其实并没有其他应用程序占用了改端口。然后自己查了很多博客,自己感觉有一个可能是相关的:
Redis偶发连接失败案例分析
虽然这个博客里面的错误是连接服务器的错误。
CRedis.Client.RExceptions.ExcuteCommandException: Unable to Connect redis server: ---> CRedis.Third.Redis.RedisException: Unable to Connect redis server:
在 CRedis.Third.Redis.RedisNativeClient.CreateConnectionError()
在 CRedis.Third.Redis.RedisNativeClient.SendExpectData(Byte[][] cmdWithBinaryArgs)
在 CRedis.Client.Entities.RedisServer.<>c__DisplayClassd`1.
而不是自己这里的连接被拒。但是自己的错误的原因也许是因为,自己使用了一个while(true)
的循环,导致在这个循环里面,建连速度太快,导致服务端backlog队列溢出,连接被server端reset。当然这也是自己的猜想。还有待深入学习后进行校正。
最后
以上就是彪壮身影为你收集整理的redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refus的全部内容,希望文章能够帮你解决redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refus所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复