|
|
@@ -17,6 +17,7 @@
|
|
|
package com.jfinal.plugin.redis;
|
|
|
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
+import java.util.function.Function;
|
|
|
import redis.clients.jedis.Jedis;
|
|
|
import com.jfinal.kit.StrKit;
|
|
|
|
|
|
@@ -72,6 +73,33 @@ public class Redis {
|
|
|
return cacheMap.get(cacheName);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 使用 lambda 开放 Jedis API,建议优先使用本方法
|
|
|
+ * <pre>
|
|
|
+ * 例子 1:
|
|
|
+ * Long ret = Redis.call(j -> j.incrBy("key", 1));
|
|
|
+ *
|
|
|
+ * 例子 2:
|
|
|
+ * Long ret = Redis.call(jedis -> {
|
|
|
+ * return jedis.incrBy("key", 1);
|
|
|
+ * });
|
|
|
+ * </pre>
|
|
|
+ */
|
|
|
+ public static <R> R call(Function<Jedis, R> jedis) {
|
|
|
+ return use().call(jedis);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 使用 lambda 开放 Jedis API,建议优先使用本方法
|
|
|
+ * <pre>
|
|
|
+ * 例子:
|
|
|
+ * Long ret = Redis.call("cacheName", j -> j.incrBy("key", 1));
|
|
|
+ * </pre>
|
|
|
+ */
|
|
|
+ public static <R> R call(String cacheName, Function<Jedis, R> jedis) {
|
|
|
+ return use(cacheName).call(jedis);
|
|
|
+ }
|
|
|
+
|
|
|
public static <T> T callback(ICallback<T> callback) {
|
|
|
return callback(use(), callback);
|
|
|
}
|