首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

Jedis更动Redis默认端口依次

2012-07-05 
Jedis更改Redis默认端口依次使用Jedis封装调用Redis的过程中,难免会出现一点小问题.在不更改Redis默认端口

Jedis更改Redis默认端口依次
使用Jedis封装调用Redis的过程中,难免会出现一点小问题.在不更改Redis默认端口的情况下一切OK.当将6379更改为其他端口(94,或者其他30000)时,小问题出现.提示连接池无法获取连接.
redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
本机Redis服务正常,redis-cli能连上.程序始终报错无法连上.
最后发现是在Spring中构造JedisShardInfo的问题:



默认读取${redis.hostIp}与${redis.hostPort}如果不指定类型,构造时始终调用两个字符串的构造函数,所以当出现端口更改时,程序还是调用原来的构造函数.
部分源代码如下:



如要显式调用第二个构造函数,记得加上参数类型即可:


JedisShardInfo shardInfo = newJedisShardInfo(RedisServer,RedisPort);Jedis j=new Jedis(shardInfo)ORShardedJedis sJedis = redisUtil.getShardedJedisPool().getResource();Collection<Jedis> js=sJedis.getAllShards();System.out.println(js.size());Iterator<Jedis> it=js.iterator();while(it.hasNext()){ Jedis j=it.next();System.out.println(j.get("db0"));j.select(1);System.out.println(j.get("db1"));}

热点排行