为ä»ä¹æç close ä¸è§äºï¼
å¾®ä¿¡å ¬ä¼å·ï¼molashaonian
Jedis ç¨å®æ¯å¦éè¦æå¨ closeï¼
ä¸è¬æ åµä¸ï¼æä»¬å¨ä½¿ç¨å®è¿æ¥èµæºåé½è¦ close å ³éè¿æ¥ï¼éæ¾èµæºãè¿ä¹å¸¸ç¨çæ¹æ³ï¼åºäºä¹ æ¯ï¼Java å¨ jdk1.7 ä¹å为æä»¬æä¾äºä¸ä¸ªå¾å¥½çæ¹æ³
try-with-resources Statement ï¼æä»¬ä¸åéè¦æå¨è°ç¨ close æ¹æ³ï¼ä¹å¯ä»¥éæ¾è¿æ¥ãæ¤å¤ä»¥ Jedis 为ä¾åï¼è¯´ä¸è¯¥æ¹æ³ç使ç¨ï¼å¦ææä»¬ç Jedis æ¯éè¿ jedisPool.getResource() ä»è¿æ¥æ± è·åçè¯ï¼è°ç¨ close æ¹æ³å°ä¼æè¿æ¥å½è¿å°è¿æ¥æ± ãå¦åï¼æå¼ä¸ Redis çè¿æ¥ã
try-with-resources Statement
ä½¿ç¨ try-with-resources Statement " try(resource) "ï¼å®ä¼èªå¨å ³éæ¬å·å çèµæºï¼resourcesï¼ï¼ä¸ç¨æå¨æ·»å 代ç xx.close();
å®é 䏿¯æä¸ä¸ªéå¼ finally ä¸è°ç¨äº resource.close()ï¼å ³éäºèµæºãåé¢è´´åºç¼è¯åç代ç å¯è§ã
使ç¨è¿ä¸ªæ¹æ³åææ¯ï¼resource å¿ é¡»ç»§æ¿èª java.lang.AutoCloseable
ä¸å Jedis å¯ç¨ï¼InputStreamï¼OutputStream çä¹å¯ç¨ï¼åªè¦ç»§æ¿äº AutoCloseable
Java 代ç ï¼
/**
* Sets nx.
*
* @param key the key
* @param val the val
* @param expireMilliseconds the expire milliseconds
* @return the nx
*/
public static boolean setNx(String key, Object val, Long expireMilliseconds) {
try (Jedis jedis = getJedis()) {
String result = jedis.set(key(key), jsonTools.toJson(val), "NX", "PX", expireMilliseconds);
return ok(result);
} catch (Exception e) {
log.error("Redis error:{}", ExceptionTools.getExceptionStackTrace(e));
return false;
}
}
å¨ try() æ¬å·éé¢è·å jedis è¿æ¥å³å¯
ç¼è¯åç class 代ç ï¼
public static boolean setNx(String key, Object val, Long expireMilliseconds) {
try {
Jedis jedis = getJedis();
Throwable var4 = null;
boolean var6;
try {
String result = jedis.set(key(key), jsonTools.toJson(val), "NX", "PX", expireMilliseconds);
var6 = ok(result);
} catch (Throwable var16) {
var4 = var16;
throw var16;
} finally {
if (jedis != null) {
if (var4 != null) {
try {
jedis.close();
} catch (Throwable var15) {
var4.addSuppressed(var15);
}
} else {
jedis.close();
}
}
}
return var6;
} catch (Exception var18) {
log.error("Redis error:{}", ExceptionTools.getExceptionStackTrace(var18));
return false;
}
}
ç¼è¯ä¹åï¼èªå¨å ä¸äº finally æ¹æ³ï¼å¹¶ä¸æ§è¡ jedis.close() æ¹æ³