Implemented list commands
This commit is contained in:
@@ -7,7 +7,6 @@ Jedis was conceived to be EASY to use and FULLY COMPATIBLE with the latest versi
|
|||||||
Jedis is a WORK IN PROGRESS.
|
Jedis is a WORK IN PROGRESS.
|
||||||
|
|
||||||
## What's still missing?
|
## What's still missing?
|
||||||
- Commands operating on lists
|
|
||||||
- Commands operating on sets
|
- Commands operating on sets
|
||||||
- Commands operating on sorted sets
|
- Commands operating on sorted sets
|
||||||
- Sorting
|
- Sorting
|
||||||
@@ -15,7 +14,7 @@ Jedis is a WORK IN PROGRESS.
|
|||||||
- Publish/Subscribe
|
- Publish/Subscribe
|
||||||
- Persistence control commands
|
- Persistence control commands
|
||||||
- Remote server control commands
|
- Remote server control commands
|
||||||
- And the AUTH command
|
- The AUTH, SORT, BLPOP and BRPOP commands
|
||||||
|
|
||||||
But stay close because things are going fast and all this will be implemented soon!
|
But stay close because things are going fast and all this will be implemented soon!
|
||||||
|
|
||||||
@@ -24,6 +23,7 @@ But stay close because things are going fast and all this will be implemented so
|
|||||||
- Commands operating on all the kind of values
|
- Commands operating on all the kind of values
|
||||||
- Commands operating on string values
|
- Commands operating on string values
|
||||||
- Commands operating on hashes
|
- Commands operating on hashes
|
||||||
|
- Commands operating on lists (not SORT, BLPOP, BRPOP)
|
||||||
|
|
||||||
## How do I use it?
|
## How do I use it?
|
||||||
|
|
||||||
|
|||||||
2
pom.xml
2
pom.xml
@@ -2,7 +2,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>redis.clients</groupId>
|
<groupId>redis.clients</groupId>
|
||||||
<artifactId>jedis</artifactId>
|
<artifactId>jedis</artifactId>
|
||||||
<version>0.0.4</version>
|
<version>0.0.5</version>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
|||||||
@@ -233,4 +233,36 @@ public class Jedis extends Client {
|
|||||||
return sendCommand("LRANGE", key, String.valueOf(start),
|
return sendCommand("LRANGE", key, String.valueOf(start),
|
||||||
String.valueOf(end)).getMultiBulkReply();
|
String.valueOf(end)).getMultiBulkReply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String ltrim(String key, int start, int end) throws JedisException {
|
||||||
|
return sendCommand("LTRIM", key, String.valueOf(start),
|
||||||
|
String.valueOf(end)).getStatusCodeReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String lindex(String key, int index) throws JedisException {
|
||||||
|
return sendCommand("LINDEX", key, String.valueOf(index)).getBulkReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String lset(String key, int index, String value)
|
||||||
|
throws JedisException {
|
||||||
|
return sendCommand("LSET", key, String.valueOf(index), value)
|
||||||
|
.getStatusCodeReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int lrem(String key, int count, String value) throws JedisException {
|
||||||
|
return sendCommand("LREM", key, String.valueOf(count), value)
|
||||||
|
.getIntegerReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String lpop(String key) throws JedisException {
|
||||||
|
return sendCommand("LPOP", key).getBulkReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String rpop(String key) throws JedisException {
|
||||||
|
return sendCommand("RPOP", key).getBulkReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String rpoplpush(String srckey, String dstkey) throws JedisException {
|
||||||
|
return sendCommand("RPOPLPUSH", srckey, dstkey).getBulkReply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,4 +86,138 @@ public class ListCommandsTest extends Assert {
|
|||||||
assertEquals(expected, range);
|
assertEquals(expected, range);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ltrim() throws JedisException {
|
||||||
|
jedis.lpush("foo", "1");
|
||||||
|
jedis.lpush("foo", "2");
|
||||||
|
jedis.lpush("foo", "3");
|
||||||
|
String status = jedis.ltrim("foo", 0, 1);
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("3");
|
||||||
|
expected.add("2");
|
||||||
|
|
||||||
|
assertEquals("OK", status);
|
||||||
|
assertEquals(2, jedis.llen("foo"));
|
||||||
|
assertEquals(expected, jedis.lrange("foo", 0, 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lindex() throws JedisException {
|
||||||
|
jedis.lpush("foo", "1");
|
||||||
|
jedis.lpush("foo", "2");
|
||||||
|
jedis.lpush("foo", "3");
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("3");
|
||||||
|
expected.add("bar");
|
||||||
|
expected.add("1");
|
||||||
|
|
||||||
|
String status = jedis.lset("foo", 1, "bar");
|
||||||
|
|
||||||
|
assertEquals("OK", status);
|
||||||
|
assertEquals(expected, jedis.lrange("foo", 0, 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lset() throws JedisException {
|
||||||
|
jedis.lpush("foo", "1");
|
||||||
|
jedis.lpush("foo", "2");
|
||||||
|
jedis.lpush("foo", "3");
|
||||||
|
|
||||||
|
assertEquals("3", jedis.lindex("foo", 0));
|
||||||
|
assertEquals(null, jedis.lindex("foo", 100));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lrem() throws JedisException {
|
||||||
|
jedis.lpush("foo", "hello");
|
||||||
|
jedis.lpush("foo", "hello");
|
||||||
|
jedis.lpush("foo", "x");
|
||||||
|
jedis.lpush("foo", "hello");
|
||||||
|
jedis.lpush("foo", "c");
|
||||||
|
jedis.lpush("foo", "b");
|
||||||
|
jedis.lpush("foo", "a");
|
||||||
|
|
||||||
|
int count = jedis.lrem("foo", -2, "hello");
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("a");
|
||||||
|
expected.add("b");
|
||||||
|
expected.add("c");
|
||||||
|
expected.add("hello");
|
||||||
|
expected.add("x");
|
||||||
|
|
||||||
|
assertEquals(2, count);
|
||||||
|
assertEquals(expected, jedis.lrange("foo", 0, 1000));
|
||||||
|
assertEquals(0, jedis.lrem("bar", 100, "foo"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lpop() throws JedisException {
|
||||||
|
jedis.rpush("foo", "a");
|
||||||
|
jedis.rpush("foo", "b");
|
||||||
|
jedis.rpush("foo", "c");
|
||||||
|
|
||||||
|
String element = jedis.lpop("foo");
|
||||||
|
assertEquals("a", element);
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("b");
|
||||||
|
expected.add("c");
|
||||||
|
|
||||||
|
assertEquals(expected, jedis.lrange("foo", 0, 1000));
|
||||||
|
jedis.lpop("foo");
|
||||||
|
jedis.lpop("foo");
|
||||||
|
|
||||||
|
element = jedis.lpop("foo");
|
||||||
|
assertEquals(null, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void rpop() throws JedisException {
|
||||||
|
jedis.rpush("foo", "a");
|
||||||
|
jedis.rpush("foo", "b");
|
||||||
|
jedis.rpush("foo", "c");
|
||||||
|
|
||||||
|
String element = jedis.rpop("foo");
|
||||||
|
assertEquals("c", element);
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("a");
|
||||||
|
expected.add("b");
|
||||||
|
|
||||||
|
assertEquals(expected, jedis.lrange("foo", 0, 1000));
|
||||||
|
jedis.rpop("foo");
|
||||||
|
jedis.rpop("foo");
|
||||||
|
|
||||||
|
element = jedis.rpop("foo");
|
||||||
|
assertEquals(null, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void rpoplpush() throws JedisException {
|
||||||
|
jedis.rpush("foo", "a");
|
||||||
|
jedis.rpush("foo", "b");
|
||||||
|
jedis.rpush("foo", "c");
|
||||||
|
|
||||||
|
jedis.rpush("dst", "foo");
|
||||||
|
jedis.rpush("dst", "bar");
|
||||||
|
|
||||||
|
String element = jedis.rpoplpush("foo", "dst");
|
||||||
|
|
||||||
|
assertEquals("c", element);
|
||||||
|
|
||||||
|
List<String> srcExpected = new ArrayList<String>();
|
||||||
|
srcExpected.add("a");
|
||||||
|
srcExpected.add("b");
|
||||||
|
|
||||||
|
List<String> dstExpected = new ArrayList<String>();
|
||||||
|
dstExpected.add("c");
|
||||||
|
dstExpected.add("foo");
|
||||||
|
dstExpected.add("bar");
|
||||||
|
|
||||||
|
assertEquals(srcExpected, jedis.lrange("foo", 0, 1000));
|
||||||
|
assertEquals(dstExpected, jedis.lrange("dst", 0, 1000));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user