Browse Source

升级 redis 依赖

James 4 years ago
parent
commit
f9eb7fed12

+ 4 - 4
src/main/java/com/jfinal/plugin/redis/Cache.java

@@ -29,7 +29,7 @@ import com.jfinal.plugin.redis.serializer.ISerializer;
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
 import redis.clients.jedis.JedisPubSub;
-import redis.clients.util.SafeEncoder;
+import redis.clients.jedis.util.SafeEncoder;
 
 /**
  * Cache.
@@ -107,7 +107,7 @@ public class Cache {
 	 * 存放 key value 对到 redis,并将 key 的生存时间设为 seconds (以秒为单位)。
 	 * 如果 key 已经存在, SETEX 命令将覆写旧值。
 	 */
-	public String setex(Object key, int seconds, Object value) {
+	public String setex(Object key, long seconds, Object value) {
 		Jedis jedis = getJedis();
 		try {
 			return jedis.setex(keyToBytes(key), seconds, valueToBytes(value));
@@ -336,7 +336,7 @@ public class Cache {
 	public String migrate(String host, int port, Object key, int destinationDb, int timeout) {
 		Jedis jedis = getJedis();
 		try {
-			return jedis.migrate(valueToBytes(host), port, keyToBytes(key), destinationDb, timeout);
+			return jedis.migrate(host, port, keyToBytes(key), destinationDb, timeout);
 		}
 		finally {close(jedis);}
 	}
@@ -362,7 +362,7 @@ public class Cache {
 	 * 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。
 	 * 在 Redis 中,带有生存时间的 key 被称为『易失的』(volatile)。
 	 */
-	public Long expire(Object key, int seconds) {
+	public Long expire(Object key, long seconds) {
 		Jedis jedis = getJedis();
 		try {
 			return jedis.expire(keyToBytes(key), seconds);

+ 15 - 0
src/main/java/com/jfinal/plugin/redis/RedisPlugin.java

@@ -19,6 +19,7 @@ package com.jfinal.plugin.redis;
 import redis.clients.jedis.JedisPool;
 import redis.clients.jedis.JedisPoolConfig;
 import redis.clients.jedis.Protocol;
+import java.util.function.Consumer;
 import com.jfinal.kit.StrKit;
 import com.jfinal.plugin.IPlugin;
 import com.jfinal.plugin.redis.serializer.FstSerializer;
@@ -137,6 +138,20 @@ public class RedisPlugin implements IPlugin {
 		return jedisPoolConfig;
 	}
 	
+	/**
+	 * lambda 方式配置 JedisPoolConfig
+	 * <pre>
+	 * 例子:
+	 *   RedisPlugin redisPlugin = new RedisPlugin(...);
+	 *   redisPlugin.config(c -> {
+	 *       c.setMaxIdle(123456);
+	 *   });
+	 * </pre>
+	 */
+	public void config(Consumer<JedisPoolConfig> config) {
+		config.accept(jedisPoolConfig);
+	}
+	
 	// ---------
 	
 	public void setSerializer(ISerializer serializer) {

+ 1 - 1
src/main/java/com/jfinal/plugin/redis/serializer/FstSerializer.java

@@ -22,7 +22,7 @@ import java.io.IOException;
 import org.nustaq.serialization.FSTObjectInput;
 import org.nustaq.serialization.FSTObjectOutput;
 import com.jfinal.kit.LogKit;
-import redis.clients.util.SafeEncoder;
+import redis.clients.jedis.util.SafeEncoder;
 
 /**
  * FstSerializer.

+ 1 - 1
src/main/java/com/jfinal/plugin/redis/serializer/JdkSerializer.java

@@ -21,7 +21,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import com.jfinal.kit.LogKit;
-import redis.clients.util.SafeEncoder;
+import redis.clients.jedis.util.SafeEncoder;
 
 /**
  * JdkSerializer.