diff --git a/pom.xml b/pom.xml
index 80fe26f..e55a4a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,4 +12,17 @@
compile
-
\ No newline at end of file
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.0.2
+
+ 1.6
+ 1.6
+
+
+
+
+
diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java
index a20eecb..a01b2d4 100644
--- a/src/main/java/redis/clients/jedis/Client.java
+++ b/src/main/java/redis/clients/jedis/Client.java
@@ -340,8 +340,8 @@ public class Client extends Connection {
}
public void zrevrange(String key, int start, int end) throws JedisException {
- sendCommand("ZREVRANGE", key, String.valueOf(start), String
- .valueOf(end));
+ sendCommand("ZREVRANGE", key, String.valueOf(start),
+ String.valueOf(end));
}
public void zrangeWithScores(String key, int start, int end)
@@ -352,8 +352,8 @@ public class Client extends Connection {
public void zrevrangeWithScores(String key, int start, int end)
throws JedisException {
- sendCommand("ZREVRANGE", key, String.valueOf(start), String
- .valueOf(end), "WITHSCORES");
+ sendCommand("ZREVRANGE", key, String.valueOf(start),
+ String.valueOf(end), "WITHSCORES");
}
public void zcard(String key) throws JedisException {
@@ -383,4 +383,13 @@ public class Client extends Connection {
public void unwatch() throws JedisException {
sendCommand("UNWATCH");
}
-}
\ No newline at end of file
+
+ public void sort(String key) throws JedisException {
+ sendCommand("SORT", key);
+ }
+
+ public void sort(String key, SortingParams sortingParameters)
+ throws JedisException {
+ sendCommand("SORT", sortingParameters.getParams());
+ }
+}
diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java
index 784dd5d..2ca7c41 100644
--- a/src/main/java/redis/clients/jedis/Jedis.java
+++ b/src/main/java/redis/clients/jedis/Jedis.java
@@ -428,9 +428,7 @@ public class Jedis {
Set set = new LinkedHashSet();
Iterator iterator = membersWithScores.iterator();
while (iterator.hasNext()) {
- set
- .add(new Tuple(iterator.next(), Double.valueOf(iterator
- .next())));
+ set.add(new Tuple(iterator.next(), Double.valueOf(iterator.next())));
}
return set;
}
@@ -442,9 +440,7 @@ public class Jedis {
Set set = new LinkedHashSet();
Iterator iterator = membersWithScores.iterator();
while (iterator.hasNext()) {
- set
- .add(new Tuple(iterator.next(), Double.valueOf(iterator
- .next())));
+ set.add(new Tuple(iterator.next(), Double.valueOf(iterator.next())));
}
return set;
}
@@ -496,4 +492,15 @@ public class Jedis {
return client.getStatusCodeReply();
}
+ public List sort(String key) throws JedisException {
+ client.sort(key);
+ return client.getMultiBulkReply();
+ }
+
+ public List sort(String key, SortingParams sortingParameters)
+ throws JedisException {
+ client.sort(key, sortingParameters);
+ return client.getMultiBulkReply();
+ }
+
}
diff --git a/src/test/java/redis/clients/jedis/SortingParams.java b/src/test/java/redis/clients/jedis/SortingParams.java
new file mode 100644
index 0000000..96135a9
--- /dev/null
+++ b/src/test/java/redis/clients/jedis/SortingParams.java
@@ -0,0 +1,20 @@
+package redis.clients.jedis;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class SortingParams {
+ private String pattern = null;
+ private List params = new ArrayList();
+
+ public SortingParams by(String pattern) {
+ this.pattern = pattern;
+ params.add("BY");
+ params.add(pattern);
+ return this;
+ }
+
+ public String[] getParams() {
+ return params.toArray(new String[params.size()]);
+ }
+}
diff --git a/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java
new file mode 100644
index 0000000..251d2f6
--- /dev/null
+++ b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java
@@ -0,0 +1,65 @@
+package redis.clients.jedis.tests.commands;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.Assert;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisException;
+import redis.clients.jedis.SortingParams;
+
+public class SortingCommandsTest extends Assert {
+ private Jedis jedis;
+
+ @Before
+ public void setUp() throws Exception {
+ jedis = new Jedis("localhost");
+ jedis.connect();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ jedis.flushDB();
+ jedis.disconnect();
+ }
+
+ @Test
+ public void sort() throws JedisException {
+ jedis.lpush("foo", "3");
+ jedis.lpush("foo", "2");
+ jedis.lpush("foo", "1");
+
+ List result = jedis.sort("foo");
+
+ List expected = new ArrayList();
+ expected.add("1");
+ expected.add("2");
+ expected.add("3");
+
+ assertEquals(expected, result);
+ }
+
+ @Test
+ public void sortBy() throws JedisException {
+ jedis.lpush("foo", "3");
+ jedis.lpush("foo", "2");
+ jedis.lpush("foo", "1");
+
+ SortingParams sp = new SortingParams();
+ sp.by("bar_*");
+
+ List result = jedis.sort("foo", sp);
+
+ List expected = new ArrayList();
+ expected.add("foo_1");
+ expected.add("foo_2");
+ expected.add("foo_3");
+
+ assertEquals(expected, result);
+ }
+}
\ No newline at end of file