Implemented BRPOP
This commit is contained in:
@@ -10,7 +10,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
|
||||||
- The AUTH, BRPOP, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands
|
- The AUTH, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE 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!
|
||||||
|
|
||||||
@@ -20,7 +20,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 BRPOP)
|
- Commands operating on lists
|
||||||
- Commands operating on sets
|
- Commands operating on sets
|
||||||
- Commands operating on sorted sets (not ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE)
|
- Commands operating on sorted sets (not ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE)
|
||||||
- Transactions
|
- Transactions
|
||||||
|
|||||||
@@ -413,4 +413,8 @@ public class Client extends Connection {
|
|||||||
public void sort(String key, String dstkey) throws JedisException {
|
public void sort(String key, String dstkey) throws JedisException {
|
||||||
sendCommand("SORT", key, "STORE", dstkey);
|
sendCommand("SORT", key, "STORE", dstkey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void brpop(String[] args) throws JedisException {
|
||||||
|
sendCommand("BRPOP", args);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -530,4 +530,16 @@ public class Jedis {
|
|||||||
client.sort(key, dstkey);
|
client.sort(key, dstkey);
|
||||||
return client.getIntegerReply();
|
return client.getIntegerReply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<String> brpop(int timeout, String... keys)
|
||||||
|
throws JedisException {
|
||||||
|
List<String> args = new ArrayList<String>();
|
||||||
|
for (String arg : keys) {
|
||||||
|
args.add(arg);
|
||||||
|
}
|
||||||
|
args.add(String.valueOf(timeout));
|
||||||
|
|
||||||
|
client.brpop(args.toArray(new String[args.size()]));
|
||||||
|
return client.getMultiBulkReply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -242,4 +242,26 @@ public class ListCommandsTest extends Assert {
|
|||||||
});
|
});
|
||||||
jedis.lpush("foo", "bar");
|
jedis.lpush("foo", "bar");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void brpop() throws JedisException {
|
||||||
|
List<String> result = jedis.brpop(2, "foo");
|
||||||
|
assertNull(result);
|
||||||
|
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
Jedis j = new Jedis("localhost");
|
||||||
|
j.connect();
|
||||||
|
List<String> result = j.brpop(0, "foo");
|
||||||
|
assertNotNull(result);
|
||||||
|
assertEquals(1, result.size());
|
||||||
|
assertEquals("bar", result.get(0));
|
||||||
|
} catch (Exception ex) {
|
||||||
|
fail(ex.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
jedis.lpush("foo", "bar");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user