keys command now return a set (instead of a list).

The assumption that keys are ordered seems to be false,on my laptop, with the keys 'foo' and 'foobar', keys('foo*') returns
['foobar', 'foo']
This commit is contained in:
Yaourt
2010-11-07 10:48:23 +01:00
parent 0beeddce5d
commit 424512d4e6
2 changed files with 8 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import java.io.IOException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -177,10 +178,11 @@ public class BinaryJedis implements BinaryJedisCommands {
* @param pattern
* @return Multi bulk reply
*/
public List<byte[]> keys(final byte[] pattern) {
public Set<byte[]> keys(final byte[] pattern) {
checkIsInMulti();
client.keys(pattern);
return client.getBinaryMultiBulkReply();
final HashSet<byte[]> keySet = new HashSet<byte[]>(client.getBinaryMultiBulkReply());
return keySet;
}
/**

View File

@@ -2,6 +2,7 @@ package redis.clients.jedis;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
@@ -142,10 +143,11 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @param pattern
* @return Multi bulk reply
*/
public List<String> keys(final String pattern) {
public Set<String> keys(final String pattern) {
checkIsInMulti();
client.keys(pattern);
return client.getMultiBulkReply();
final HashSet<String> keySet = new HashSet<String>( client.getMultiBulkReply());
return keySet;
}
/**