Introducing IJedis common interface for sharded and non-sharded Jedis

This commit is contained in:
AIT
2010-10-17 17:15:38 +02:00
committed by Jonathan Leibiusky
parent 99a50db3ea
commit e38a3fc012
3 changed files with 157 additions and 12 deletions

View File

@@ -10,7 +10,7 @@ import redis.clients.jedis.Client.LIST_POSITION;
import redis.clients.util.Hashing;
import redis.clients.util.Sharded;
public class ShardedJedis extends Sharded<Jedis, JedisShardInfo> {
public class ShardedJedis extends Sharded<Jedis, JedisShardInfo> implements IJedis {
public ShardedJedis(List<JedisShardInfo> shards) {
super(shards);
}
@@ -28,6 +28,16 @@ public class ShardedJedis extends Sharded<Jedis, JedisShardInfo> {
super(shards, algo, keyTagPattern);
}
public void disconnect() throws IOException {
for (JedisShardInfo jedis : getAllShards()) {
jedis.getResource().disconnect();
}
}
protected Jedis create(JedisShardInfo shard) {
return new Jedis(shard);
}
public String set(String key, String value) {
Jedis j = getShard(key);
return j.set(key, value);
@@ -355,16 +365,6 @@ public class ShardedJedis extends Sharded<Jedis, JedisShardInfo> {
return j.zremrangeByScore(key, start, end);
}
public void disconnect() throws IOException {
for (JedisShardInfo jedis : getAllShards()) {
jedis.getResource().disconnect();
}
}
protected Jedis create(JedisShardInfo shard) {
return new Jedis(shard);
}
public Integer linsert(String key, LIST_POSITION where, String pivot,
String value) {
Jedis j = getShard(key);