From dd6874aa7adc0c735be2c33e61eb657cb730c60a Mon Sep 17 00:00:00 2001 From: Yaourt Date: Mon, 8 Nov 2010 15:57:43 +0100 Subject: [PATCH] Hashes hkeys and hvals refactored to return a set instead of a list. It looks like the order is not guaranted, so a set seems much adapted than a list. --- .../java/redis/clients/jedis/BinaryJedis.java | 10 ++++---- .../clients/jedis/BinaryJedisCommands.java | 4 ++-- .../clients/jedis/BinaryShardedJedis.java | 4 ++-- src/main/java/redis/clients/jedis/Jedis.java | 10 ++++---- .../redis/clients/jedis/JedisCommands.java | 4 ++-- .../redis/clients/jedis/ShardedJedis.java | 4 ++-- .../tests/commands/HashesCommandsTest.java | 24 +++++++++---------- 7 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 93056a6..410cc6d 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -829,10 +829,11 @@ public class BinaryJedis implements BinaryJedisCommands { * @param key * @return All the fields names contained into a hash. */ - public List hkeys(final byte[] key) { + public Set hkeys(final byte[] key) { checkIsInMulti(); client.hkeys(key); - return client.getBinaryMultiBulkReply(); + final List lresult = client.getBinaryMultiBulkReply(); + return new HashSet(lresult); } /** @@ -843,10 +844,11 @@ public class BinaryJedis implements BinaryJedisCommands { * @param key * @return All the fields values contained into a hash. */ - public List hvals(final byte[] key) { + public Set hvals(final byte[] key) { checkIsInMulti(); client.hvals(key); - return client.getBinaryMultiBulkReply(); + final List lresult = client.getBinaryMultiBulkReply(); + return new HashSet(lresult); } /** diff --git a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java index 009efb1..3b593b3 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java @@ -60,9 +60,9 @@ public interface BinaryJedisCommands { Integer hlen(byte[] key); - List hkeys(byte[] key); + Set hkeys(byte[] key); - List hvals(byte[] key); + Set hvals(byte[] key); Map hgetAll(byte[] key); diff --git a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java index 4f6821d..f438226 100644 --- a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java @@ -164,12 +164,12 @@ public class BinaryShardedJedis extends Sharded implement return j.hlen(key); } - public List hkeys(byte[] key) { + public Set hkeys(byte[] key) { Jedis j = getShard(key); return j.hkeys(key); } - public List hvals(byte[] key) { + public Set hvals(byte[] key) { Jedis j = getShard(key); return j.hvals(key); } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index ee76869..3d46c18 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -758,10 +758,11 @@ public class Jedis extends BinaryJedis implements JedisCommands { * @param key * @return All the fields names contained into a hash. */ - public List hkeys(final String key) { + public Set hkeys(final String key) { checkIsInMulti(); client.hkeys(key); - return client.getMultiBulkReply(); + final List lresult = client.getMultiBulkReply(); + return new HashSet(lresult); } /** @@ -772,10 +773,11 @@ public class Jedis extends BinaryJedis implements JedisCommands { * @param key * @return All the fields values contained into a hash. */ - public List hvals(final String key) { + public Set hvals(final String key) { checkIsInMulti(); client.hvals(key); - return client.getMultiBulkReply(); + final List lresult = client.getMultiBulkReply(); + return new HashSet(lresult); } /** diff --git a/src/main/java/redis/clients/jedis/JedisCommands.java b/src/main/java/redis/clients/jedis/JedisCommands.java index 126e28d..0d7a1d4 100644 --- a/src/main/java/redis/clients/jedis/JedisCommands.java +++ b/src/main/java/redis/clients/jedis/JedisCommands.java @@ -58,9 +58,9 @@ public interface JedisCommands { Integer hlen(String key); - List hkeys(String key); + Set hkeys(String key); - List hvals(String key); + Set hvals(String key); Map hgetAll(String key); diff --git a/src/main/java/redis/clients/jedis/ShardedJedis.java b/src/main/java/redis/clients/jedis/ShardedJedis.java index 1fda008..0ffacb4 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedis.java +++ b/src/main/java/redis/clients/jedis/ShardedJedis.java @@ -150,12 +150,12 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { return j.hlen(key); } - public List hkeys(String key) { + public Set hkeys(String key) { Jedis j = getShard(key); return j.hkeys(key); } - public List hvals(String key) { + public Set hvals(String key) { Jedis j = getShard(key); return j.hvals(key); } diff --git a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java index 0dd6dda..567de4b 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java @@ -222,11 +222,11 @@ public class HashesCommandsTest extends JedisCommandTestBase { hash.put("car", "bar"); jedis.hmset("foo", hash); - List keys = jedis.hkeys("foo"); - List expected = new ArrayList(); + Set keys = jedis.hkeys("foo"); + Set expected = new HashSet(); expected.add("bar"); expected.add("car"); - assertTrue(JedisTest.isListAreEquals(expected, keys)); + assertTrue(JedisTest.isSetAreEquals(expected, keys)); //Binary Map bhash = new LinkedHashMap(); @@ -234,11 +234,11 @@ public class HashesCommandsTest extends JedisCommandTestBase { bhash.put(bcar, bbar); jedis.hmset(bfoo, bhash); - List bkeys = jedis.hkeys(bfoo); - List bexpected = new ArrayList(); + Set bkeys = jedis.hkeys(bfoo); + Set bexpected = new HashSet(); bexpected.add(bbar); bexpected.add(bcar); - assertTrue(JedisTest.isListAreEquals(bexpected, bkeys)); + assertTrue(JedisTest.isSetAreEquals(bexpected, bkeys)); } @@ -249,11 +249,11 @@ public class HashesCommandsTest extends JedisCommandTestBase { hash.put("car", "bar"); jedis.hmset("foo", hash); - List vals = jedis.hvals("foo"); - List expected = new ArrayList(); + Set vals = jedis.hvals("foo"); + Set expected = new HashSet(); expected.add("car"); expected.add("bar"); - assertTrue(JedisTest.isListAreEquals(expected, vals)); + assertTrue(JedisTest.isSetAreEquals(expected, vals)); //Binary Map bhash = new LinkedHashMap(); @@ -261,11 +261,11 @@ public class HashesCommandsTest extends JedisCommandTestBase { bhash.put(bcar, bbar); jedis.hmset(bfoo, bhash); - List bvals = jedis.hvals(bfoo); - List bexpected = new ArrayList(); + Set bvals = jedis.hvals(bfoo); + Set bexpected = new HashSet(); bexpected.add(bcar); bexpected.add(bbar); - assertTrue(JedisTest.isListAreEquals(bexpected, bvals)); + assertTrue(JedisTest.isSetAreEquals(bexpected, bvals)); }