diff --git a/autoload-cache-common/pom.xml b/autoload-cache-common/pom.xml
index 722c53ab..bfc016bf 100644
--- a/autoload-cache-common/pom.xml
+++ b/autoload-cache-common/pom.xml
@@ -20,5 +20,9 @@
com.googlecode.combinatoricslib
combinatoricslib
+
+ org.slf4j
+ slf4j-api
+
diff --git a/autoload-cache-lock/autoload-cache-lock-jedis/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java b/autoload-cache-lock/autoload-cache-lock-jedis/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java
index f1dae40d..51e860dd 100644
--- a/autoload-cache-lock/autoload-cache-lock-jedis/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java
+++ b/autoload-cache-lock/autoload-cache-lock-jedis/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java
@@ -1,8 +1,6 @@
package com.jarvis.cache.lock;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.ShardedJedis;
-import redis.clients.jedis.ShardedJedisPool;
+import redis.clients.jedis.JedisSharding;
import redis.clients.jedis.params.SetParams;
/**
@@ -10,37 +8,47 @@
*/
public class ShardedJedisLock extends AbstractRedisLock {
- private ShardedJedisPool shardedJedisPool;
+ private JedisSharding jedisSharding;
- public ShardedJedisLock(ShardedJedisPool shardedJedisPool) {
- this.shardedJedisPool = shardedJedisPool;
+ public ShardedJedisLock(JedisSharding jedisSharding) {
+ this.jedisSharding = jedisSharding;
}
- private void returnResource(ShardedJedis shardedJedis) {
- shardedJedis.close();
+ private void returnResource(JedisSharding jedisSharding) {
+ jedisSharding.close();
}
@Override
protected boolean setnx(String key, String val, int expire) {
- ShardedJedis shardedJedis = null;
+ /*ShardedJedis shardedJedis = null;
try {
shardedJedis = shardedJedisPool.getResource();
Jedis jedis = shardedJedis.getShard(key);
return OK.equalsIgnoreCase(jedis.set(key, val, SetParams.setParams().nx().ex(expire)));
} finally {
returnResource(shardedJedis);
+ }*/
+ try {
+ return OK.equalsIgnoreCase(jedisSharding.set(key, val, SetParams.setParams().nx().ex(expire)));
+ } finally {
+ returnResource(jedisSharding);
}
}
@Override
protected void del(String key) {
- ShardedJedis shardedJedis = null;
+ /*ShardedJedis shardedJedis = null;
try {
shardedJedis = shardedJedisPool.getResource();
Jedis jedis = shardedJedis.getShard(key);
jedis.del(key);
} finally {
returnResource(shardedJedis);
+ }*/
+ try {
+ jedisSharding.del(key);
+ } finally {
+ returnResource(jedisSharding);
}
}
diff --git a/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/JedisClusterLock.java b/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/JedisClusterLock.java
new file mode 100644
index 00000000..516e797e
--- /dev/null
+++ b/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/JedisClusterLock.java
@@ -0,0 +1,27 @@
+package com.jarvis.cache.lock;
+
+import redis.clients.jedis.JedisCluster;
+import redis.clients.jedis.params.SetParams;
+
+/**
+ *
+ */
+public class JedisClusterLock extends AbstractRedisLock {
+
+ private JedisCluster jedisCluster;
+
+ public JedisClusterLock(JedisCluster jedisCluster) {
+ this.jedisCluster = jedisCluster;
+ }
+
+ @Override
+ protected boolean setnx(String key, String val, int expire) {
+ return OK.equalsIgnoreCase(jedisCluster.set(key, val, SetParams.setParams().nx().ex(expire)));
+ }
+
+ @Override
+ protected void del(String key) {
+ this.jedisCluster.del(key);
+ }
+
+}
diff --git a/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java b/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java
new file mode 100644
index 00000000..51e860dd
--- /dev/null
+++ b/autoload-cache-lock/autoload-cache-lock-jedis/src/src/main/java/com/jarvis/cache/lock/ShardedJedisLock.java
@@ -0,0 +1,55 @@
+package com.jarvis.cache.lock;
+
+import redis.clients.jedis.JedisSharding;
+import redis.clients.jedis.params.SetParams;
+
+/**
+ *
+ */
+public class ShardedJedisLock extends AbstractRedisLock {
+
+ private JedisSharding jedisSharding;
+
+ public ShardedJedisLock(JedisSharding jedisSharding) {
+ this.jedisSharding = jedisSharding;
+ }
+
+ private void returnResource(JedisSharding jedisSharding) {
+ jedisSharding.close();
+ }
+
+ @Override
+ protected boolean setnx(String key, String val, int expire) {
+ /*ShardedJedis shardedJedis = null;
+ try {
+ shardedJedis = shardedJedisPool.getResource();
+ Jedis jedis = shardedJedis.getShard(key);
+ return OK.equalsIgnoreCase(jedis.set(key, val, SetParams.setParams().nx().ex(expire)));
+ } finally {
+ returnResource(shardedJedis);
+ }*/
+ try {
+ return OK.equalsIgnoreCase(jedisSharding.set(key, val, SetParams.setParams().nx().ex(expire)));
+ } finally {
+ returnResource(jedisSharding);
+ }
+ }
+
+ @Override
+ protected void del(String key) {
+ /*ShardedJedis shardedJedis = null;
+ try {
+ shardedJedis = shardedJedisPool.getResource();
+ Jedis jedis = shardedJedis.getShard(key);
+ jedis.del(key);
+ } finally {
+ returnResource(shardedJedis);
+ }*/
+ try {
+ jedisSharding.del(key);
+ } finally {
+ returnResource(jedisSharding);
+ }
+ }
+
+}
diff --git a/autoload-cache-manager/autoload-cache-manager-jedis/src/main/java/com/jarvis/cache/redis/JedisClusterPipeline.java b/autoload-cache-manager/autoload-cache-manager-jedis/src/main/java/com/jarvis/cache/redis/JedisClusterPipeline.java
index 703d8c17..d93c3e27 100644
--- a/autoload-cache-manager/autoload-cache-manager-jedis/src/main/java/com/jarvis/cache/redis/JedisClusterPipeline.java
+++ b/autoload-cache-manager/autoload-cache-manager-jedis/src/main/java/com/jarvis/cache/redis/JedisClusterPipeline.java
@@ -10,12 +10,7 @@
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
-import redis.clients.jedis.Client;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisClusterInfoCache;
-import redis.clients.jedis.JedisPool;
-import redis.clients.jedis.PipelineBase;
-import redis.clients.jedis.Response;
+import redis.clients.jedis.*;
import redis.clients.jedis.exceptions.JedisRedirectionException;
import redis.clients.jedis.util.JedisClusterCRC16;
import redis.clients.jedis.util.SafeEncoder;
@@ -30,20 +25,21 @@
*/
@Getter
@Slf4j
-public class JedisClusterPipeline extends PipelineBase implements Closeable {
+public class JedisClusterPipeline extends Pipeline implements Closeable {
private final JedisClusterInfoCache clusterInfoCache;
/**
* 根据顺序存储每个命令对应的Client
*/
- private final Queue clients;
+ private final Queue clients;
/**
* 用于缓存连接
*/
- private final Map jedisMap;
+ private final Map jedisMap;
public JedisClusterPipeline(JedisClusterInfoCache clusterInfoCache) {
+ super((Connection) null);
this.clusterInfoCache = clusterInfoCache;
this.clients = new LinkedList<>();
this.jedisMap = new HashMap<>(3);
@@ -52,7 +48,8 @@ public JedisClusterPipeline(JedisClusterInfoCache clusterInfoCache) {
/**
* 同步读取所有数据. 与syncAndReturnAll()相比,sync()只是没有对数据做反序列化
*/
- protected void sync() {
+ @Override
+ public void sync() {
innerSync(null);
}
@@ -61,7 +58,8 @@ protected void sync() {
*
* @return 按照命令的顺序返回所有的数据
*/
- protected List