Refactor to have interfaces.

Add cluster pipeline commands.
This commit is contained in:
Jonathan Leibiusky
2013-12-02 14:34:05 -05:00
parent 77d244b96a
commit 5b15d48803
5 changed files with 140 additions and 12 deletions

View File

@@ -831,4 +831,41 @@ public class Client extends BinaryClient implements Commands {
arg[0] = SafeEncoder.encode(subcommand); arg[0] = SafeEncoder.encode(subcommand);
cluster(arg); cluster(arg);
} }
public void clusterNodes() {
cluster(Protocol.CLUSTER_NODES);
}
public void clusterMeet(final String ip, final int port) {
cluster(Protocol.CLUSTER_MEET, ip, String.valueOf(port));
}
public void clusterAddSlots(final int ...slots) {
cluster(Protocol.CLUSTER_ADDSLOTS, slots);
}
public void clusterDelSlots(final int ...slots) {
cluster(Protocol.CLUSTER_DELSLOTS, slots);
}
public void clusterInfo() {
cluster(Protocol.CLUSTER_INFO);
}
public void clusterGetKeysInSlot(final int slot, final int count) {
final int[] args = new int[]{ slot, count };
cluster(Protocol.CLUSTER_GETKEYSINSLOT, args);
}
public void clusterSetSlotNode(final int slot, final String nodeId) {
cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_NODE, nodeId);
}
public void clusterSetSlotMigrating(final int slot, final String nodeId) {
cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_MIGRATING, nodeId);
}
public void clusterSetSlotImporting(final int slot, final String nodeId) {
cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_IMPORTING, nodeId);
}
} }

View File

@@ -0,0 +1,23 @@
package redis.clients.jedis;
import java.util.List;
public interface ClusterCommands {
String clusterNodes();
String clusterMeet(final String ip, final int port);
String clusterAddSlots(final int... slots);
String clusterDelSlots(final int... slots);
String clusterInfo();
List<String> clusterGetKeysInSlot(final int slot, final int count);
String clusterSetSlotNode(final int slot, final String nodeId);
String clusterSetSlotMigrating(final int slot, final String nodeId);
String clusterSetSlotImporting(final int slot, final String nodeId);
}

View File

@@ -0,0 +1,23 @@
package redis.clients.jedis;
import java.util.List;
public interface ClusterPipeline {
Response<String> clusterNodes();
Response<String> clusterMeet(final String ip, final int port);
Response<String> clusterAddSlots(final int... slots);
Response<String> clusterDelSlots(final int... slots);
Response<String> clusterInfo();
Response<List<String>> clusterGetKeysInSlot(final int slot, final int count);
Response<String> clusterSetSlotNode(final int slot, final String nodeId);
Response<String> clusterSetSlotMigrating(final int slot, final String nodeId);
Response<String> clusterSetSlotImporting(final int slot, final String nodeId);
}

View File

@@ -7,7 +7,7 @@ import redis.clients.util.Slowlog;
import java.net.URI; import java.net.URI;
import java.util.*; import java.util.*;
public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommands, AdvancedJedisCommands, ScriptingCommands { public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommands, AdvancedJedisCommands, ScriptingCommands, ClusterCommands {
public Jedis(final String host) { public Jedis(final String host) {
super(host); super(host);
} }
@@ -3079,56 +3079,55 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand
public String clusterNodes() { public String clusterNodes() {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_NODES); client.clusterNodes();
return client.getBulkReply(); return client.getBulkReply();
} }
public String clusterMeet(final String ip, final int port) { public String clusterMeet(final String ip, final int port) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_MEET, ip, String.valueOf(port)); client.clusterMeet(ip, port);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public String clusterAddSlots(final int ...slots) { public String clusterAddSlots(final int ...slots) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_ADDSLOTS, slots); client.clusterAddSlots(slots);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public String clusterDelSlots(final int ...slots) { public String clusterDelSlots(final int ...slots) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_DELSLOTS, slots); client.clusterDelSlots(slots);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public String clusterInfo() { public String clusterInfo() {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_INFO); client.clusterInfo();
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public List<String> clusterGetKeysInSlot(final int slot, final int count) { public List<String> clusterGetKeysInSlot(final int slot, final int count) {
checkIsInMulti(); checkIsInMulti();
final int[] args = new int[]{ slot, count }; client.clusterGetKeysInSlot(slot, count);
client.cluster(Protocol.CLUSTER_GETKEYSINSLOT, args);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
public String clusterSetSlotNode(final int slot, final String nodeId) { public String clusterSetSlotNode(final int slot, final String nodeId) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_NODE, nodeId); client.clusterSetSlotNode(slot, nodeId);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public String clusterSetSlotMigrating(final int slot, final String nodeId) { public String clusterSetSlotMigrating(final int slot, final String nodeId) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_MIGRATING, nodeId); client.clusterSetSlotMigrating(slot, nodeId);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public String clusterSetSlotImporting(final int slot, final String nodeId) { public String clusterSetSlotImporting(final int slot, final String nodeId) {
checkIsInMulti(); checkIsInMulti();
client.cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_IMPORTING, nodeId); client.clusterSetSlotImporting(slot, nodeId);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
} }

View File

@@ -7,7 +7,8 @@ import java.util.Set;
abstract class MultiKeyPipelineBase extends PipelineBase implements abstract class MultiKeyPipelineBase extends PipelineBase implements
BasicRedisPipeline, BasicRedisPipeline,
MultiKeyBinaryRedisPipeline, MultiKeyBinaryRedisPipeline,
MultiKeyCommandsPipeline { MultiKeyCommandsPipeline,
ClusterPipeline {
protected Client client = null; protected Client client = null;
@@ -398,4 +399,49 @@ abstract class MultiKeyPipelineBase extends PipelineBase implements
client.bitop(op, destKey, srcKeys); client.bitop(op, destKey, srcKeys);
return getResponse(BuilderFactory.LONG); return getResponse(BuilderFactory.LONG);
} }
public Response<String> clusterNodes() {
client.clusterNodes();
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterMeet(final String ip, final int port) {
client.clusterMeet(ip, port);
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterAddSlots(final int... slots) {
client.clusterAddSlots(slots);
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterDelSlots(final int... slots) {
client.clusterDelSlots(slots);
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterInfo() {
client.clusterInfo();
return getResponse(BuilderFactory.STRING);
}
public Response<List<String>> clusterGetKeysInSlot(final int slot, final int count) {
client.clusterGetKeysInSlot(slot, count);
return getResponse(BuilderFactory.STRING_LIST);
}
public Response<String> clusterSetSlotNode(final int slot, final String nodeId) {
client.clusterSetSlotNode(slot, nodeId);
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterSetSlotMigrating(final int slot, final String nodeId) {
client.clusterSetSlotMigrating(slot, nodeId);
return getResponse(BuilderFactory.STRING);
}
public Response<String> clusterSetSlotImporting(final int slot, final String nodeId) {
client.clusterSetSlotImporting(slot, nodeId);
return getResponse(BuilderFactory.STRING);
}
} }