Implemented linsert
This commit is contained in:
@@ -5,6 +5,10 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class Client extends Connection {
|
||||
public enum LIST_POSITION {
|
||||
BEFORE, AFTER
|
||||
}
|
||||
|
||||
private boolean isInMulti;
|
||||
|
||||
public boolean isInMulti() {
|
||||
@@ -587,4 +591,9 @@ public class Client extends Connection {
|
||||
public void echo(String string) {
|
||||
sendCommand("ECHO", string);
|
||||
}
|
||||
|
||||
public void linsert(String key, LIST_POSITION where, String pivot,
|
||||
String value) {
|
||||
sendCommand("LINSERT", key, where.toString(), pivot, value);
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import redis.clients.jedis.Client.LIST_POSITION;
|
||||
import redis.clients.util.ShardInfo;
|
||||
|
||||
public class Jedis {
|
||||
@@ -831,4 +832,10 @@ public class Jedis {
|
||||
client.echo(string);
|
||||
return client.getBulkReply();
|
||||
}
|
||||
|
||||
public Integer linsert(String key, LIST_POSITION where, String pivot,
|
||||
String value) {
|
||||
client.linsert(key, where, pivot, value);
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import redis.clients.jedis.Client.LIST_POSITION;
|
||||
import redis.clients.util.Hashing;
|
||||
import redis.clients.util.ShardInfo;
|
||||
import redis.clients.util.Sharded;
|
||||
@@ -354,4 +355,11 @@ public class ShardedJedis extends Sharded<Jedis> {
|
||||
protected Jedis create(ShardInfo shard) {
|
||||
return new Jedis(shard);
|
||||
}
|
||||
|
||||
public Integer linsert(String key, LIST_POSITION where, String pivot,
|
||||
String value) {
|
||||
Jedis j = getShard(key);
|
||||
return j.linsert(key, where, pivot, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import redis.clients.jedis.Client;
|
||||
import redis.clients.jedis.Jedis;
|
||||
import redis.clients.jedis.JedisException;
|
||||
|
||||
@@ -270,4 +271,26 @@ public class ListCommandsTest extends JedisCommandTestBase {
|
||||
status = jedis.rpushx("foo", "b");
|
||||
assertEquals(2, status);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void linsert() {
|
||||
int status = jedis.linsert("foo", Client.LIST_POSITION.BEFORE, "bar",
|
||||
"car");
|
||||
assertEquals(0, status);
|
||||
|
||||
jedis.lpush("foo", "a");
|
||||
status = jedis.linsert("foo", Client.LIST_POSITION.AFTER, "a", "b");
|
||||
assertEquals(2, status);
|
||||
|
||||
List<String> actual = jedis.lrange("foo", 0, 100);
|
||||
List<String> expected = new ArrayList<String>();
|
||||
expected.add("a");
|
||||
expected.add("b");
|
||||
|
||||
assertEquals(expected, actual);
|
||||
|
||||
status = jedis
|
||||
.linsert("foo", Client.LIST_POSITION.BEFORE, "bar", "car");
|
||||
assertEquals(-1, status);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user