Java连接redis集群报错,connection refused 和Could not get a resource from the pool
在使用Jedis进行redis集群操作的时候,出现报错connection refused 和Could not get a resource from the pool代码如下:
@Test
public void testRedis(){
final String redisURL = "192.168.3.3";
final String auth = "pass";
final int port7001 = 5001;
final int port7002 = 5002;
final int port7003 = 5003;
final int port7004 = 5004;
final int port7005 = 5005;
final int port7006 = 5006;
final int MAX_IDLE = 200;
final int MAX_TOTAL = 1024;
final int CONN_TIME_OUT = 1000;//链接server超时
final int SO_TIME_OUT = 1000;//等待response超时
final int MAX_ATTEMPTS = 1;//尝试重新链接次数
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setMaxTotal(MAX_TOTAL);
poolConfig.setMaxIdle(MAX_IDLE);
HostAndPort hostAndPort1 = new HostAndPort(redisURL,port7001);
HostAndPort hostAndPort2 = new HostAndPort(redisURL,port7002);
HostAndPort hostAndPort3 = new HostAndPort(redisURL,port7003);
HostAndPort hostAndPort4 = new HostAndPort(redisURL,port7004);
HostAndPort hostAndPort5 = new HostAndPort(redisURL,port7005);
HostAndPort hostAndPort6 = new HostAndPort(redisURL,port7006);
Set<HostAndPort> hostAndPortSet = new HashSet<>(6);
hostAndPortSet.add(hostAndPort1);
hostAndPortSet.add(hostAndPort2);
hostAndPortSet.add(hostAndPort3);
hostAndPortSet.add(hostAndPort4);
hostAndPortSet.add(hostAndPort5);
hostAndPortSet.add(hostAndPort6);
// public JedisCluster(Set<HostAndPort> jedisClusterNode, int connectionTimeout,
// int soTimeout, int maxAttempts, String password, GenericObjectPoolConfig poolConfig)
JedisCluster jedisCluster = new JedisCluster(hostAndPortSet,CONN_TIME_OUT,SO_TIME_OUT,MAX_ATTEMPTS,auth,poolConfig);
jedisCluster.set("a", "1o");
System.out.println(jedisCluster.get("a"));
//
// public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port, int timeout, String password) {
// this(poolConfig, host, port, timeout, password, 0, (String)null);
// }
}
经过查找资料,最终猜测问题出在redis-cluster/redis**/nodes_**.conf,所以对此文件进行了修改
注:修改时请先关闭集群
修改之前的文件内容如下:
30098db4933f13b02ef2a30a5070617f0ae58fd4 127.0.0.1:5006@15006 slave 0ee3bde15b2caf32df19ef85d874c228be8d9342 0 1513932380250 6 connected
692301fa80af9870bb258c34b553590fbced72ad 127.0.0.1:5001@15001 master - 0 1513932380000 1 connected 0-5460
164295b1736fb5fc244abf0a2e57774d938a7262 127.0.0.1:5002@15002 master - 0 1513932379545 2 connected 5461-10922
0ee3bde15b2caf32df19ef85d874c228be8d9342 127.0.0.1:5003@15003 myself,master - 0 1513932380000 3 connected 10923-16383
657967366913fff237e091320761ea7ef9544893 127.0.0.1:5004@15004 slave 692301fa80af9870bb258c34b553590fbced72ad 0 1513932380049 4 connected
13c976fada6a8537826b2585a5dabad6fd2a4ece 127.0.0.1:5005@15005 slave 164295b1736fb5fc244abf0a2e57774d938a7262 0 1513932380553 5 connected
修改后的内容如下:
30098db4933f13b02ef2a30a5070617f0ae58fd4 192.168.3.3:5006@15006 slave 0ee3bde15b2caf32df19ef85d874c228be8d9342 0 1513932380250 6 connected
692301fa80af9870bb258c34b553590fbced72ad 192.168.3.3:5001@15001 master - 0 1513932380000 1 connected 0-5460
164295b1736fb5fc244abf0a2e57774d938a7262 192.168.3.3:5002@15002 master - 0 1513932379545 2 connected 5461-10922
0ee3bde15b2caf32df19ef85d874c228be8d9342 192.168.3.3:5003@15003 myself,master - 0 1513932380000 3 connected 10923-16383
657967366913fff237e091320761ea7ef9544893 192.168.3.3:5004@15004 slave 692301fa80af9870bb258c34b553590fbced72ad 0 1513932380049 4 connected
13c976fada6a8537826b2585a5dabad6fd2a4ece 192.168.3.3:5005@15005 slave 164295b1736fb5fc244abf0a2e57774d938a7262 0 1513932380553 5 connected
资料来源:https://www.cnblogs.com/mengjinluohua/p/6193962.html
PS:此博主最终的解决方法是重做集群,不过我并没有重做集群,只是修改了一下所有节点的nodes**_conf文件并重启,也可以解决问题,目前来看并没有什么不妥,如果有问题再回来修改 ×——×
Java连接redis集群报错,connection refused 和Could not get a resource from the pool相关推荐
- 连接redis集群报错: no reachable node in cluster
今天在连接redis集群时遇到个问题,试了很多方案也没解决. 就是连接redis集群老是报错: no reachable node in cluster. 后来改了一些参数,就可以调通了. 废话不多说 ...
- 【问题解决】关于 C++ 连接 Redis 集群报错 MOVED
过程的艰辛我就不说了.注意看:报错的应答消息是这样的:MOVED 7365 192.168.190.133:6382 此刻小脑袋瓜灵光的各位已经转过弯来了吧. 没转过弯也正常,你应该是缺少这一篇:关于 ...
- 代码操作redis集群报错:(error) MOVED 解决方法
记录一下今天搭建完本地redis集群以后,使用C++代码测试redis集群搭建是否成功. 在初始化.链接等一系列成功后,我开开心心进行写操作: 这时候报错: Run 382 Redis Set Err ...
- redis集群报错:(error) MOVED 解决方法
在使用 redis-cli 连接 redis 集群,进行数据操作时,有报错 ./redis-cli -h 192.24.54.1 -p 6379 -a '123456' 192.24.54.1:637 ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave....
报错: READONLY You can't write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.
报错: READONLY You can't write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- java连接redis集群
http://m.blog.csdn.net/koushr/article/details/50956870 连接redis数据库(非集群模式) public static void main( ...
- redis集群报错,(error) MOVED 15495 127.0.0.1:7003
节点会对命令请求进行分析和key的slot计算,并且会查找这个命令所要处理的键所在的槽.如果要查找的哈希槽正好就由接收到命令的节点负责处理, 那么节点就直接执行这个命令. 另一方面, 如果所查找的槽不 ...
- redis集群报错:(error) MOVED 11469 192.168.163.249:7002
应该是你没有启动集群模式(即缺少了那个"-c"): redis-cli -c -h yourhost -p yourpost
- 用docker安装redis集群报错“Bad directive or wrong number of arguments\n“,“stream“:“stderr“”
redis.conf配置文见多了红框里面的几行参数,删除这几行后正常启动.
最新文章
- android jar 电子书下载,【Android】Gradle project sync jar包长时间下载不下来的解决办法...
- mysql同步出现错误
- 清华大学 唐杰 计算机学院 怎么样,我国首位原创虚拟学生,后期希望“她”能够像人一样进行创新...
- html 动态创建表格,jquery动态创建表格
- TCP网络编程的基本流程
- mysql解压版安装配置
- .net mvc ajax重定向,如何在MVC3 JQuery的Ajax调用重定向到新的页面(连同模型)(How to redirec...
- TortoiseSVN 命令 (命令行执行工具)
- 线性变换与矩阵的一一映射
- 一般的病毒通过注册表自启动的方式不断完善中。。。。
- matlab 韦布尔拟合,MATLAB数据拟合工具在数学建模中的简单应用
- L1-061 新胖子公式 (10 分)C语言
- 使用分治法解最大连续子序列和问题
- PS 制作毛玻璃效果
- ArcMap导入Excel数据显示没有注册类
- IDEA中配置Vue启动Configurations
- 测试人生 | 00后0经验应届毕业生拿下2线城市15W offer,好励志~
- 插件.ignore的使用
- 慢性呼吸疾病的分类、诊断、预警模型的建立(一)
- 解决 Chrome浏览器网页上出现光标,无法通过键盘方向键实现页面滚动的问题
热门文章
- 经典图像质量评价指标原理
- oracle run {,Oracle runInstaller 安装不显示 OUI 处理 说明
- Ubuntu vsftp搭建和C# Winform FTP操作
- JMeter Ramp-up 说明
- 一台计算机有几块网卡,如何在计算机(服务器)中安装多块网卡
- allegro里面由于shape out of date
- 三款EDA工具,AD、PADS与Allegro的简单介绍
- 自我时间管理与时间意识
- 心态-《自我成长的力量》书中的精髓:自我成长的过程需要我们不断觉察自己、改变自己、活出自己,从而成长为最好的自己。
- matlab aic怎么用,AIC信息准则的编程