Implemented all the sorting parameters
This commit is contained in:
@@ -7,22 +7,22 @@ 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?
|
||||||
- Sorting
|
|
||||||
- Publish/Subscribe
|
- Publish/Subscribe
|
||||||
- Persistence control commands
|
- Persistence control commands
|
||||||
- Remote server control commands
|
- Remote server control commands
|
||||||
- The AUTH, SORT, BRPOP, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE commands
|
- The AUTH, BRPOP, 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!
|
||||||
|
|
||||||
## Ok.. so what's already done?
|
## Ok.. so what's already done?
|
||||||
|
- Sorting
|
||||||
- Connection handling (not AUTH)
|
- Connection handling (not AUTH)
|
||||||
- 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, BRPOP)
|
- Commands operating on lists (not BRPOP)
|
||||||
- Commands operating on sets
|
- Commands operating on sets
|
||||||
- Commands operating on sorted sets (not SORT, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE)
|
- Commands operating on sorted sets (not ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE)
|
||||||
- Transactions
|
- Transactions
|
||||||
|
|
||||||
## How do I use it?
|
## How do I use it?
|
||||||
|
|||||||
@@ -399,4 +399,18 @@ public class Client extends Connection {
|
|||||||
public void blpop(String[] args) throws JedisException {
|
public void blpop(String[] args) throws JedisException {
|
||||||
sendCommand("BLPOP", args);
|
sendCommand("BLPOP", args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void sort(String key, SortingParams sortingParameters, String dstkey)
|
||||||
|
throws JedisException {
|
||||||
|
List<String> args = new ArrayList<String>();
|
||||||
|
args.add(key);
|
||||||
|
args.addAll(sortingParameters.getParams());
|
||||||
|
args.add("STORE");
|
||||||
|
args.add(dstkey);
|
||||||
|
sendCommand("SORT", args.toArray(new String[args.size()]));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void sort(String key, String dstkey) throws JedisException {
|
||||||
|
sendCommand("SORT", key, "STORE", dstkey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -519,4 +519,15 @@ public class Jedis {
|
|||||||
client.blpop(args.toArray(new String[args.size()]));
|
client.blpop(args.toArray(new String[args.size()]));
|
||||||
return client.getMultiBulkReply();
|
return client.getMultiBulkReply();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int sort(String key, SortingParams sortingParameters, String dstkey)
|
||||||
|
throws JedisException {
|
||||||
|
client.sort(key, sortingParameters, dstkey);
|
||||||
|
return client.getIntegerReply();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int sort(String key, String dstkey) throws JedisException {
|
||||||
|
client.sort(key, dstkey);
|
||||||
|
return client.getIntegerReply();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -39,4 +39,12 @@ public class SortingParams {
|
|||||||
params.add("ALPHA");
|
params.add("ALPHA");
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SortingParams get(String... patterns) {
|
||||||
|
for (String pattern : patterns) {
|
||||||
|
params.add("GET");
|
||||||
|
params.add(pattern);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -124,4 +124,52 @@ public class SortingCommandsTest extends Assert {
|
|||||||
|
|
||||||
assertEquals(expected, result);
|
assertEquals(expected, result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sortGet() throws JedisException {
|
||||||
|
jedis.lpush("foo", "1");
|
||||||
|
jedis.lpush("foo", "2");
|
||||||
|
jedis.lpush("foo", "10");
|
||||||
|
|
||||||
|
jedis.set("bar1", "bar1");
|
||||||
|
jedis.set("bar2", "bar2");
|
||||||
|
jedis.set("bar10", "bar10");
|
||||||
|
|
||||||
|
jedis.set("car1", "car1");
|
||||||
|
jedis.set("car2", "car2");
|
||||||
|
jedis.set("car10", "car10");
|
||||||
|
|
||||||
|
SortingParams sp = new SortingParams();
|
||||||
|
sp.get("car*", "bar*");
|
||||||
|
|
||||||
|
List<String> result = jedis.sort("foo", sp);
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("car1");
|
||||||
|
expected.add("bar1");
|
||||||
|
expected.add("car2");
|
||||||
|
expected.add("bar2");
|
||||||
|
expected.add("car10");
|
||||||
|
expected.add("bar10");
|
||||||
|
|
||||||
|
assertEquals(expected, result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void sortStore() throws JedisException {
|
||||||
|
jedis.lpush("foo", "1");
|
||||||
|
jedis.lpush("foo", "2");
|
||||||
|
jedis.lpush("foo", "10");
|
||||||
|
|
||||||
|
int result = jedis.sort("foo", "result");
|
||||||
|
|
||||||
|
List<String> expected = new ArrayList<String>();
|
||||||
|
expected.add("1");
|
||||||
|
expected.add("2");
|
||||||
|
expected.add("10");
|
||||||
|
|
||||||
|
assertEquals(3, result);
|
||||||
|
assertEquals(expected, jedis.lrange("result", 0, 1000));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user