Implemented linsert
This commit is contained in:
@@ -5,6 +5,10 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class Client extends Connection {
|
public class Client extends Connection {
|
||||||
|
public enum LIST_POSITION {
|
||||||
|
BEFORE, AFTER
|
||||||
|
}
|
||||||
|
|
||||||
private boolean isInMulti;
|
private boolean isInMulti;
|
||||||
|
|
||||||
public boolean isInMulti() {
|
public boolean isInMulti() {
|
||||||
@@ -587,4 +591,9 @@ public class Client extends Connection {
|
|||||||
public void echo(String string) {
|
public void echo(String string) {
|
||||||
sendCommand("ECHO", 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.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import redis.clients.jedis.Client.LIST_POSITION;
|
||||||
import redis.clients.util.ShardInfo;
|
import redis.clients.util.ShardInfo;
|
||||||
|
|
||||||
public class Jedis {
|
public class Jedis {
|
||||||
@@ -831,4 +832,10 @@ public class Jedis {
|
|||||||
client.echo(string);
|
client.echo(string);
|
||||||
return client.getBulkReply();
|
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.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import redis.clients.jedis.Client.LIST_POSITION;
|
||||||
import redis.clients.util.Hashing;
|
import redis.clients.util.Hashing;
|
||||||
import redis.clients.util.ShardInfo;
|
import redis.clients.util.ShardInfo;
|
||||||
import redis.clients.util.Sharded;
|
import redis.clients.util.Sharded;
|
||||||
@@ -354,4 +355,11 @@ public class ShardedJedis extends Sharded<Jedis> {
|
|||||||
protected Jedis create(ShardInfo shard) {
|
protected Jedis create(ShardInfo shard) {
|
||||||
return new Jedis(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 org.junit.Test;
|
||||||
|
|
||||||
|
import redis.clients.jedis.Client;
|
||||||
import redis.clients.jedis.Jedis;
|
import redis.clients.jedis.Jedis;
|
||||||
import redis.clients.jedis.JedisException;
|
import redis.clients.jedis.JedisException;
|
||||||
|
|
||||||
@@ -270,4 +271,26 @@ public class ListCommandsTest extends JedisCommandTestBase {
|
|||||||
status = jedis.rpushx("foo", "b");
|
status = jedis.rpushx("foo", "b");
|
||||||
assertEquals(2, status);
|
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