Added commands operating on sorted sets

This commit is contained in:
Jonathan Leibiusky
2010-06-29 23:03:56 -03:00
parent 2c8583d282
commit cc26791c69
4 changed files with 284 additions and 3 deletions

View File

@@ -337,4 +337,82 @@ public class Jedis extends Client {
public String srandmember(String key) throws JedisException {
return sendCommand("SRANDMEMBER", key).getBulkReply();
}
public int zadd(String key, double score, String member)
throws JedisException {
return sendCommand("ZADD", key, String.valueOf(score), member)
.getIntegerReply();
}
public Set<String> zrange(String key, int start, int end)
throws JedisException {
List<String> members = sendCommand("ZRANGE", key,
String.valueOf(start), String.valueOf(end)).getMultiBulkReply();
return new LinkedHashSet<String>(members);
}
public int zrem(String key, String member) throws JedisException {
return sendCommand("ZREM", key, member).getIntegerReply();
}
public double zincrby(String key, double score, String member)
throws JedisException {
String newscore = sendCommand("ZINCRBY", key, String.valueOf(score),
member).getBulkReply();
return Double.valueOf(newscore);
}
public int zrank(String key, String member) throws JedisException {
return sendCommand("ZRANK", key, member).getIntegerReply();
}
public int zrevrank(String key, String member) throws JedisException {
return sendCommand("ZREVRANK", key, member).getIntegerReply();
}
public Set<String> zrevrange(String key, int start, int end)
throws JedisException {
List<String> members = sendCommand("ZREVRANGE", key,
String.valueOf(start), String.valueOf(end)).getMultiBulkReply();
return new LinkedHashSet<String>(members);
}
public Set<Tuple> zrangeWithScores(String key, int start, int end)
throws JedisException {
List<String> membersWithScores = sendCommand("ZRANGE", key,
String.valueOf(start), String.valueOf(end), "WITHSCORES")
.getMultiBulkReply();
Set<Tuple> set = new LinkedHashSet<Tuple>();
Iterator<String> iterator = membersWithScores.iterator();
while (iterator.hasNext()) {
set
.add(new Tuple(iterator.next(), Double.valueOf(iterator
.next())));
}
return set;
}
public Set<Tuple> zrevrangeWithScores(String key, int start, int end)
throws JedisException {
List<String> membersWithScores = sendCommand("ZREVRANGE", key,
String.valueOf(start), String.valueOf(end), "WITHSCORES")
.getMultiBulkReply();
Set<Tuple> set = new LinkedHashSet<Tuple>();
Iterator<String> iterator = membersWithScores.iterator();
while (iterator.hasNext()) {
set
.add(new Tuple(iterator.next(), Double.valueOf(iterator
.next())));
}
return set;
}
public int zcard(String key) throws JedisException {
return sendCommand("ZCARD", key).getIntegerReply();
}
public double zscore(String key, String member) throws JedisException {
String score = sendCommand("ZSCORE", key, member).getBulkReply();
return Double.valueOf(score);
}
}