Implement all Jedis cluster commands and rename RedisSlot class

This commit is contained in:
Marcos Nils
2013-12-20 16:56:29 -03:00
parent 0bc27ac3a2
commit af72248c22
4 changed files with 726 additions and 321 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
package redis.clients.jedis;
import redis.clients.jedis.exceptions.JedisAskDataException;
import redis.clients.jedis.exceptions.JedisMovedDataException;
public abstract class JedisClusterCommand<T> {
@@ -15,8 +16,10 @@ public abstract class JedisClusterCommand<T> {
public T run() {
try {
return execute();
} catch (JedisMovedDataException e) {
//TODO: Retry here
} catch (JedisMovedDataException jme) {
//TODO: Do Retry here
} catch (JedisAskDataException jae) {
//TODO: Do ASK here
}
return null;
}

View File

@@ -11,7 +11,7 @@ import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.exceptions.JedisAskDataException;
import redis.clients.jedis.exceptions.JedisMovedDataException;
import redis.clients.jedis.tests.utils.RedisSlot;
import redis.clients.jedis.tests.utils.JedisClusterCRC16;
public class JedisClusterTest extends Assert {
private Jedis node1;
@@ -78,8 +78,8 @@ public class JedisClusterTest extends Assert {
}
@Test(expected=JedisAskDataException.class)
public void ask() {
int keySlot = RedisSlot.getSlot("test");
public void throwAskExceptionTest() {
int keySlot = JedisClusterCRC16.getSlot("test");
String node2Id = getNodeId(node2.clusterNodes());
node1.clusterSetSlotMigrating(keySlot, node2Id);
node1.get("test");

View File

@@ -1,10 +1,10 @@
package redis.clients.jedis.tests.utils;
public class RedisSlot {
public class JedisClusterCRC16 {
public final static int polynomial = 0x1021; // Represents x^16+x^12+x^5+1
static int crc;
public RedisSlot(){
public JedisClusterCRC16(){
crc = 0x0000;
}