diff --git a/src/main/java/org/redisson/RedissonKeys.java b/src/main/java/org/redisson/RedissonKeys.java index e60637d08..4dbf13075 100644 --- a/src/main/java/org/redisson/RedissonKeys.java +++ b/src/main/java/org/redisson/RedissonKeys.java @@ -251,6 +251,10 @@ public class RedissonKeys implements RKeys { */ @Override public Future deleteAsync(String ... keys) { + if (!commandExecutor.getConnectionManager().isClusterMode()) { + return commandExecutor.writeAsync(null, RedisCommands.DEL, keys); + } + Map> range2key = new HashMap>(); for (String key : keys) { int slot = commandExecutor.getConnectionManager().calcSlot(key); diff --git a/src/main/java/org/redisson/command/CommandAsyncService.java b/src/main/java/org/redisson/command/CommandAsyncService.java index 66a13589c..f773e2309 100644 --- a/src/main/java/org/redisson/command/CommandAsyncService.java +++ b/src/main/java/org/redisson/command/CommandAsyncService.java @@ -226,11 +226,10 @@ public class CommandAsyncService implements CommandAsyncExecutor { private NodeSource getNodeSource(String key) { int slot = connectionManager.calcSlot(key); - NodeSource source = NodeSource.ZERO; if (slot != 0) { - source = new NodeSource(slot); + return new NodeSource(slot); } - return source; + return NodeSource.ZERO; } @Override diff --git a/src/main/java/org/redisson/connection/ConnectionManager.java b/src/main/java/org/redisson/connection/ConnectionManager.java index 95156f871..475bc6bb4 100644 --- a/src/main/java/org/redisson/connection/ConnectionManager.java +++ b/src/main/java/org/redisson/connection/ConnectionManager.java @@ -43,6 +43,8 @@ import io.netty.util.concurrent.Promise; */ public interface ConnectionManager { + boolean isClusterMode(); + Future newSucceededFuture(R value); ConnectionEventsHub getConnectionEventsHub(); diff --git a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java index ac8024197..2a1e4ea24 100644 --- a/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java +++ b/src/main/java/org/redisson/connection/MasterSlaveConnectionManager.java @@ -116,6 +116,8 @@ public class MasterSlaveConnectionManager implements ConnectionManager { protected MasterSlaveServersConfig config; + protected boolean isClusterMode; + protected final Map entries = PlatformDependent.newConcurrentHashMap(); private final InfinitySemaphoreLatch shutdownLatch = new InfinitySemaphoreLatch(); @@ -150,6 +152,11 @@ public class MasterSlaveConnectionManager implements ConnectionManager { this.socketChannelClass = NioSocketChannel.class; } this.codec = cfg.getCodec(); + this.isClusterMode = cfg.isClusterConfig(); + } + + public boolean isClusterMode() { + return isClusterMode; } public IdleConnectionWatcher getConnectionWatcher() {