From bb54328802cb0a36cfafa46136ce5209fe6d14f5 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Sat, 7 Aug 2010 18:34:42 -0300 Subject: [PATCH] Implemented ZREMRANGEBYRANK --- README.md | 4 ++-- src/main/java/redis/clients/jedis/Client.java | 5 +++++ src/main/java/redis/clients/jedis/Jedis.java | 5 +++++ .../tests/commands/SortedSetCommandsTest.java | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6e820af..f14e591 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Jedis is a WORK IN PROGRESS. - Sharding - Persistence control commands - Remote server control commands -- The ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands +- The ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands But stay close because things are going fast and all this will be implemented soon! @@ -22,7 +22,7 @@ But stay close because things are going fast and all this will be implemented so - Commands operating on hashes - Commands operating on lists - Commands operating on sets -- Commands operating on sorted sets (not ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE) +- Commands operating on sorted sets (not ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE) - Transactions - Pipelining - Publish/Subscribe diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index 879a7f7..f08449d 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -463,4 +463,9 @@ public class Client extends Connection { .valueOf(max), "LIMIT", String.valueOf(offset), String .valueOf(count), "WITHSCORES"); } + + public void zremrangeByRank(String key, int start, int end) { + sendCommand("ZREMRANGEBYRANK", key, String.valueOf(start), String + .valueOf(end)); + } } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 3facf50..1456415 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -572,4 +572,9 @@ public class Jedis { } return set; } + + public int zremrangeByRank(String key, int start, int end) { + client.zremrangeByRank(key, start, end); + return client.getIntegerReply(); + } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java index a75b8c4..05aecf5 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java @@ -252,4 +252,22 @@ public class SortedSetCommandsTest extends JedisCommandTestBase { assertEquals(expected, range); } + + @Test + public void zremrangeByRank() { + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); + + int result = jedis.zremrangeByRank("foo", 0, 0); + + assertEquals(1, result); + + Set expected = new LinkedHashSet(); + expected.add("a"); + expected.add("b"); + + assertEquals(expected, jedis.zrange("foo", 0, 100)); + } } \ No newline at end of file