新的Jedis客户端无法在静态Java方法中工作
为什么同一段代码有不同的结果 我正在使用绝地2.1.0与Redis建立连接 方法A:新的Jedis客户端无法在静态Java方法中工作,java,redis,jedis,Java,Redis,Jedis,为什么同一段代码有不同的结果 我正在使用绝地2.1.0与Redis建立连接 方法A: private static Jedis getNewJedis() { return new Jedis(hostname,port); } ..... public static main(String[] args){ getNewJedis().ping(); } public static main(String[] args){ new Jedis(h
private static Jedis getNewJedis() {
return new Jedis(hostname,port);
}
.....
public static main(String[] args){
getNewJedis().ping();
}
public static main(String[] args){
new Jedis(hostname,port).ping();
}
方法B:
private static Jedis getNewJedis() {
return new Jedis(hostname,port);
}
.....
public static main(String[] args){
getNewJedis().ping();
}
public static main(String[] args){
new Jedis(hostname,port).ping();
}
我认为不同之处在于方法A被隐藏在静态方法中以便于重用,因此在调用时应该与方法B具有相同的效果
相反,当我使用方法A时,我得到了一个异常。方法B工作得很好
方法A异常:
线程“main”中出现异常
redis.clients.jedis.exceptions.JedisConnectionException:
java.net.ConnectException:连接被拒绝:连接在
redis.clients.jedis.Connection.connect(Connection.java:134)位于
redis.clients.jedis.BinaryClient.connect(BinaryClient.java:69)位于
redis.clients.jedis.Connection.sendCommand(Connection.java:86)位于
redis.clients.jedis.BinaryClient.ping(BinaryClient.java:82)位于
redis.clients.jedis.jedis.ping(jedis.java:34)在
org.tripodwire.esme.receiver.ReceiverProducer.produceTestJedis(ReceiverProducer.java:168)
位于org.tripodwire.esme.entry.entry.main(entry.java:25)
主机名和端口来自何处?将出现其他错误。我建议查看主机名和端口的值,看看这两个版本之间是否有差异。很可能是您在问题中遗漏了导致问题的代码。@Bringer128-你们都是绝对正确的。显然,每次调用时端口值都不同。我真傻,一开始就没弄明白!