From 5e2cdb9c088fc4c36bbf80d1d76ab414d973f4cc Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Fri, 29 Mar 2013 22:28:01 -0700 Subject: [PATCH 01/17] When writing a negative sign the write(char) method goes directly to the output stream and by-passes the internal RedisOutputStream buffer causing random corruption of the output. Casting the char to a byte ensures write(byte) is called which will properly buffer the output. --- src/main/java/redis/clients/util/RedisOutputStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/redis/clients/util/RedisOutputStream.java b/src/main/java/redis/clients/util/RedisOutputStream.java index 5708d43..5398f36 100644 --- a/src/main/java/redis/clients/util/RedisOutputStream.java +++ b/src/main/java/redis/clients/util/RedisOutputStream.java @@ -187,7 +187,7 @@ public final class RedisOutputStream extends FilterOutputStream { public void writeIntCrLf(int value) throws IOException { if (value < 0) { - write('-'); + write((byte)'-'); value = -value; } From 10c131bbf0629d5a1a30c7968926b9bee99cc949 Mon Sep 17 00:00:00 2001 From: Jungtaek Lim Date: Mon, 9 Dec 2013 10:54:53 +0900 Subject: [PATCH 02/17] BinaryJedis.multi(TransactionBlock) should not call discard when exception occurred * In BinaryJedis.multi(TransactionBlock), multi & exec already fired before exception occured, so sending discard has no effect, and made another error ** add unit test (error inside TransactionBlock) *** Transaction with error - Redis discards transaction automatically (execabort) *** Transaction with error - Redis doesn't roll back (force to execute all) --- .../java/redis/clients/jedis/BinaryJedis.java | 10 ++-- .../commands/TransactionCommandsTest.java | 49 ++++++++++++++++++- 2 files changed, 51 insertions(+), 8 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 92a99a2..a7f3dba 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -1685,13 +1685,9 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public List multi(final TransactionBlock jedisTransaction) { List results = null; jedisTransaction.setClient(client); - try { - client.multi(); - jedisTransaction.execute(); - results = jedisTransaction.exec(); - } catch (Exception ex) { - jedisTransaction.discard(); - } + client.multi(); + jedisTransaction.execute(); + results = jedisTransaction.exec(); return results; } diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index 565c1a4..8b1daa9 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -4,6 +4,7 @@ import java.io.IOException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Set; @@ -16,6 +17,7 @@ import redis.clients.jedis.Response; import redis.clients.jedis.Transaction; import redis.clients.jedis.TransactionBlock; import redis.clients.jedis.exceptions.JedisDataException; +import redis.clients.jedis.exceptions.JedisException; public class TransactionCommandsTest extends JedisCommandTestBase { final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -104,6 +106,50 @@ public class TransactionCommandsTest extends JedisCommandTestBase { assertEquals(expected, response); } + + @Test + public void multiBlockWithErrorRedisDiscardsTransaction() throws Exception { + // Transaction with error - Redis discards transaction automatically (Syntax Error, etc.) + TransactionBlock tb = new TransactionBlock() { + + @Override + public void execute() throws JedisException { + del("hello"); + hmset("hello", new HashMap()); + } + }; + + try { + jedis.multi(tb); + } catch (JedisDataException e) { + assertTrue(e.getMessage().contains("EXECABORT")); + } catch (Exception e) { + throw e; + } + } + + @Test + public void multiBlockWithErrorRedisForceToExecuteAllCommands() throws Exception { + // Transaction with error - Redis doesn't roll back (Type Error, Deletion of non-exist key, etc.) + jedis.del("hello2"); + TransactionBlock tb2 = new TransactionBlock() { + + @Override + public void execute() throws JedisException { + del("hello2"); + set("hello2", "hello"); + sadd("hello2", "hello2"); + } + }; + + List responses = jedis.multi(tb2); + assertEquals("OK", responses.get(1)); + assertEquals(JedisDataException.class, responses.get(2).getClass()); + + Exception exc = (JedisDataException) responses.get(2); + assertTrue(exc.getMessage().contains("WRONGTYPE")); + } + @Test public void watch() throws UnknownHostException, IOException { @@ -294,4 +340,5 @@ public class TransactionCommandsTest extends JedisCommandTestBase { assertNull(results); } -} \ No newline at end of file + +} From 3073f778b4edab3205b922c22f29cfed490c494e Mon Sep 17 00:00:00 2001 From: Jungtaek Lim Date: Sat, 21 Dec 2013 01:33:46 +0900 Subject: [PATCH 03/17] JedisPool / JedisSentinelPool resets returning object's state (watched, multi) * BinaryClient / BinaryJedis : added feature to reset its state (watched, multi) * JedisPool / JedisSentinelPool : calls new feature (reset state) when Jedis object returns to pool * Unit Test included --- .../redis/clients/jedis/BinaryClient.java | 20 +++++++- .../java/redis/clients/jedis/BinaryJedis.java | 5 ++ .../java/redis/clients/jedis/JedisPool.java | 1 + .../clients/jedis/JedisSentinelPool.java | 1 + .../clients/jedis/tests/JedisPoolTest.java | 22 +++++++++ .../jedis/tests/JedisSentinelPoolTest.java | 22 +++++++++ .../commands/TransactionCommandsTest.java | 46 +++++++++++++++++++ 7 files changed, 116 insertions(+), 1 deletion(-) diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index dff1e76..abf0dc3 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -29,15 +29,21 @@ public class BinaryClient extends Connection { } private boolean isInMulti; - + private String password; private long db; + private boolean isInWatch; + public boolean isInMulti() { return isInMulti; } + public boolean isInWatch() { + return isInWatch; + } + public BinaryClient(final String host) { super(host); } @@ -447,19 +453,23 @@ public class BinaryClient extends Connection { public void discard() { sendCommand(DISCARD); isInMulti = false; + isInWatch = false; } public void exec() { sendCommand(EXEC); isInMulti = false; + isInWatch = false; } public void watch(final byte[]... keys) { sendCommand(WATCH, keys); + isInWatch = true; } public void unwatch() { sendCommand(UNWATCH); + isInWatch = false; } public void sort(final byte[] key) { @@ -912,6 +922,14 @@ public class BinaryClient extends Connection { db = 0; super.disconnect(); } + + public void resetState() { + if (isInMulti()) + discard(); + + if (isInWatch()) + unwatch(); + } private void sendEvalCommand(Command command, byte[] script, byte[] keyCount, byte[][] params) { diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 92a99a2..6a318ce 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -1709,6 +1709,11 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public void disconnect() { client.disconnect(); } + + public void resetState() { + client.resetState(); + client.getAll(); + } public String watch(final byte[]... keys) { client.watch(keys); diff --git a/src/main/java/redis/clients/jedis/JedisPool.java b/src/main/java/redis/clients/jedis/JedisPool.java index 58212ba..946863b 100644 --- a/src/main/java/redis/clients/jedis/JedisPool.java +++ b/src/main/java/redis/clients/jedis/JedisPool.java @@ -84,6 +84,7 @@ public class JedisPool extends Pool { } public void returnResource(final Jedis resource) { + resource.resetState(); returnResourceObject(resource); } } diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index e4c6e3b..9190225 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -79,6 +79,7 @@ public class JedisSentinelPool extends Pool { } public void returnResource(final Jedis resource) { + resource.resetState(); returnResourceObject(resource); } diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index 652de92..c62e3bd 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -11,6 +11,7 @@ import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; +import redis.clients.jedis.Transaction; import redis.clients.jedis.exceptions.JedisConnectionException; public class JedisPoolTest extends Assert { @@ -176,4 +177,25 @@ public class JedisPoolTest extends Assert { pool0.returnResource(jedis); pool0.destroy(); } + + @Test + public void returnResourceShouldResetState() { + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisPool pool = new JedisPool(config, hnp.getHost(), hnp.getPort(), + 2000, "foobared"); + + Jedis jedis = pool.getResource(); + jedis.set("hello", "jedis"); + Transaction t = jedis.multi(); + t.set("hello", "world"); + pool.returnResource(jedis); + + Jedis jedis2 = pool.getResource(); + assertTrue(jedis == jedis2); + assertEquals("jedis", jedis2.get("hello")); + pool.returnResource(jedis2); + pool.destroy(); + } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index c3a72a0..c0752e2 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -11,8 +11,10 @@ import org.junit.Test; import redis.clients.jedis.DebugParams; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.JedisSentinelPool; +import redis.clients.jedis.Transaction; public class JedisSentinelPoolTest extends JedisTestBase { private static final String MASTER_NAME = "mymaster"; @@ -149,4 +151,24 @@ public class JedisSentinelPoolTest extends JedisTestBase { } } + @Test + public void returnResourceShouldResetState() { + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, + config, 1000, "foobared", 2); + + Jedis jedis = pool.getResource(); + jedis.set("hello", "jedis"); + Transaction t = jedis.multi(); + t.set("hello", "world"); + pool.returnResource(jedis); + + Jedis jedis2 = pool.getResource(); + assertTrue(jedis == jedis2); + assertEquals("jedis", jedis2.get("hello")); + pool.returnResource(jedis2); + pool.destroy(); + } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index 565c1a4..fb52063 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -12,10 +12,12 @@ import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.Protocol.Keyword; +import redis.clients.jedis.Pipeline; import redis.clients.jedis.Response; import redis.clients.jedis.Transaction; import redis.clients.jedis.TransactionBlock; import redis.clients.jedis.exceptions.JedisDataException; +import redis.clients.jedis.exceptions.JedisException; public class TransactionCommandsTest extends JedisCommandTestBase { final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -294,4 +296,48 @@ public class TransactionCommandsTest extends JedisCommandTestBase { assertNull(results); } + + @Test + public void testResetStateWhenInMulti() { + jedis.auth("foobared"); + + Transaction t = jedis.multi(); + t.set("foooo", "barrr"); + + jedis.resetState(); + assertEquals(null, jedis.get("foooo")); + } + + @Test + public void testResetStateWhenInMultiWithinPipeline() { + jedis.auth("foobared"); + + Pipeline p = jedis.pipelined(); + p.multi(); + p.set("foooo", "barrr"); + + jedis.resetState(); + assertEquals(null, jedis.get("foooo")); + } + + @Test + public void testResetStateWhenInWatch() { + jedis.watch("mykey", "somekey"); + + // state reset : unwatch + jedis.resetState(); + + Transaction t = jedis.multi(); + + nj.connect(); + nj.auth("foobared"); + nj.set("mykey", "bar"); + nj.disconnect(); + + t.set("mykey", "foo"); + List resp = t.exec(); + assertNotNull(resp); + assertEquals(1, resp.size()); + assertEquals("foo", jedis.get("mykey")); + } } \ No newline at end of file From f11c1622de1d529cad509b7793977714229f4883 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Thu, 16 Jan 2014 21:57:22 -0700 Subject: [PATCH 04/17] Allow safe multi-threaded access to JedisPubSub If Thread A calls a subscribe method on Jedis it will block on a socket read call waiting for messages or subscription notifications. Thread B is now free to call additional methods on JedisPubSub to change the current subscriptions that thread A is waiting for. Essentially Thread A will do reads on the socket and Thread B will do writes. An issue occurs in that while Thread A is doing reads, in the getObjectMultiBulkReply() method there is an implicit flush() call. This means both Thread A and Thread B may do a write to the socket. Under this situation if Thread A does a flush while Thread B is writing the internal buffer will be corrupted. The fix is to make thread A never call flush(). This allows Thread A to be solely reads and Thread B to be solely writes. Additionally since Thread B is sending commands, the internal pipeline count is incremented and never decremented. So when Thread A terminates it's read it resets the pipeline count. --- .../java/redis/clients/jedis/Connection.java | 10 +++++- .../java/redis/clients/jedis/JedisPubSub.java | 34 +++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index 1c42b94..9d4c762 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -202,11 +202,19 @@ public class Connection { return (List) Protocol.read(inputStream); } + public void resetPipelinedCount() { + pipelinedCommands = 0; + } + @SuppressWarnings("unchecked") + public List getRawObjectMultiBulkReply() { + return (List) Protocol.read(inputStream); + } + public List getObjectMultiBulkReply() { flush(); pipelinedCommands--; - return (List) Protocol.read(inputStream); + return getRawObjectMultiBulkReply(); } @SuppressWarnings("unchecked") diff --git a/src/main/java/redis/clients/jedis/JedisPubSub.java b/src/main/java/redis/clients/jedis/JedisPubSub.java index d07a409..41ae53b 100644 --- a/src/main/java/redis/clients/jedis/JedisPubSub.java +++ b/src/main/java/redis/clients/jedis/JedisPubSub.java @@ -16,7 +16,7 @@ import redis.clients.util.SafeEncoder; public abstract class JedisPubSub { private int subscribedChannels = 0; - private Client client; + private volatile Client client; public abstract void onMessage(String channel, String message); @@ -41,26 +41,46 @@ public abstract class JedisPubSub { } public void unsubscribe(String... channels) { + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub is not subscribed to a Jedis instance."); + } client.unsubscribe(channels); client.flush(); } public void subscribe(String... channels) { + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub is not subscribed to a Jedis instance."); + } client.subscribe(channels); client.flush(); } public void psubscribe(String... patterns) { + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub is not subscribed to a Jedis instance."); + } client.psubscribe(patterns); client.flush(); } public void punsubscribe() { + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub is not subscribed to a Jedis instance."); + } client.punsubscribe(); client.flush(); } public void punsubscribe(String... patterns) { + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub is not subscribed to a Jedis instance."); + } client.punsubscribe(patterns); client.flush(); } @@ -85,7 +105,7 @@ public abstract class JedisPubSub { private void process(Client client) { do { - List reply = client.getObjectMultiBulkReply(); + List reply = client.getRawObjectMultiBulkReply(); final Object firstObj = reply.get(0); if (!(firstObj instanceof byte[])) { throw new JedisException("Unknown message type: " + firstObj); @@ -138,9 +158,17 @@ public abstract class JedisPubSub { throw new JedisException("Unknown message type: " + firstObj); } } while (isSubscribed()); + + /* Invalidate instance since this thread is no longer listening */ + this.client = null; + + /* Reset pipeline count because subscribe() calls would have + * increased it but nothing decremented it. + */ + client.resetPipelinedCount(); } public int getSubscribedChannels() { return subscribedChannels; } -} \ No newline at end of file +} From 5f5b80e6e33f93b99874de71174a2297256d0abe Mon Sep 17 00:00:00 2001 From: Mayank Kakodkar Date: Thu, 23 Jan 2014 21:03:46 +0530 Subject: [PATCH 05/17] Corrected documentation for Jedis.get(), it returns a Java null, not (nil) --- src/main/java/redis/clients/jedis/Jedis.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index f5f6bdd..2503d50 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -71,8 +71,8 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } /** - * Get the value of the specified key. If the key does not exist the special - * value 'nil' is returned. If the value stored at key is not a string an + * Get the value of the specified key. If the key does not exist null + * is returned. If the value stored at key is not a string an * error is returned because GET can only handle string values. *

* Time complexity: O(1) From b05d9adfb0c4a9fe430149bc75f0615ad9a56f97 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Sun, 26 Jan 2014 13:53:34 -0300 Subject: [PATCH 06/17] Change zadd parameter order to allow duplicated scoremembers but not members --- .../redis/clients/jedis/BinaryClient.java | 27 +++++++-------- .../java/redis/clients/jedis/BinaryJedis.java | 2 +- .../clients/jedis/BinaryJedisCommands.java | 34 ++++++++++--------- .../clients/jedis/BinaryShardedJedis.java | 2 +- src/main/java/redis/clients/jedis/Client.java | 18 +++++----- .../java/redis/clients/jedis/Commands.java | 4 +-- src/main/java/redis/clients/jedis/Jedis.java | 8 ++--- .../redis/clients/jedis/JedisCluster.java | 2 +- .../redis/clients/jedis/JedisCommands.java | 2 +- .../redis/clients/jedis/PipelineBase.java | 2 +- .../redis/clients/jedis/ShardedJedis.java | 8 ++--- .../tests/commands/VariadicCommandsTest.java | 20 +++++------ 12 files changed, 66 insertions(+), 63 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index f1b167a..5e20ce1 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -376,23 +376,22 @@ public class BinaryClient extends Connection { public void zadd(final byte[] key, final double score, final byte[] member) { sendCommand(ZADD, key, toByteArray(score), member); } + + public void zaddBinary(final byte[] key, final Map< byte[], Double> scoreMembers) { + + ArrayList args = new ArrayList(scoreMembers.size() * 2 + 1); + args.add(key); - public void zaddBinary(final byte[] key, Map scoreMembers) { - ArrayList args = new ArrayList( - scoreMembers.size() * 2 + 1); + for (Map.Entry entry : scoreMembers.entrySet()) { + args.add(toByteArray(entry.getValue())); + args.add(entry.getKey()); + } - args.add(key); + byte[][] argsArray = new byte[args.size()][]; + args.toArray(argsArray); - for (Map.Entry entry : scoreMembers.entrySet()) { - args.add(toByteArray(entry.getKey())); - args.add(entry.getValue()); - } - - byte[][] argsArray = new byte[args.size()][]; - args.toArray(argsArray); - - sendCommand(ZADD, argsArray); - } + sendCommand(ZADD, argsArray); + } public void zrange(final byte[] key, final long start, final long end) { sendCommand(ZRANGE, key, toByteArray(start), toByteArray(end)); diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 7c7debf..0aebaf5 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -1502,7 +1502,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey return client.getIntegerReply(); } - public Long zadd(final byte[] key, final Map scoreMembers) { + public Long zadd(final byte[] key, final Map scoreMembers) { checkIsInMulti(); client.zaddBinary(key, scoreMembers); return client.getIntegerReply(); diff --git a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java index aed3011..3e44f9c 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java @@ -5,6 +5,8 @@ import java.util.List; import java.util.Map; import java.util.Set; +import redis.clients.jedis.BinaryClient.LIST_POSITION; + /** * Common interface for sharded and non-sharded BinaryJedis */ @@ -114,8 +116,8 @@ public interface BinaryJedisCommands { Long strlen(byte[] key); Long zadd(byte[] key, double score, byte[] member); - - Long zadd(byte[] key, Map scoreMembers); + + Long zadd(byte[] key, Map scoreMembers); Set zrange(byte[] key, long start, long end); @@ -157,45 +159,45 @@ public interface BinaryJedisCommands { Set zrevrangeByScore(byte[] key, byte[] max, byte[] min); Set zrangeByScore(byte[] key, byte[] min, byte[] max, int offset, - int count); + int count); Set zrevrangeByScore(byte[] key, double max, double min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(byte[] key, double min, double max); Set zrevrangeByScoreWithScores(byte[] key, double max, double min); Set zrangeByScoreWithScores(byte[] key, double min, double max, - int offset, int count); - + int offset, int count); + Set zrevrangeByScore(byte[] key, byte[] max, byte[] min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(byte[] key, byte[] min, byte[] max); - + Set zrevrangeByScoreWithScores(byte[] key, byte[] max, byte[] min); Set zrangeByScoreWithScores(byte[] key, byte[] min, byte[] max, - int offset, int count); + int offset, int count); Set zrevrangeByScoreWithScores(byte[] key, double max, double min, - int offset, int count); - + int offset, int count); + Set zrevrangeByScoreWithScores(byte[] key, byte[] max, byte[] min, - int offset, int count); + int offset, int count); Long zremrangeByRank(byte[] key, long start, long end); Long zremrangeByScore(byte[] key, double start, double end); - + Long zremrangeByScore(byte[] key, byte[] start, byte[] end); Long linsert(byte[] key, Client.LIST_POSITION where, byte[] pivot, - byte[] value); - + byte[] value); + Long lpushx(byte[] key, byte[]... arg); - + Long rpushx(byte[] key, byte[]... arg); List blpop(byte[] arg); diff --git a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java index da934a4..382d48b 100644 --- a/src/main/java/redis/clients/jedis/BinaryShardedJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryShardedJedis.java @@ -295,7 +295,7 @@ public class BinaryShardedJedis extends Sharded return j.zadd(key, score, member); } - public Long zadd(byte[] key, Map scoreMembers) { + public Long zadd(byte[] key, Map scoreMembers) { Jedis j = getShard(key); return j.zadd(key, scoreMembers); } diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index 1353a1b..a2ec464 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -709,17 +709,19 @@ public class Client extends BinaryClient implements Commands { public void scriptLoad(String script) { scriptLoad(SafeEncoder.encode(script)); } + + public void zadd(String key, Map scoreMembers) { + + HashMap binaryScoreMembers = new HashMap(); - public void zadd(String key, Map scoreMembers) { - HashMap binaryScoreMembers = new HashMap(); - - for (Map.Entry entry : scoreMembers.entrySet()) { - binaryScoreMembers.put(entry.getKey(), - SafeEncoder.encode(entry.getValue())); + for (Map.Entry entry : scoreMembers.entrySet()) { + + binaryScoreMembers.put(SafeEncoder.encode(entry.getKey()), entry.getValue()); + } + + zaddBinary(SafeEncoder.encode(key), binaryScoreMembers); } - zaddBinary(SafeEncoder.encode(key), binaryScoreMembers); - } public void objectRefcount(String key) { objectRefcount(SafeEncoder.encode(key)); diff --git a/src/main/java/redis/clients/jedis/Commands.java b/src/main/java/redis/clients/jedis/Commands.java index e4e22ec..c6b26f7 100644 --- a/src/main/java/redis/clients/jedis/Commands.java +++ b/src/main/java/redis/clients/jedis/Commands.java @@ -143,8 +143,8 @@ public interface Commands { public void srandmember(final String key); public void zadd(final String key, final double score, final String member); - - public void zadd(final String key, final Map scoreMembers); + + public void zadd(final String key, final Map scoreMembers); public void zrange(final String key, final long start, final long end); diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 2503d50..cdc3918 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -1415,10 +1415,10 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand return client.getIntegerReply(); } - public Long zadd(final String key, final Map scoreMembers) { - checkIsInMulti(); - client.zadd(key, scoreMembers); - return client.getIntegerReply(); + public Long zadd(final String key, final Map scoreMembers) { + checkIsInMulti(); + client.zadd(key, scoreMembers); + return client.getIntegerReply(); } public Set zrange(final String key, final long start, final long end) { diff --git a/src/main/java/redis/clients/jedis/JedisCluster.java b/src/main/java/redis/clients/jedis/JedisCluster.java index ed60b5a..ffa1115 100644 --- a/src/main/java/redis/clients/jedis/JedisCluster.java +++ b/src/main/java/redis/clients/jedis/JedisCluster.java @@ -635,7 +635,7 @@ public class JedisCluster implements JedisCommands, BasicCommands { } @Override - public Long zadd(final String key, final Map scoreMembers) { + public Long zadd(final String key, final Map scoreMembers) { return new JedisClusterCommand(connectionHandler, timeout, maxRedirections) { @Override diff --git a/src/main/java/redis/clients/jedis/JedisCommands.java b/src/main/java/redis/clients/jedis/JedisCommands.java index d027361..4f9af0d 100644 --- a/src/main/java/redis/clients/jedis/JedisCommands.java +++ b/src/main/java/redis/clients/jedis/JedisCommands.java @@ -115,7 +115,7 @@ public interface Long zadd(String key, double score, String member); - Long zadd(String key, Map scoreMembers); + Long zadd(String key, Map scoreMembers); Set zrange(String key, long start, long end); diff --git a/src/main/java/redis/clients/jedis/PipelineBase.java b/src/main/java/redis/clients/jedis/PipelineBase.java index b89ea07..9ebcc9e 100644 --- a/src/main/java/redis/clients/jedis/PipelineBase.java +++ b/src/main/java/redis/clients/jedis/PipelineBase.java @@ -654,7 +654,7 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.LONG); } - public Response zadd(String key, Map scoreMembers) { + public Response zadd(String key, Map scoreMembers) { getClient(key).zadd(key, scoreMembers); return getResponse(BuilderFactory.LONG); } diff --git a/src/main/java/redis/clients/jedis/ShardedJedis.java b/src/main/java/redis/clients/jedis/ShardedJedis.java index a63a7d0..f3d2f72 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedis.java +++ b/src/main/java/redis/clients/jedis/ShardedJedis.java @@ -326,10 +326,10 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { Jedis j = getShard(key); return j.zadd(key, score, member); } - - public Long zadd(String key, Map scoreMembers) { - Jedis j = getShard(key); - return j.zadd(key, scoreMembers); + + public Long zadd(String key, Map scoreMembers) { + Jedis j = getShard(key); + return j.zadd(key, scoreMembers); } public Set zrange(String key, long start, long end) { diff --git a/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java index fd63859..5e84ec9 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java @@ -117,30 +117,30 @@ public class VariadicCommandsTest extends JedisCommandTestBase { @Test public void zadd() { - Map scoreMembers = new HashMap(); - scoreMembers.put(1d, "bar"); - scoreMembers.put(10d, "foo"); + Map scoreMembers = new HashMap(); + scoreMembers.put("bar", 1d); + scoreMembers.put("foo", 10d); long status = jedis.zadd("foo", scoreMembers); assertEquals(2, status); scoreMembers.clear(); - scoreMembers.put(0.1d, "car"); - scoreMembers.put(2d, "bar"); + scoreMembers.put("car", 0.1d); + scoreMembers.put("bar", 2d); status = jedis.zadd("foo", scoreMembers); assertEquals(1, status); - Map bscoreMembers = new HashMap(); - bscoreMembers.put(1d, bbar); - bscoreMembers.put(10d, bfoo); + Map bscoreMembers = new HashMap(); + bscoreMembers.put(bbar, 1d); + bscoreMembers.put(bfoo, 10d); status = jedis.zadd(bfoo, bscoreMembers); assertEquals(2, status); bscoreMembers.clear(); - bscoreMembers.put(0.1d, bcar); - bscoreMembers.put(2d, bbar); + bscoreMembers.put(bcar, 0.1d); + bscoreMembers.put(bbar, 2d); status = jedis.zadd(bfoo, bscoreMembers); assertEquals(1, status); From 642cec66d5d833490bc7b17adbdfa37e46a2c676 Mon Sep 17 00:00:00 2001 From: Jungtaek Lim Date: Mon, 27 Jan 2014 12:47:21 +0900 Subject: [PATCH 07/17] Fix ControlCommandsTest to don't hang from monitor test because of timing issue * In monitor command test, input thread waits for monitor thread to monitor ** Monitor command test sometimes hang when input thread run earlier than monitor thread. --- .../clients/jedis/tests/commands/ControlCommandsTest.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java index 832cd6c..bba56c1 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java @@ -61,6 +61,11 @@ public class ControlCommandsTest extends JedisCommandTestBase { public void monitor() { new Thread(new Runnable() { public void run() { + try { + // sleep 100ms to make sure that monitor thread runs first + Thread.sleep(100); + } catch (InterruptedException e) { + } Jedis j = new Jedis("localhost"); j.auth("foobared"); for (int i = 0; i < 5; i++) { From 1844e29569635d5d005ae36f55f3e67cae67b863 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Tue, 28 Jan 2014 11:04:21 -0300 Subject: [PATCH 08/17] Fix typo in cluster snippet from README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b5b7219..0a05970 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Redis cluster [specification](http://redis.io/topics/cluster-spec) (still under ```java Set jedisClusterNodes = new HashSet(); //Jedis Cluster will attempt to discover cluster nodes automatically -jedisClusterNode.add(new HostAndPort("127.0.0.1", 7379)); +jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7379)); JedisCluster jc = new JedisCluster(jedisClusterNode); jc.set("foo", "bar"); String value = jc.get("foo"); From 105ca9f5bb813ff71ccf16450dcb12796955f306 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Fri, 31 Jan 2014 11:24:06 -0500 Subject: [PATCH 09/17] Reformat all files in the project according to java conventions. --- .../jedis/AdvancedBinaryJedisCommands.java | 1 - .../clients/jedis/AdvancedJedisCommands.java | 3 +- .../redis/clients/jedis/BasicCommands.java | 4 +- .../clients/jedis/BasicRedisPipeline.java | 1 - .../redis/clients/jedis/BinaryClient.java | 468 ++++--- .../java/redis/clients/jedis/BinaryJedis.java | 469 ++++--- .../clients/jedis/BinaryJedisCommands.java | 32 +- .../clients/jedis/BinaryJedisPubSub.java | 114 +- .../clients/jedis/BinaryRedisPipeline.java | 60 +- .../jedis/BinaryScriptingCommands.java | 3 +- src/main/java/redis/clients/jedis/BitOP.java | 5 +- .../redis/clients/jedis/BuilderFactory.java | 369 ++--- src/main/java/redis/clients/jedis/Client.java | 197 +-- .../java/redis/clients/jedis/Commands.java | 4 +- .../java/redis/clients/jedis/Connection.java | 252 ++-- .../java/redis/clients/jedis/HostAndPort.java | 77 +- src/main/java/redis/clients/jedis/Jedis.java | 438 +++--- .../clients/jedis/JedisClusterCommand.java | 87 +- .../jedis/JedisClusterConnectionHandler.java | 128 +- .../redis/clients/jedis/JedisCommands.java | 43 +- .../redis/clients/jedis/JedisMonitor.java | 12 +- .../java/redis/clients/jedis/JedisPool.java | 4 +- .../redis/clients/jedis/JedisPoolConfig.java | 10 +- .../java/redis/clients/jedis/JedisPubSub.java | 162 +-- .../jedis/JedisRandomConnectionHandler.java | 21 +- .../clients/jedis/JedisSentinelPool.java | 15 +- .../JedisSlotBasedConnectionHandler.java | 74 +- .../clients/jedis/MultiKeyBinaryCommands.java | 1 - .../jedis/MultiKeyBinaryRedisPipeline.java | 9 +- .../redis/clients/jedis/MultiKeyCommands.java | 4 +- .../jedis/MultiKeyCommandsPipeline.java | 8 +- .../clients/jedis/MultiKeyPipelineBase.java | 356 ++--- .../java/redis/clients/jedis/Pipeline.java | 137 +- .../redis/clients/jedis/PipelineBase.java | 1188 +++++++++-------- .../redis/clients/jedis/PipelineBlock.java | 1 - .../java/redis/clients/jedis/Protocol.java | 63 +- .../java/redis/clients/jedis/Queable.java | 18 +- .../redis/clients/jedis/RedisPipeline.java | 45 +- .../java/redis/clients/jedis/Response.java | 38 +- .../redis/clients/jedis/ShardedJedis.java | 44 +- .../clients/jedis/ShardedJedisPipeline.java | 68 +- .../redis/clients/jedis/SortingParams.java | 56 +- .../java/redis/clients/jedis/Transaction.java | 75 +- .../redis/clients/jedis/TransactionBlock.java | 2 +- src/main/java/redis/clients/jedis/Tuple.java | 86 +- .../java/redis/clients/jedis/ZParams.java | 28 +- .../exceptions/JedisAskDataException.java | 19 +- .../exceptions/JedisClusterException.java | 13 +- .../JedisClusterMaxRedirectionsException.java | 13 +- .../exceptions/JedisConnectionException.java | 6 +- .../jedis/exceptions/JedisDataException.java | 6 +- .../jedis/exceptions/JedisException.java | 7 +- .../exceptions/JedisMovedDataException.java | 17 +- .../exceptions/JedisRedirectionException.java | 42 +- src/main/java/redis/clients/util/Hashing.java | 40 +- .../redis/clients/util/JedisByteHashMap.java | 140 +- .../redis/clients/util/JedisClusterCRC16.java | 34 +- .../java/redis/clients/util/MurmurHash.java | 126 +- .../redis/clients/util/RedisInputStream.java | 118 +- .../redis/clients/util/RedisOutputStream.java | 330 +++-- .../java/redis/clients/util/SafeEncoder.java | 42 +- .../java/redis/clients/util/ShardInfo.java | 6 +- src/main/java/redis/clients/util/Sharded.java | 86 +- src/main/java/redis/clients/util/Slowlog.java | 80 +- .../jedis/tests/BuilderFactoryTest.java | 4 +- .../clients/jedis/tests/ConnectionTest.java | 18 +- .../tests/FragmentedByteArrayInputStream.java | 20 +- .../clients/jedis/tests/JedisPoolTest.java | 116 +- .../jedis/tests/JedisSentinelPoolTest.java | 35 +- .../clients/jedis/tests/JedisTestBase.java | 20 +- .../clients/jedis/tests/PipeliningTest.java | 476 +++---- .../clients/jedis/tests/ProtocolTest.java | 94 +- .../clients/jedis/tests/ShardedJedisTest.java | 442 +++--- .../tests/benchmark/GetSetBenchmark.java | 2 +- .../tests/benchmark/HashingBenchmark.java | 45 +- .../benchmark/PipelinedGetSetBenchmark.java | 32 +- .../tests/benchmark/SafeEncoderBenchmark.java | 32 +- .../tests/benchmark/ShardedBenchmark.java | 32 +- .../commands/BinaryValuesCommandsTest.java | 286 ++-- .../jedis/tests/commands/BitCommandsTest.java | 102 +- .../tests/commands/ClusterCommandsTest.java | 57 +- .../ConnectionHandlingCommandsTest.java | 6 +- .../tests/commands/ControlCommandsTest.java | 14 +- .../tests/commands/HashesCommandsTest.java | 6 +- .../tests/commands/JedisCommandTestBase.java | 94 +- .../tests/commands/ListCommandsTest.java | 748 ++++++----- .../PublishSubscribeCommandsTest.java | 23 +- .../tests/commands/ScriptingCommandsTest.java | 83 +- .../jedis/tests/commands/SetCommandsTest.java | 516 ++++--- .../tests/commands/SlowlogCommandsTest.java | 68 +- .../tests/commands/SortedSetCommandsTest.java | 1098 +++++++-------- .../tests/commands/SortingCommandsTest.java | 362 ++--- .../commands/StringValuesCommandsTest.java | 204 +-- .../commands/TransactionCommandsTest.java | 65 +- .../tests/commands/VariadicCommandsTest.java | 266 ++-- 95 files changed, 5946 insertions(+), 5825 deletions(-) diff --git a/src/main/java/redis/clients/jedis/AdvancedBinaryJedisCommands.java b/src/main/java/redis/clients/jedis/AdvancedBinaryJedisCommands.java index 51b4879..224dd11 100644 --- a/src/main/java/redis/clients/jedis/AdvancedBinaryJedisCommands.java +++ b/src/main/java/redis/clients/jedis/AdvancedBinaryJedisCommands.java @@ -1,6 +1,5 @@ package redis.clients.jedis; - import java.util.List; public interface AdvancedBinaryJedisCommands { diff --git a/src/main/java/redis/clients/jedis/AdvancedJedisCommands.java b/src/main/java/redis/clients/jedis/AdvancedJedisCommands.java index 5ed50eb..45e825b 100644 --- a/src/main/java/redis/clients/jedis/AdvancedJedisCommands.java +++ b/src/main/java/redis/clients/jedis/AdvancedJedisCommands.java @@ -1,9 +1,8 @@ package redis.clients.jedis; -import redis.clients.util.Slowlog; - import java.util.List; +import redis.clients.util.Slowlog; public interface AdvancedJedisCommands { List configGet(String pattern); diff --git a/src/main/java/redis/clients/jedis/BasicCommands.java b/src/main/java/redis/clients/jedis/BasicCommands.java index 5b7e995..c201e41 100644 --- a/src/main/java/redis/clients/jedis/BasicCommands.java +++ b/src/main/java/redis/clients/jedis/BasicCommands.java @@ -27,7 +27,7 @@ public interface BasicCommands { String shutdown(); String info(); - + String info(String section); String slaveof(String host, int port); @@ -39,6 +39,6 @@ public interface BasicCommands { String debug(DebugParams params); String configResetStat(); - + Long waitReplicas(int replicas, long timeout); } diff --git a/src/main/java/redis/clients/jedis/BasicRedisPipeline.java b/src/main/java/redis/clients/jedis/BasicRedisPipeline.java index a667ce9..bec6e8c 100644 --- a/src/main/java/redis/clients/jedis/BasicRedisPipeline.java +++ b/src/main/java/redis/clients/jedis/BasicRedisPipeline.java @@ -1,6 +1,5 @@ package redis.clients.jedis; - /** * Pipelined responses for all of the low level, non key related commands */ diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index 56f97af..e80754f 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -1,22 +1,26 @@ package redis.clients.jedis; -import redis.clients.jedis.Protocol.Command; -import redis.clients.jedis.Protocol.Keyword; -import redis.clients.util.SafeEncoder; +import static redis.clients.jedis.Protocol.toByteArray; +import static redis.clients.jedis.Protocol.Command.*; +import static redis.clients.jedis.Protocol.Keyword.ENCODING; +import static redis.clients.jedis.Protocol.Keyword.IDLETIME; +import static redis.clients.jedis.Protocol.Keyword.LEN; +import static redis.clients.jedis.Protocol.Keyword.LIMIT; +import static redis.clients.jedis.Protocol.Keyword.NO; +import static redis.clients.jedis.Protocol.Keyword.ONE; +import static redis.clients.jedis.Protocol.Keyword.REFCOUNT; +import static redis.clients.jedis.Protocol.Keyword.RESET; +import static redis.clients.jedis.Protocol.Keyword.STORE; +import static redis.clients.jedis.Protocol.Keyword.WITHSCORES; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; -import static redis.clients.jedis.Protocol.Command.*; -import static redis.clients.jedis.Protocol.Command.EXISTS; -import static redis.clients.jedis.Protocol.Command.PSUBSCRIBE; -import static redis.clients.jedis.Protocol.Command.PUNSUBSCRIBE; -import static redis.clients.jedis.Protocol.Command.SUBSCRIBE; -import static redis.clients.jedis.Protocol.Command.UNSUBSCRIBE; -import static redis.clients.jedis.Protocol.Keyword.*; -import static redis.clients.jedis.Protocol.toByteArray; +import redis.clients.jedis.Protocol.Command; +import redis.clients.jedis.Protocol.Keyword; +import redis.clients.util.SafeEncoder; public class BinaryClient extends Connection { public enum LIST_POSITION { @@ -29,19 +33,19 @@ public class BinaryClient extends Connection { } private boolean isInMulti; - + private String password; private long db; - private boolean isInWatch; + private boolean isInWatch; public boolean isInMulti() { return isInMulti; } public boolean isInWatch() { - return isInWatch; + return isInWatch; } public BinaryClient(final String host) { @@ -88,11 +92,11 @@ public class BinaryClient extends Connection { sendCommand(Command.SET, key, value); } - public void set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final long time) { - sendCommand(Command.SET, key, value, nxxx, expx, toByteArray(time)); + public void set(final byte[] key, final byte[] value, final byte[] nxxx, + final byte[] expx, final long time) { + sendCommand(Command.SET, key, value, nxxx, expx, toByteArray(time)); } - public void get(final byte[] key) { sendCommand(Command.GET, key); } @@ -382,22 +386,24 @@ public class BinaryClient extends Connection { public void zadd(final byte[] key, final double score, final byte[] member) { sendCommand(ZADD, key, toByteArray(score), member); } - - public void zaddBinary(final byte[] key, final Map< byte[], Double> scoreMembers) { - - ArrayList args = new ArrayList(scoreMembers.size() * 2 + 1); - args.add(key); - for (Map.Entry entry : scoreMembers.entrySet()) { - args.add(toByteArray(entry.getValue())); - args.add(entry.getKey()); - } + public void zaddBinary(final byte[] key, + final Map scoreMembers) { - byte[][] argsArray = new byte[args.size()][]; - args.toArray(argsArray); + ArrayList args = new ArrayList( + scoreMembers.size() * 2 + 1); + args.add(key); - sendCommand(ZADD, argsArray); - } + for (Map.Entry entry : scoreMembers.entrySet()) { + args.add(toByteArray(entry.getValue())); + args.add(entry.getKey()); + } + + byte[][] argsArray = new byte[args.size()][]; + args.toArray(argsArray); + + sendCommand(ZADD, argsArray); + } public void zrange(final byte[] key, final long start, final long end) { sendCommand(ZRANGE, key, toByteArray(start), toByteArray(end)); @@ -485,14 +491,14 @@ public class BinaryClient extends Connection { public void blpop(final byte[][] args) { sendCommand(BLPOP, args); } - + public void blpop(final int timeout, final byte[]... keys) { - final List args = new ArrayList(); - for (final byte[] arg : keys) { - args.add(arg); - } - args.add(Protocol.toByteArray(timeout)); - blpop(args.toArray(new byte[args.size()][])); + final List args = new ArrayList(); + for (final byte[] arg : keys) { + args.add(arg); + } + args.add(Protocol.toByteArray(timeout)); + blpop(args.toArray(new byte[args.size()][])); } public void sort(final byte[] key, final SortingParams sortingParameters, @@ -512,14 +518,14 @@ public class BinaryClient extends Connection { public void brpop(final byte[][] args) { sendCommand(BRPOP, args); } - + public void brpop(final int timeout, final byte[]... keys) { - final List args = new ArrayList(); - for (final byte[] arg : keys) { - args.add(arg); - } - args.add(Protocol.toByteArray(timeout)); - brpop(args.toArray(new byte[args.size()][])); + final List args = new ArrayList(); + for (final byte[] arg : keys) { + args.add(arg); + } + args.add(Protocol.toByteArray(timeout)); + brpop(args.toArray(new byte[args.size()][])); } public void auth(final String password) { @@ -552,32 +558,36 @@ public class BinaryClient extends Connection { } public void punsubscribe(final byte[]... patterns) { - sendCommand(PUNSUBSCRIBE, patterns); + sendCommand(PUNSUBSCRIBE, patterns); } public void zcount(final byte[] key, final double min, final double max) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZCOUNT, key, byteArrayMin, byteArrayMax); + sendCommand(ZCOUNT, key, byteArrayMin, byteArrayMax); } public void zcount(final byte[] key, final byte min[], final byte max[]) { - sendCommand(ZCOUNT, key, min, max); + sendCommand(ZCOUNT, key, min, max); } public void zcount(final byte[] key, final String min, final String max) { - sendCommand(ZCOUNT, key, min.getBytes(), max.getBytes()); + sendCommand(ZCOUNT, key, min.getBytes(), max.getBytes()); } public void zrangeByScore(final byte[] key, final double min, - final double max) { + final double max) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax); + sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax); } public void zrangeByScore(final byte[] key, final byte[] min, @@ -586,17 +596,19 @@ public class BinaryClient extends Connection { } public void zrangeByScore(final byte[] key, final String min, - final String max) { - sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes()); + final String max) { + sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes()); } public void zrevrangeByScore(final byte[] key, final double max, - final double min) { + final double min) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin); + sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin); } public void zrevrangeByScore(final byte[] key, final byte[] max, @@ -605,114 +617,125 @@ public class BinaryClient extends Connection { } public void zrevrangeByScore(final byte[] key, final String max, - final String min) { - sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes()); + final String min) { + sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes()); } public void zrangeByScore(final byte[] key, final double min, - final double max, final int offset, int count) { + final double max, final int offset, int count) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, - LIMIT.raw, toByteArray(offset), toByteArray(count)); + sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, LIMIT.raw, + toByteArray(offset), toByteArray(count)); } - - public void zrangeByScore(final byte[] key, final String min, - final String max, final int offset, int count) { - sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), - LIMIT.raw, toByteArray(offset), toByteArray(count)); + public void zrangeByScore(final byte[] key, final String min, + final String max, final int offset, int count) { + + sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), + LIMIT.raw, toByteArray(offset), toByteArray(count)); } public void zrevrangeByScore(final byte[] key, final double max, - final double min, final int offset, int count) { + final double min, final int offset, int count) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, - LIMIT.raw, toByteArray(offset), toByteArray(count)); - } + sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, + LIMIT.raw, toByteArray(offset), toByteArray(count)); + } public void zrevrangeByScore(final byte[] key, final String max, - final String min, final int offset, int count) { + final String min, final int offset, int count) { - sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), - LIMIT.raw, toByteArray(offset), toByteArray(count)); + sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), + LIMIT.raw, toByteArray(offset), toByteArray(count)); } public void zrangeByScoreWithScores(final byte[] key, final double min, - final double max) { + final double max) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, - WITHSCORES.raw); + sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, + WITHSCORES.raw); } public void zrangeByScoreWithScores(final byte[] key, final String min, - final String max) { + final String max) { - sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), - WITHSCORES.raw); + sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), + WITHSCORES.raw); } public void zrevrangeByScoreWithScores(final byte[] key, final double max, - final double min) { + final double min) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, - WITHSCORES.raw); + sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, + WITHSCORES.raw); } public void zrevrangeByScoreWithScores(final byte[] key, final String max, - final String min) { - sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), - WITHSCORES.raw); + final String min) { + sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), + WITHSCORES.raw); } public void zrangeByScoreWithScores(final byte[] key, final double min, - final double max, final int offset, final int count) { + final double max, final int offset, final int count) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, - LIMIT.raw, toByteArray(offset), toByteArray(count), - WITHSCORES.raw); + sendCommand(ZRANGEBYSCORE, key, byteArrayMin, byteArrayMax, LIMIT.raw, + toByteArray(offset), toByteArray(count), WITHSCORES.raw); } public void zrangeByScoreWithScores(final byte[] key, final String min, - final String max, final int offset, final int count) { - sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), - LIMIT.raw, toByteArray(offset), toByteArray(count), - WITHSCORES.raw); + final String max, final int offset, final int count) { + sendCommand(ZRANGEBYSCORE, key, min.getBytes(), max.getBytes(), + LIMIT.raw, toByteArray(offset), toByteArray(count), + WITHSCORES.raw); } public void zrevrangeByScoreWithScores(final byte[] key, final double max, - final double min, final int offset, final int count) { + final double min, final int offset, final int count) { - byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); - byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf".getBytes() : toByteArray(max); + byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf" + .getBytes() : toByteArray(min); + byte byteArrayMax[] = (max == Double.POSITIVE_INFINITY) ? "+inf" + .getBytes() : toByteArray(max); - sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, - LIMIT.raw, toByteArray(offset), toByteArray(count), - WITHSCORES.raw); + sendCommand(ZREVRANGEBYSCORE, key, byteArrayMax, byteArrayMin, + LIMIT.raw, toByteArray(offset), toByteArray(count), + WITHSCORES.raw); } public void zrevrangeByScoreWithScores(final byte[] key, final String max, - final String min, final int offset, final int count) { + final String min, final int offset, final int count) { - sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), - LIMIT.raw, toByteArray(offset), toByteArray(count), - WITHSCORES.raw); + sendCommand(ZREVRANGEBYSCORE, key, max.getBytes(), min.getBytes(), + LIMIT.raw, toByteArray(offset), toByteArray(count), + WITHSCORES.raw); } - + public void zrangeByScore(final byte[] key, final byte[] min, final byte[] max, final int offset, int count) { sendCommand(ZRANGEBYSCORE, key, min, max, LIMIT.raw, @@ -755,11 +778,11 @@ public class BinaryClient extends Connection { public void zremrangeByScore(final byte[] key, final byte[] start, final byte[] end) { sendCommand(ZREMRANGEBYSCORE, key, start, end); - } + } public void zremrangeByScore(final byte[] key, final String start, - final String end) { - sendCommand(ZREMRANGEBYSCORE, key, start.getBytes(), end.getBytes()); + final String end) { + sendCommand(ZREMRANGEBYSCORE, key, start.getBytes(), end.getBytes()); } public void zunionstore(final byte[] dstkey, final byte[]... sets) { @@ -825,7 +848,7 @@ public class BinaryClient extends Connection { public void info() { sendCommand(INFO); } - + public void info(final String section) { sendCommand(INFO, section); } @@ -897,7 +920,7 @@ public class BinaryClient extends Connection { } public void setbit(byte[] key, long offset, boolean value) { - sendCommand(SETBIT, key, toByteArray(offset), toByteArray(value)); + sendCommand(SETBIT, key, toByteArray(offset), toByteArray(value)); } public void getbit(byte[] key, long offset) { @@ -921,13 +944,13 @@ public class BinaryClient extends Connection { db = 0; super.disconnect(); } - + public void resetState() { - if (isInMulti()) - discard(); - - if (isInWatch()) - unwatch(); + if (isInMulti()) + discard(); + + if (isInWatch()) + unwatch(); } private void sendEvalCommand(Command command, byte[] script, @@ -949,7 +972,7 @@ public class BinaryClient extends Connection { } public void eval(byte[] script, int keyCount, byte[]... params) { - eval(script, toByteArray(keyCount), params); + eval(script, toByteArray(keyCount), params); } public void evalsha(byte[] sha1, byte[] keyCount, byte[]... params) { @@ -957,7 +980,7 @@ public class BinaryClient extends Connection { } public void evalsha(byte[] sha1, int keyCount, byte[]... params) { - sendEvalCommand(EVALSHA, sha1, toByteArray(keyCount), params); + sendEvalCommand(EVALSHA, sha1, toByteArray(keyCount), params); } public void scriptFlush() { @@ -1010,153 +1033,160 @@ public class BinaryClient extends Connection { } public void bitcount(byte[] key) { - sendCommand(BITCOUNT, key); + sendCommand(BITCOUNT, key); } public void bitcount(byte[] key, long start, long end) { - sendCommand(BITCOUNT, key, toByteArray(start), toByteArray(end)); + sendCommand(BITCOUNT, key, toByteArray(start), toByteArray(end)); } public void bitop(BitOP op, byte[] destKey, byte[]... srcKeys) { - Keyword kw = Keyword.AND; - int len = srcKeys.length; - switch (op) { - case AND: - kw = Keyword.AND; - break; - case OR: - kw = Keyword.OR; - break; - case XOR: - kw = Keyword.XOR; - break; - case NOT: - kw = Keyword.NOT; - len = Math.min(1, len); - break; - } + Keyword kw = Keyword.AND; + int len = srcKeys.length; + switch (op) { + case AND: + kw = Keyword.AND; + break; + case OR: + kw = Keyword.OR; + break; + case XOR: + kw = Keyword.XOR; + break; + case NOT: + kw = Keyword.NOT; + len = Math.min(1, len); + break; + } - byte[][] bargs = new byte[len + 2][]; - bargs[0] = kw.raw; - bargs[1] = destKey; - for (int i = 0; i < len; ++i) { - bargs[i + 2] = srcKeys[i]; - } + byte[][] bargs = new byte[len + 2][]; + bargs[0] = kw.raw; + bargs[1] = destKey; + for (int i = 0; i < len; ++i) { + bargs[i + 2] = srcKeys[i]; + } - sendCommand(BITOP, bargs); + sendCommand(BITOP, bargs); } public void sentinel(final byte[]... args) { - sendCommand(SENTINEL, args); + sendCommand(SENTINEL, args); } - + public void dump(final byte[] key) { - sendCommand(DUMP, key); + sendCommand(DUMP, key); } - - public void restore(final byte[] key, final int ttl, final byte[] serializedValue) { - sendCommand(RESTORE, key, toByteArray(ttl), serializedValue); + + public void restore(final byte[] key, final int ttl, + final byte[] serializedValue) { + sendCommand(RESTORE, key, toByteArray(ttl), serializedValue); } - + public void pexpire(final byte[] key, final int milliseconds) { - sendCommand(PEXPIRE, key, toByteArray(milliseconds)); + sendCommand(PEXPIRE, key, toByteArray(milliseconds)); } - + public void pexpireAt(final byte[] key, final long millisecondsTimestamp) { - sendCommand(PEXPIREAT, key, toByteArray(millisecondsTimestamp)); + sendCommand(PEXPIREAT, key, toByteArray(millisecondsTimestamp)); } - + public void pttl(final byte[] key) { - sendCommand(PTTL, key); + sendCommand(PTTL, key); } - + public void incrByFloat(final byte[] key, final double increment) { - sendCommand(INCRBYFLOAT, key, toByteArray(increment)); + sendCommand(INCRBYFLOAT, key, toByteArray(increment)); } - - public void psetex(final byte[] key, final int milliseconds, final byte[] value) { - sendCommand(PSETEX, key, toByteArray(milliseconds), value); + + public void psetex(final byte[] key, final int milliseconds, + final byte[] value) { + sendCommand(PSETEX, key, toByteArray(milliseconds), value); } - + public void set(final byte[] key, final byte[] value, final byte[] nxxx) { - sendCommand(Command.SET, key, value, nxxx); + sendCommand(Command.SET, key, value, nxxx); } - - public void set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final int time) { - sendCommand(Command.SET, key, value, nxxx, expx, toByteArray(time)); + + public void set(final byte[] key, final byte[] value, final byte[] nxxx, + final byte[] expx, final int time) { + sendCommand(Command.SET, key, value, nxxx, expx, toByteArray(time)); } - + public void srandmember(final byte[] key, final int count) { - sendCommand(SRANDMEMBER, key, toByteArray(count)); + sendCommand(SRANDMEMBER, key, toByteArray(count)); } - + public void clientKill(final byte[] client) { - sendCommand(CLIENT, Keyword.KILL.raw, client); + sendCommand(CLIENT, Keyword.KILL.raw, client); } - + public void clientGetname() { - sendCommand(CLIENT, Keyword.GETNAME.raw); + sendCommand(CLIENT, Keyword.GETNAME.raw); } - + public void clientList() { - sendCommand(CLIENT, Keyword.LIST.raw); + sendCommand(CLIENT, Keyword.LIST.raw); } - + public void clientSetname(final byte[] name) { - sendCommand(CLIENT, Keyword.SETNAME.raw, name); + sendCommand(CLIENT, Keyword.SETNAME.raw, name); } - + public void time() { - sendCommand(TIME); + sendCommand(TIME); } - - public void migrate(final byte[] host, final int port, final byte[] key, final int destinationDb, final int timeout) { - sendCommand(MIGRATE, host, toByteArray(port), key, toByteArray(destinationDb), toByteArray(timeout)); + + public void migrate(final byte[] host, final int port, final byte[] key, + final int destinationDb, final int timeout) { + sendCommand(MIGRATE, host, toByteArray(port), key, + toByteArray(destinationDb), toByteArray(timeout)); } - - public void hincrByFloat(final byte[] key, final byte[] field, double increment) { - sendCommand(HINCRBYFLOAT, key, field, toByteArray(increment)); + + public void hincrByFloat(final byte[] key, final byte[] field, + double increment) { + sendCommand(HINCRBYFLOAT, key, field, toByteArray(increment)); } - + public void scan(int cursor, final ScanParams params) { final List args = new ArrayList(); args.add(toByteArray(cursor)); args.addAll(params.getParams()); sendCommand(SCAN, args.toArray(new byte[args.size()][])); } - + public void hscan(final byte[] key, int cursor, final ScanParams params) { - final List args = new ArrayList(); - args.add(key); - args.add(toByteArray(cursor)); - args.addAll(params.getParams()); - sendCommand(HSCAN, args.toArray(new byte[args.size()][])); + final List args = new ArrayList(); + args.add(key); + args.add(toByteArray(cursor)); + args.addAll(params.getParams()); + sendCommand(HSCAN, args.toArray(new byte[args.size()][])); } - + public void sscan(final byte[] key, int cursor, final ScanParams params) { - final List args = new ArrayList(); - args.add(key); - args.add(toByteArray(cursor)); - args.addAll(params.getParams()); - sendCommand(SSCAN, args.toArray(new byte[args.size()][])); + final List args = new ArrayList(); + args.add(key); + args.add(toByteArray(cursor)); + args.addAll(params.getParams()); + sendCommand(SSCAN, args.toArray(new byte[args.size()][])); } - + public void zscan(final byte[] key, int cursor, final ScanParams params) { - final List args = new ArrayList(); - args.add(key); - args.add(toByteArray(cursor)); - args.addAll(params.getParams()); - sendCommand(ZSCAN, args.toArray(new byte[args.size()][])); + final List args = new ArrayList(); + args.add(key); + args.add(toByteArray(cursor)); + args.addAll(params.getParams()); + sendCommand(ZSCAN, args.toArray(new byte[args.size()][])); } - + public void waitReplicas(int replicas, long timeout) { sendCommand(WAIT, toByteArray(replicas), toByteArray(timeout)); } public void cluster(final byte[]... args) { - sendCommand(CLUSTER, args); + sendCommand(CLUSTER, args); } + public void asking() { - sendCommand(Command.ASKING); + sendCommand(Command.ASKING); } } diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index 2f3d3c2..adac704 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -1,17 +1,25 @@ package redis.clients.jedis; +import static redis.clients.jedis.Protocol.toByteArray; + +import java.net.URI; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.jedis.exceptions.JedisException; import redis.clients.util.JedisByteHashMap; import redis.clients.util.SafeEncoder; -import java.net.URI; -import java.util.*; - -import static redis.clients.jedis.Protocol.toByteArray; - -public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKeyBinaryCommands, AdvancedBinaryJedisCommands, BinaryScriptingCommands { +public class BinaryJedis implements BasicCommands, BinaryJedisCommands, + MultiKeyBinaryCommands, AdvancedBinaryJedisCommands, + BinaryScriptingCommands { protected Client client = null; public BinaryJedis(final String host) { @@ -75,18 +83,23 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey /** * Set the string value as value of the key. The string can't be longer than * 1073741824 bytes (1 GB). + * * @param key * @param value - * @param nxxx NX|XX, NX -- Only set the key if it does not already exist. - * XX -- Only set the key if it already exist. - * @param expx EX|PX, expire time units: EX = seconds; PX = milliseconds - * @param time expire time in the units of {@param #expx} + * @param nxxx + * NX|XX, NX -- Only set the key if it does not already exist. XX + * -- Only set the key if it already exist. + * @param expx + * EX|PX, expire time units: EX = seconds; PX = milliseconds + * @param time + * expire time in the units of {@param #expx} * @return Status code reply */ - public String set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final long time) { - checkIsInMulti(); - client.set(key, value, nxxx, expx, time); - return client.getStatusCodeReply(); + public String set(final byte[] key, final byte[] value, final byte[] nxxx, + final byte[] expx, final long time) { + checkIsInMulti(); + client.set(key, value, nxxx, expx, time); + return client.getStatusCodeReply(); } /** @@ -147,9 +160,9 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey } public Long del(final byte[] key) { - checkIsInMulti(); - client.del(key); - return client.getIntegerReply(); + checkIsInMulti(); + client.del(key); + return client.getIntegerReply(); } /** @@ -1006,7 +1019,8 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey * @return Multi bulk reply, specifically a list of elements in the * specified range. */ - public List lrange(final byte[] key, final long start, final long end) { + public List lrange(final byte[] key, final long start, + final long end) { checkIsInMulti(); client.lrange(key, start, end); return client.getBinaryMultiBulkReply(); @@ -1468,11 +1482,11 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey client.srandmember(key); return client.getBinaryBulkReply(); } - + public List srandmember(final byte[] key, final int count) { - checkIsInMulti(); - client.srandmember(key, count); - return client.getBinaryMultiBulkReply(); + checkIsInMulti(); + client.srandmember(key, count); + return client.getBinaryMultiBulkReply(); } /** @@ -1697,7 +1711,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey protected void checkIsInMulti() { if (client.isInMulti()) { - throw new JedisDataException( + throw new JedisDataException( "Cannot use Jedis when in Multi. Please use JedisTransaction instead."); } } @@ -1709,7 +1723,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public void disconnect() { client.disconnect(); } - + public void resetState() { client.resetState(); client.getAll(); @@ -2049,43 +2063,43 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey } public List blpop(byte[] arg) { - checkIsInMulti(); - byte[][] args = new byte[1][]; - args[0] = arg; - client.blpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getBinaryMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + checkIsInMulti(); + byte[][] args = new byte[1][]; + args[0] = arg; + client.blpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getBinaryMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List brpop(byte[] arg) { - checkIsInMulti(); - byte[][] args = new byte[1][]; - args[0] = arg; - client.brpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getBinaryMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + checkIsInMulti(); + byte[][] args = new byte[1][]; + args[0] = arg; + client.brpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getBinaryMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List blpop(byte[]... args) { - checkIsInMulti(); - client.blpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getBinaryMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + checkIsInMulti(); + client.blpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getBinaryMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List brpop(byte[]... args) { - checkIsInMulti(); - client.brpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getBinaryMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + checkIsInMulti(); + client.brpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getBinaryMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } /** @@ -2131,15 +2145,15 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey } public Long zcount(final byte[] key, final double min, final double max) { - return zcount(key, toByteArray(min), toByteArray(max)); + return zcount(key, toByteArray(min), toByteArray(max)); } - + public Long zcount(final byte[] key, final byte[] min, final byte[] max) { - checkIsInMulti(); - client.zcount(key, min, max); - return client.getIntegerReply(); + checkIsInMulti(); + client.zcount(key, min, max); + return client.getIntegerReply(); } - + /** * Return the all the elements in the sorted set at key with a score between * min and max (including elements with score equal to min or max). @@ -2199,7 +2213,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public Set zrangeByScore(final byte[] key, final double min, final double max) { return zrangeByScore(key, toByteArray(min), toByteArray(max)); - } + } public Set zrangeByScore(final byte[] key, final byte[] min, final byte[] max) { @@ -2266,15 +2280,16 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey */ public Set zrangeByScore(final byte[] key, final double min, final double max, final int offset, final int count) { - return zrangeByScore(key, toByteArray(min),toByteArray(max),offset, count); + return zrangeByScore(key, toByteArray(min), toByteArray(max), offset, + count); } - + public Set zrangeByScore(final byte[] key, final byte[] min, - final byte[] max, final int offset, final int count) { - checkIsInMulti(); - client.zrangeByScore(key, min, max, offset, count); - return new LinkedHashSet(client.getBinaryMultiBulkReply()); - } + final byte[] max, final int offset, final int count) { + checkIsInMulti(); + client.zrangeByScore(key, min, max, offset, count); + return new LinkedHashSet(client.getBinaryMultiBulkReply()); + } /** * Return the all the elements in the sorted set at key with a score between @@ -2336,14 +2351,14 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey final double min, final double max) { return zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max)); } - + public Set zrangeByScoreWithScores(final byte[] key, - final byte[] min, final byte[] max) { - checkIsInMulti(); - client.zrangeByScoreWithScores(key, min, max); - Set set = getBinaryTupledSet(); - return set; - } + final byte[] min, final byte[] max) { + checkIsInMulti(); + client.zrangeByScoreWithScores(key, min, max); + Set set = getBinaryTupledSet(); + return set; + } /** * Return the all the elements in the sorted set at key with a score between @@ -2404,17 +2419,18 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public Set zrangeByScoreWithScores(final byte[] key, final double min, final double max, final int offset, final int count) { - return zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max), offset, count); + return zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max), + offset, count); } - + public Set zrangeByScoreWithScores(final byte[] key, - final byte[] min, final byte[] max, final int offset, - final int count) { - checkIsInMulti(); - client.zrangeByScoreWithScores(key, min, max, offset, count); - Set set = getBinaryTupledSet(); - return set; - } + final byte[] min, final byte[] max, final int offset, + final int count) { + checkIsInMulti(); + client.zrangeByScoreWithScores(key, min, max, offset, count); + Set set = getBinaryTupledSet(); + return set; + } private Set getBinaryTupledSet() { checkIsInMulti(); @@ -2442,29 +2458,32 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public Set zrevrangeByScore(final byte[] key, final double max, final double min, final int offset, final int count) { - return zrevrangeByScore(key, toByteArray(max), toByteArray(min), offset, count); + return zrevrangeByScore(key, toByteArray(max), toByteArray(min), + offset, count); } - + public Set zrevrangeByScore(final byte[] key, final byte[] max, - final byte[] min, final int offset, final int count) { - checkIsInMulti(); - client.zrevrangeByScore(key, max, min, offset, count); - return new LinkedHashSet(client.getBinaryMultiBulkReply()); - } + final byte[] min, final int offset, final int count) { + checkIsInMulti(); + client.zrevrangeByScore(key, max, min, offset, count); + return new LinkedHashSet(client.getBinaryMultiBulkReply()); + } public Set zrevrangeByScoreWithScores(final byte[] key, final double max, final double min) { - return zrevrangeByScoreWithScores(key, toByteArray(max), toByteArray(min)); + return zrevrangeByScoreWithScores(key, toByteArray(max), + toByteArray(min)); } public Set zrevrangeByScoreWithScores(final byte[] key, final double max, final double min, final int offset, final int count) { - return zrevrangeByScoreWithScores(key, toByteArray(max), toByteArray(min), offset, count); + return zrevrangeByScoreWithScores(key, toByteArray(max), + toByteArray(min), offset, count); } - + public Set zrevrangeByScoreWithScores(final byte[] key, - final byte[] max, final byte[] min) { + final byte[] max, final byte[] min) { checkIsInMulti(); client.zrevrangeByScoreWithScores(key, max, min); Set set = getBinaryTupledSet(); @@ -2478,7 +2497,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey client.zrevrangeByScoreWithScores(key, max, min, offset, count); Set set = getBinaryTupledSet(); return set; - } + } /** * Remove all elements in the sorted set at key with rank between start and @@ -2493,7 +2512,8 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey * operation * */ - public Long zremrangeByRank(final byte[] key, final long start, final long end) { + public Long zremrangeByRank(final byte[] key, final long start, + final long end) { checkIsInMulti(); client.zremrangeByRank(key, start, end); return client.getIntegerReply(); @@ -2517,13 +2537,13 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey final double end) { return zremrangeByScore(key, toByteArray(start), toByteArray(end)); } - + public Long zremrangeByScore(final byte[] key, final byte[] start, - final byte[] end) { - checkIsInMulti(); - client.zremrangeByScore(key, start, end); - return client.getIntegerReply(); - } + final byte[] end) { + checkIsInMulti(); + client.zremrangeByScore(key, start, end); + return client.getIntegerReply(); + } /** * Creates a union or intersection of N sorted sets given by keys k1 through @@ -2847,7 +2867,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey client.info(); return client.getBulkReply(); } - + public String info(final String section) { client.info(section); return client.getBulkReply(); @@ -3083,8 +3103,8 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey } public Boolean setbit(byte[] key, long offset, byte[] value) { - client.setbit(key, offset, value); - return client.getIntegerReply() == 1; + client.setbit(key, offset, value); + return client.getIntegerReply() == 1; } /** @@ -3164,44 +3184,44 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey } public Object eval(byte[] script, int keyCount, byte[]... params) { - client.setTimeoutInfinite(); - client.eval(script, SafeEncoder.encode(Integer.toString(keyCount)), params); - return client.getOne(); + client.setTimeoutInfinite(); + client.eval(script, SafeEncoder.encode(Integer.toString(keyCount)), + params); + return client.getOne(); } public Object eval(byte[] script) { - client.setTimeoutInfinite(); - client.eval(script, 0); - return client.getOne(); + client.setTimeoutInfinite(); + client.eval(script, 0); + return client.getOne(); } public Object evalsha(byte[] sha1) { - client.setTimeoutInfinite(); - client.evalsha(sha1, 0); - return client.getOne(); + client.setTimeoutInfinite(); + client.evalsha(sha1, 0); + return client.getOne(); } - - public Object evalsha(byte[] sha1, List keys, List args) { - int keyCount = keys == null ? 0 : keys.size(); - int argCount = args == null ? 0 : args.size(); + public Object evalsha(byte[] sha1, List keys, List args) { - byte[][] params = new byte[keyCount + argCount][]; + int keyCount = keys == null ? 0 : keys.size(); + int argCount = args == null ? 0 : args.size(); - for (int i = 0; i < keyCount; i++) - params[i] = keys.get(i); + byte[][] params = new byte[keyCount + argCount][]; - for (int i = 0; i < argCount; i++) - params[keyCount + i] = args.get(i); + for (int i = 0; i < keyCount; i++) + params[i] = keys.get(i); + for (int i = 0; i < argCount; i++) + params[keyCount + i] = args.get(i); - return evalsha(sha1, keyCount, params); - } + return evalsha(sha1, keyCount, params); + } public Object evalsha(byte[] sha1, int keyCount, byte[]... params) { - client.setTimeoutInfinite(); - client.evalsha(sha1, keyCount, params); - return client.getOne(); + client.setTimeoutInfinite(); + client.evalsha(sha1, keyCount, params); + return client.getOne(); } public String scriptFlush() { @@ -3211,7 +3231,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey public List scriptExists(byte[]... sha1) { client.scriptExists(sha1); - return client.getIntegerMultiBulkReply(); + return client.getIntegerMultiBulkReply(); } public byte[] scriptLoad(byte[] script) { @@ -3243,133 +3263,138 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey client.slowlogGet(entries); return client.getBinaryMultiBulkReply(); } - - public Long objectRefcount(byte[] key) { - client.objectRefcount(key); - return client.getIntegerReply(); - } - - public byte[] objectEncoding(byte[] key) { - client.objectEncoding(key); - return client.getBinaryBulkReply(); - } - public Long objectIdletime(byte[] key) { - client.objectIdletime(key); - return client.getIntegerReply(); - } + public Long objectRefcount(byte[] key) { + client.objectRefcount(key); + return client.getIntegerReply(); + } + + public byte[] objectEncoding(byte[] key) { + client.objectEncoding(key); + return client.getBinaryBulkReply(); + } + + public Long objectIdletime(byte[] key) { + client.objectIdletime(key); + return client.getIntegerReply(); + } public Long bitcount(final byte[] key) { - client.bitcount(key); - return client.getIntegerReply(); + client.bitcount(key); + return client.getIntegerReply(); } public Long bitcount(final byte[] key, long start, long end) { - client.bitcount(key, start, end); - return client.getIntegerReply(); + client.bitcount(key, start, end); + return client.getIntegerReply(); } public Long bitop(BitOP op, final byte[] destKey, byte[]... srcKeys) { - client.bitop(op, destKey, srcKeys); - return client.getIntegerReply(); + client.bitop(op, destKey, srcKeys); + return client.getIntegerReply(); } - + public byte[] dump(final byte[] key) { - checkIsInMulti(); - client.dump(key); - return client.getBinaryBulkReply(); + checkIsInMulti(); + client.dump(key); + return client.getBinaryBulkReply(); } - - public String restore(final byte[] key, final int ttl, final byte[] serializedValue) { - checkIsInMulti(); - client.restore(key, ttl, serializedValue); - return client.getStatusCodeReply(); + + public String restore(final byte[] key, final int ttl, + final byte[] serializedValue) { + checkIsInMulti(); + client.restore(key, ttl, serializedValue); + return client.getStatusCodeReply(); } - + public Long pexpire(final byte[] key, final int milliseconds) { - checkIsInMulti(); - client.pexpire(key, milliseconds); - return client.getIntegerReply(); + checkIsInMulti(); + client.pexpire(key, milliseconds); + return client.getIntegerReply(); } - + public Long pexpireAt(final byte[] key, final long millisecondsTimestamp) { - checkIsInMulti(); - client.pexpireAt(key, millisecondsTimestamp); - return client.getIntegerReply(); + checkIsInMulti(); + client.pexpireAt(key, millisecondsTimestamp); + return client.getIntegerReply(); } - + public Long pttl(final byte[] key) { - checkIsInMulti(); - client.pttl(key); - return client.getIntegerReply(); + checkIsInMulti(); + client.pttl(key); + return client.getIntegerReply(); } - + public Double incrByFloat(final byte[] key, final double increment) { - checkIsInMulti(); - client.incrByFloat(key, increment); - String relpy = client.getBulkReply(); - return (relpy != null ? new Double(relpy) : null); + checkIsInMulti(); + client.incrByFloat(key, increment); + String relpy = client.getBulkReply(); + return (relpy != null ? new Double(relpy) : null); } - - public String psetex(final byte[] key, final int milliseconds, final byte[] value) { - checkIsInMulti(); - client.psetex(key, milliseconds, value); - return client.getStatusCodeReply(); + + public String psetex(final byte[] key, final int milliseconds, + final byte[] value) { + checkIsInMulti(); + client.psetex(key, milliseconds, value); + return client.getStatusCodeReply(); } - + public String set(final byte[] key, final byte[] value, final byte[] nxxx) { - checkIsInMulti(); - client.set(key, value, nxxx); - return client.getStatusCodeReply(); + checkIsInMulti(); + client.set(key, value, nxxx); + return client.getStatusCodeReply(); } - - public String set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final int time) { - checkIsInMulti(); - client.set(key, value, nxxx, expx, time); - return client.getStatusCodeReply(); + + public String set(final byte[] key, final byte[] value, final byte[] nxxx, + final byte[] expx, final int time) { + checkIsInMulti(); + client.set(key, value, nxxx, expx, time); + return client.getStatusCodeReply(); } - + public String clientKill(final byte[] client) { - checkIsInMulti(); - this.client.clientKill(client); - return this.client.getStatusCodeReply(); + checkIsInMulti(); + this.client.clientKill(client); + return this.client.getStatusCodeReply(); } - + public String clientGetname() { - checkIsInMulti(); - client.clientGetname(); - return client.getBulkReply(); + checkIsInMulti(); + client.clientGetname(); + return client.getBulkReply(); } - + public String clientList() { - checkIsInMulti(); - client.clientList(); - return client.getBulkReply(); + checkIsInMulti(); + client.clientList(); + return client.getBulkReply(); } - + public String clientSetname(final byte[] name) { - checkIsInMulti(); - client.clientSetname(name); - return client.getBulkReply(); + checkIsInMulti(); + client.clientSetname(name); + return client.getBulkReply(); } - + public List time() { - checkIsInMulti(); - client.time(); - return client.getMultiBulkReply(); + checkIsInMulti(); + client.time(); + return client.getMultiBulkReply(); } - - public String migrate(final byte[] host, final int port, final byte[] key, final int destinationDb, final int timeout) { - checkIsInMulti(); - client.migrate(host, port, key, destinationDb, timeout); - return client.getStatusCodeReply(); + + public String migrate(final byte[] host, final int port, final byte[] key, + final int destinationDb, final int timeout) { + checkIsInMulti(); + client.migrate(host, port, key, destinationDb, timeout); + return client.getStatusCodeReply(); } - - public Double hincrByFloat(final byte[] key, final byte[] field, double increment) { - checkIsInMulti(); - client.hincrByFloat(key, field, increment); - String relpy = client.getBulkReply(); - return (relpy != null ? new Double(relpy) : null); + + public Double hincrByFloat(final byte[] key, final byte[] field, + double increment) { + checkIsInMulti(); + client.hincrByFloat(key, field, increment); + String relpy = client.getBulkReply(); + return (relpy != null ? new Double(relpy) : null); } /** @@ -3380,9 +3405,9 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey * so I had to change the name of the method. Sorry :S */ public Long waitReplicas(int replicas, long timeout) { - checkIsInMulti(); - client.waitReplicas(replicas, timeout); - return client.getIntegerReply(); + checkIsInMulti(); + client.waitReplicas(replicas, timeout); + return client.getIntegerReply(); } } diff --git a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java index 3e44f9c..b229f97 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisCommands.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisCommands.java @@ -5,8 +5,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import redis.clients.jedis.BinaryClient.LIST_POSITION; - /** * Common interface for sharded and non-sharded BinaryJedis */ @@ -116,7 +114,7 @@ public interface BinaryJedisCommands { Long strlen(byte[] key); Long zadd(byte[] key, double score, byte[] member); - + Long zadd(byte[] key, Map scoreMembers); Set zrange(byte[] key, long start, long end); @@ -159,45 +157,45 @@ public interface BinaryJedisCommands { Set zrevrangeByScore(byte[] key, byte[] max, byte[] min); Set zrangeByScore(byte[] key, byte[] min, byte[] max, int offset, - int count); + int count); Set zrevrangeByScore(byte[] key, double max, double min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(byte[] key, double min, double max); Set zrevrangeByScoreWithScores(byte[] key, double max, double min); Set zrangeByScoreWithScores(byte[] key, double min, double max, - int offset, int count); - + int offset, int count); + Set zrevrangeByScore(byte[] key, byte[] max, byte[] min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(byte[] key, byte[] min, byte[] max); - + Set zrevrangeByScoreWithScores(byte[] key, byte[] max, byte[] min); Set zrangeByScoreWithScores(byte[] key, byte[] min, byte[] max, - int offset, int count); + int offset, int count); Set zrevrangeByScoreWithScores(byte[] key, double max, double min, - int offset, int count); - + int offset, int count); + Set zrevrangeByScoreWithScores(byte[] key, byte[] max, byte[] min, - int offset, int count); + int offset, int count); Long zremrangeByRank(byte[] key, long start, long end); Long zremrangeByScore(byte[] key, double start, double end); - + Long zremrangeByScore(byte[] key, byte[] start, byte[] end); Long linsert(byte[] key, Client.LIST_POSITION where, byte[] pivot, - byte[] value); - + byte[] value); + Long lpushx(byte[] key, byte[]... arg); - + Long rpushx(byte[] key, byte[]... arg); List blpop(byte[] arg); diff --git a/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java b/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java index 9f34b4a..c271305 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java +++ b/src/main/java/redis/clients/jedis/BinaryJedisPubSub.java @@ -19,7 +19,7 @@ public abstract class BinaryJedisPubSub { public abstract void onMessage(byte[] channel, byte[] message); public abstract void onPMessage(byte[] pattern, byte[] channel, - byte[] message); + byte[] message); public abstract void onSubscribe(byte[] channel, int subscribedChannels); @@ -30,91 +30,91 @@ public abstract class BinaryJedisPubSub { public abstract void onPSubscribe(byte[] pattern, int subscribedChannels); public void unsubscribe() { - client.unsubscribe(); - client.flush(); + client.unsubscribe(); + client.flush(); } public void unsubscribe(byte[]... channels) { - client.unsubscribe(channels); - client.flush(); + client.unsubscribe(channels); + client.flush(); } public void subscribe(byte[]... channels) { - client.subscribe(channels); - client.flush(); + client.subscribe(channels); + client.flush(); } public void psubscribe(byte[]... patterns) { - client.psubscribe(patterns); - client.flush(); + client.psubscribe(patterns); + client.flush(); } public void punsubscribe() { - client.punsubscribe(); - client.flush(); + client.punsubscribe(); + client.flush(); } public void punsubscribe(byte[]... patterns) { - client.punsubscribe(patterns); - client.flush(); + client.punsubscribe(patterns); + client.flush(); } public boolean isSubscribed() { - return subscribedChannels > 0; + return subscribedChannels > 0; } public void proceedWithPatterns(Client client, byte[]... patterns) { - this.client = client; - client.psubscribe(patterns); - process(client); + this.client = client; + client.psubscribe(patterns); + process(client); } public void proceed(Client client, byte[]... channels) { - this.client = client; - client.subscribe(channels); - process(client); + this.client = client; + client.subscribe(channels); + process(client); } private void process(Client client) { - do { - List reply = client.getObjectMultiBulkReply(); - final Object firstObj = reply.get(0); - if (!(firstObj instanceof byte[])) { - throw new JedisException("Unknown message type: " + firstObj); - } - final byte[] resp = (byte[]) firstObj; - if (Arrays.equals(SUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bchannel = (byte[]) reply.get(1); - onSubscribe(bchannel, subscribedChannels); - } else if (Arrays.equals(UNSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bchannel = (byte[]) reply.get(1); - onUnsubscribe(bchannel, subscribedChannels); - } else if (Arrays.equals(MESSAGE.raw, resp)) { - final byte[] bchannel = (byte[]) reply.get(1); - final byte[] bmesg = (byte[]) reply.get(2); - onMessage(bchannel, bmesg); - } else if (Arrays.equals(PMESSAGE.raw, resp)) { - final byte[] bpattern = (byte[]) reply.get(1); - final byte[] bchannel = (byte[]) reply.get(2); - final byte[] bmesg = (byte[]) reply.get(3); - onPMessage(bpattern, bchannel, bmesg); - } else if (Arrays.equals(PSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bpattern = (byte[]) reply.get(1); - onPSubscribe(bpattern, subscribedChannels); - } else if (Arrays.equals(PUNSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bpattern = (byte[]) reply.get(1); - onPUnsubscribe(bpattern, subscribedChannels); - } else { - throw new JedisException("Unknown message type: " + firstObj); - } - } while (isSubscribed()); + do { + List reply = client.getObjectMultiBulkReply(); + final Object firstObj = reply.get(0); + if (!(firstObj instanceof byte[])) { + throw new JedisException("Unknown message type: " + firstObj); + } + final byte[] resp = (byte[]) firstObj; + if (Arrays.equals(SUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bchannel = (byte[]) reply.get(1); + onSubscribe(bchannel, subscribedChannels); + } else if (Arrays.equals(UNSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bchannel = (byte[]) reply.get(1); + onUnsubscribe(bchannel, subscribedChannels); + } else if (Arrays.equals(MESSAGE.raw, resp)) { + final byte[] bchannel = (byte[]) reply.get(1); + final byte[] bmesg = (byte[]) reply.get(2); + onMessage(bchannel, bmesg); + } else if (Arrays.equals(PMESSAGE.raw, resp)) { + final byte[] bpattern = (byte[]) reply.get(1); + final byte[] bchannel = (byte[]) reply.get(2); + final byte[] bmesg = (byte[]) reply.get(3); + onPMessage(bpattern, bchannel, bmesg); + } else if (Arrays.equals(PSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bpattern = (byte[]) reply.get(1); + onPSubscribe(bpattern, subscribedChannels); + } else if (Arrays.equals(PUNSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bpattern = (byte[]) reply.get(1); + onPUnsubscribe(bpattern, subscribedChannels); + } else { + throw new JedisException("Unknown message type: " + firstObj); + } + } while (isSubscribed()); } public int getSubscribedChannels() { - return subscribedChannels; + return subscribedChannels; } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java b/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java index d48800c..73037b7 100644 --- a/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java +++ b/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java @@ -67,7 +67,7 @@ public interface BinaryRedisPipeline { Response lindex(byte[] key, long index); Response linsert(byte[] key, BinaryClient.LIST_POSITION where, - byte[] pivot, byte[] value); + byte[] pivot, byte[] value); Response llen(byte[] key); @@ -117,8 +117,7 @@ public interface BinaryRedisPipeline { Response> sort(byte[] key); - Response> sort(byte[] key, - SortingParams sortingParameters); + Response> sort(byte[] key, SortingParams sortingParameters); Response spop(byte[] key); @@ -144,53 +143,49 @@ public interface BinaryRedisPipeline { Response> zrange(byte[] key, long start, long end); - Response> zrangeByScore(byte[] key, double min, - double max); + Response> zrangeByScore(byte[] key, double min, double max); - Response> zrangeByScore(byte[] key, byte[] min, - byte[] max); + Response> zrangeByScore(byte[] key, byte[] min, byte[] max); - Response> zrangeByScore(byte[] key, double min, - double max, int offset, int count); + Response> zrangeByScore(byte[] key, double min, double max, + int offset, int count); - Response> zrangeByScore(byte[] key, byte[] min, - byte[] max, int offset, int count); + Response> zrangeByScore(byte[] key, byte[] min, byte[] max, + int offset, int count); Response> zrangeByScoreWithScores(byte[] key, double min, - double max); + double max); Response> zrangeByScoreWithScores(byte[] key, byte[] min, - byte[] max); + byte[] max); Response> zrangeByScoreWithScores(byte[] key, double min, - double max, int offset, int count); + double max, int offset, int count); Response> zrangeByScoreWithScores(byte[] key, byte[] min, - byte[] max, int offset, int count); + byte[] max, int offset, int count); - Response> zrevrangeByScore(byte[] key, double max, - double min); + Response> zrevrangeByScore(byte[] key, double max, double min); - Response> zrevrangeByScore(byte[] key, byte[] max, - byte[] min); + Response> zrevrangeByScore(byte[] key, byte[] max, byte[] min); - Response> zrevrangeByScore(byte[] key, double max, - double min, int offset, int count); + Response> zrevrangeByScore(byte[] key, double max, double min, + int offset, int count); - Response> zrevrangeByScore(byte[] key, byte[] max, - byte[] min, int offset, int count); + Response> zrevrangeByScore(byte[] key, byte[] max, byte[] min, + int offset, int count); - Response> zrevrangeByScoreWithScores(byte[] key, - double max, double min); + Response> zrevrangeByScoreWithScores(byte[] key, double max, + double min); - Response> zrevrangeByScoreWithScores(byte[] key, - byte[] max, byte[] min); + Response> zrevrangeByScoreWithScores(byte[] key, byte[] max, + byte[] min); - Response> zrevrangeByScoreWithScores(byte[] key, - double max, double min, int offset, int count); + Response> zrevrangeByScoreWithScores(byte[] key, double max, + double min, int offset, int count); - Response> zrevrangeByScoreWithScores(byte[] key, - byte[] max, byte[] min, int offset, int count); + Response> zrevrangeByScoreWithScores(byte[] key, byte[] max, + byte[] min, int offset, int count); Response> zrangeWithScores(byte[] key, long start, long end); @@ -206,8 +201,7 @@ public interface BinaryRedisPipeline { Response> zrevrange(byte[] key, long start, long end); - Response> zrevrangeWithScores(byte[] key, long start, - long end); + Response> zrevrangeWithScores(byte[] key, long start, long end); Response zrevrank(byte[] key, byte[] member); diff --git a/src/main/java/redis/clients/jedis/BinaryScriptingCommands.java b/src/main/java/redis/clients/jedis/BinaryScriptingCommands.java index 092ce7a..face8d8 100644 --- a/src/main/java/redis/clients/jedis/BinaryScriptingCommands.java +++ b/src/main/java/redis/clients/jedis/BinaryScriptingCommands.java @@ -1,6 +1,5 @@ package redis.clients.jedis; - import java.util.List; public interface BinaryScriptingCommands { @@ -8,7 +7,7 @@ public interface BinaryScriptingCommands { Object eval(byte[] script, byte[] keyCount, byte[]... params); Object eval(byte[] script, int keyCount, byte[]... params); - + Object eval(byte[] script, List keys, List args); Object eval(byte[] script); diff --git a/src/main/java/redis/clients/jedis/BitOP.java b/src/main/java/redis/clients/jedis/BitOP.java index 5e3ee89..8066a69 100644 --- a/src/main/java/redis/clients/jedis/BitOP.java +++ b/src/main/java/redis/clients/jedis/BitOP.java @@ -1,8 +1,5 @@ package redis.clients.jedis; public enum BitOP { - AND, - OR, - XOR, - NOT; + AND, OR, XOR, NOT; } diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index bebd2d6..d8ae47b 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -1,249 +1,256 @@ 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; +import java.util.Map; +import java.util.Set; + import redis.clients.util.SafeEncoder; -import java.util.*; - public class BuilderFactory { public static final Builder DOUBLE = new Builder() { - public Double build(Object data) { - String asString = STRING.build(data); - return asString == null ? null : Double.valueOf(asString); - } + public Double build(Object data) { + String asString = STRING.build(data); + return asString == null ? null : Double.valueOf(asString); + } - public String toString() { - return "double"; - } + public String toString() { + return "double"; + } }; public static final Builder BOOLEAN = new Builder() { - public Boolean build(Object data) { - return ((Long) data) == 1; - } + public Boolean build(Object data) { + return ((Long) data) == 1; + } - public String toString() { - return "boolean"; - } + public String toString() { + return "boolean"; + } }; public static final Builder BYTE_ARRAY = new Builder() { - public byte[] build(Object data) { - return ((byte[]) data); // deleted == 1 - } + public byte[] build(Object data) { + return ((byte[]) data); // deleted == 1 + } - public String toString() { - return "byte[]"; - } + public String toString() { + return "byte[]"; + } }; public static final Builder LONG = new Builder() { - public Long build(Object data) { - return (Long) data; - } + public Long build(Object data) { + return (Long) data; + } - public String toString() { - return "long"; - } + public String toString() { + return "long"; + } }; public static final Builder STRING = new Builder() { - public String build(Object data) { - return data == null ? null : SafeEncoder.encode((byte[]) data); - } + public String build(Object data) { + return data == null ? null : SafeEncoder.encode((byte[]) data); + } - public String toString() { - return "string"; - } + public String toString() { + return "string"; + } }; public static final Builder> STRING_LIST = new Builder>() { - @SuppressWarnings("unchecked") - public List build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final ArrayList result = new ArrayList(l.size()); - for (final byte[] barray : l) { - if (barray == null) { - result.add(null); - } else { - result.add(SafeEncoder.encode(barray)); - } - } - return result; - } + @SuppressWarnings("unchecked") + public List build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final ArrayList result = new ArrayList(l.size()); + for (final byte[] barray : l) { + if (barray == null) { + result.add(null); + } else { + result.add(SafeEncoder.encode(barray)); + } + } + return result; + } - public String toString() { - return "List"; - } + public String toString() { + return "List"; + } }; public static final Builder> STRING_MAP = new Builder>() { - @SuppressWarnings("unchecked") - public Map build(Object data) { - final List flatHash = (List) data; - final Map hash = new HashMap(); - final Iterator iterator = flatHash.iterator(); - while (iterator.hasNext()) { - hash.put(SafeEncoder.encode(iterator.next()), SafeEncoder - .encode(iterator.next())); - } + @SuppressWarnings("unchecked") + public Map build(Object data) { + final List flatHash = (List) data; + final Map hash = new HashMap(); + final Iterator iterator = flatHash.iterator(); + while (iterator.hasNext()) { + hash.put(SafeEncoder.encode(iterator.next()), + SafeEncoder.encode(iterator.next())); + } - return hash; - } + return hash; + } - public String toString() { - return "Map"; - } + public String toString() { + return "Map"; + } }; public static final Builder> STRING_SET = new Builder>() { - @SuppressWarnings("unchecked") - public Set build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final Set result = new HashSet(l.size()); - for (final byte[] barray : l) { - if (barray == null) { - result.add(null); - } else { - result.add(SafeEncoder.encode(barray)); - } - } - return result; - } + @SuppressWarnings("unchecked") + public Set build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final Set result = new HashSet(l.size()); + for (final byte[] barray : l) { + if (barray == null) { + result.add(null); + } else { + result.add(SafeEncoder.encode(barray)); + } + } + return result; + } - public String toString() { - return "Set"; - } + public String toString() { + return "Set"; + } }; public static final Builder> BYTE_ARRAY_LIST = new Builder>() { - @SuppressWarnings("unchecked") - public List build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; + @SuppressWarnings("unchecked") + public List build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; - return l; - } + return l; + } - public String toString() { - return "List"; - } + public String toString() { + return "List"; + } }; public static final Builder> BYTE_ARRAY_ZSET = new Builder>() { - @SuppressWarnings("unchecked") - public Set build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final Set result = new LinkedHashSet(l); - for (final byte[] barray : l) { - if (barray == null) { - result.add(null); - } else { - result.add(barray); - } - } - return result; - } + @SuppressWarnings("unchecked") + public Set build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final Set result = new LinkedHashSet(l); + for (final byte[] barray : l) { + if (barray == null) { + result.add(null); + } else { + result.add(barray); + } + } + return result; + } - public String toString() { - return "ZSet"; - } + public String toString() { + return "ZSet"; + } }; public static final Builder> BYTE_ARRAY_MAP = new Builder>() { - @SuppressWarnings("unchecked") - public Map build(Object data) { - final List flatHash = (List) data; - final Map hash = new HashMap(); - final Iterator iterator = flatHash.iterator(); - while (iterator.hasNext()) { - hash.put(iterator.next(), iterator.next()); - } + @SuppressWarnings("unchecked") + public Map build(Object data) { + final List flatHash = (List) data; + final Map hash = new HashMap(); + final Iterator iterator = flatHash.iterator(); + while (iterator.hasNext()) { + hash.put(iterator.next(), iterator.next()); + } - return hash; - } + return hash; + } - public String toString() { - return "Map"; - } + public String toString() { + return "Map"; + } }; public static final Builder> STRING_ZSET = new Builder>() { - @SuppressWarnings("unchecked") - public Set build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final Set result = new LinkedHashSet(l.size()); - for (final byte[] barray : l) { - if (barray == null) { - result.add(null); - } else { - result.add(SafeEncoder.encode(barray)); - } - } - return result; - } + @SuppressWarnings("unchecked") + public Set build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final Set result = new LinkedHashSet(l.size()); + for (final byte[] barray : l) { + if (barray == null) { + result.add(null); + } else { + result.add(SafeEncoder.encode(barray)); + } + } + return result; + } - public String toString() { - return "ZSet"; - } + public String toString() { + return "ZSet"; + } }; public static final Builder> TUPLE_ZSET = new Builder>() { - @SuppressWarnings("unchecked") - public Set build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final Set result = new LinkedHashSet(l.size()); - Iterator iterator = l.iterator(); - while (iterator.hasNext()) { - result.add(new Tuple(SafeEncoder.encode(iterator.next()), - Double.valueOf(SafeEncoder.encode(iterator.next())))); - } - return result; - } + @SuppressWarnings("unchecked") + public Set build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final Set result = new LinkedHashSet(l.size()); + Iterator iterator = l.iterator(); + while (iterator.hasNext()) { + result.add(new Tuple(SafeEncoder.encode(iterator.next()), + Double.valueOf(SafeEncoder.encode(iterator.next())))); + } + return result; + } - public String toString() { - return "ZSet"; - } + public String toString() { + return "ZSet"; + } }; public static final Builder> TUPLE_ZSET_BINARY = new Builder>() { - @SuppressWarnings("unchecked") - public Set build(Object data) { - if (null == data) { - return null; - } - List l = (List) data; - final Set result = new LinkedHashSet(l.size()); - Iterator iterator = l.iterator(); - while (iterator.hasNext()) { - result.add(new Tuple(iterator.next(), Double - .valueOf(SafeEncoder.encode(iterator.next())))); - } + @SuppressWarnings("unchecked") + public Set build(Object data) { + if (null == data) { + return null; + } + List l = (List) data; + final Set result = new LinkedHashSet(l.size()); + Iterator iterator = l.iterator(); + while (iterator.hasNext()) { + result.add(new Tuple(iterator.next(), Double + .valueOf(SafeEncoder.encode(iterator.next())))); + } - return result; + return result; - } + } - public String toString() { - return "ZSet"; - } + public String toString() { + return "ZSet"; + } }; } diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index a2ec464..e793ce7 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -1,6 +1,6 @@ package redis.clients.jedis; -import redis.clients.util.SafeEncoder; +import static redis.clients.jedis.Protocol.toByteArray; import java.util.ArrayList; import java.util.HashMap; @@ -8,8 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import static redis.clients.jedis.Protocol.toByteArray; -import static redis.clients.jedis.Protocol.Command.HSCAN; +import redis.clients.util.SafeEncoder; public class Client extends BinaryClient implements Commands { public Client(final String host) { @@ -24,8 +23,10 @@ public class Client extends BinaryClient implements Commands { set(SafeEncoder.encode(key), SafeEncoder.encode(value)); } - public void set(final String key, final String value, final String nxxx, final String expx, final long time) { - set(SafeEncoder.encode(key), SafeEncoder.encode(value), SafeEncoder.encode(nxxx), SafeEncoder.encode(expx), time); + public void set(final String key, final String value, final String nxxx, + final String expx, final long time) { + set(SafeEncoder.encode(key), SafeEncoder.encode(value), + SafeEncoder.encode(nxxx), SafeEncoder.encode(expx), time); } public void get(final String key) { @@ -392,14 +393,14 @@ public class Client extends BinaryClient implements Commands { } blpop(bargs); } - + public void blpop(final int timeout, final String... keys) { - List args = new ArrayList(); - for (String arg : keys) { - args.add(arg); - } - args.add(String.valueOf(timeout)); - blpop(args.toArray(new String[args.size()])); + List args = new ArrayList(); + for (String arg : keys) { + args.add(arg); + } + args.add(String.valueOf(timeout)); + blpop(args.toArray(new String[args.size()])); } public void sort(final String key, final SortingParams sortingParameters, @@ -419,14 +420,14 @@ public class Client extends BinaryClient implements Commands { } brpop(bargs); } - + public void brpop(final int timeout, final String... keys) { - List args = new ArrayList(); - for (String arg : keys) { - args.add(arg); - } - args.add(String.valueOf(timeout)); - brpop(args.toArray(new String[args.size()])); + List args = new ArrayList(); + for (String arg : keys) { + args.add(arg); + } + args.add(String.valueOf(timeout)); + brpop(args.toArray(new String[args.size()])); } public void zcount(final String key, final double min, final double max) { @@ -621,7 +622,7 @@ public class Client extends BinaryClient implements Commands { } public void setbit(final String key, final long offset, final String value) { - setbit(SafeEncoder.encode(key), offset, SafeEncoder.encode(value)); + setbit(SafeEncoder.encode(key), offset, SafeEncoder.encode(value)); } public void getbit(String key, long offset) { @@ -709,19 +710,19 @@ public class Client extends BinaryClient implements Commands { public void scriptLoad(String script) { scriptLoad(SafeEncoder.encode(script)); } - - public void zadd(String key, Map scoreMembers) { - - HashMap binaryScoreMembers = new HashMap(); - for (Map.Entry entry : scoreMembers.entrySet()) { - - binaryScoreMembers.put(SafeEncoder.encode(entry.getKey()), entry.getValue()); - } - - zaddBinary(SafeEncoder.encode(key), binaryScoreMembers); + public void zadd(String key, Map scoreMembers) { + + HashMap binaryScoreMembers = new HashMap(); + + for (Map.Entry entry : scoreMembers.entrySet()) { + + binaryScoreMembers.put(SafeEncoder.encode(entry.getKey()), + entry.getValue()); } + zaddBinary(SafeEncoder.encode(key), binaryScoreMembers); + } public void objectRefcount(String key) { objectRefcount(SafeEncoder.encode(key)); @@ -736,15 +737,15 @@ public class Client extends BinaryClient implements Commands { } public void bitcount(final String key) { - bitcount(SafeEncoder.encode(key)); + bitcount(SafeEncoder.encode(key)); } public void bitcount(final String key, long start, long end) { - bitcount(SafeEncoder.encode(key), start, end); + bitcount(SafeEncoder.encode(key), start, end); } public void bitop(BitOP op, final String destKey, String... srcKeys) { - bitop(op, SafeEncoder.encode(destKey), getByteParams(srcKeys)); + bitop(op, SafeEncoder.encode(destKey), getByteParams(srcKeys)); } public void sentinel(final String... args) { @@ -755,132 +756,144 @@ public class Client extends BinaryClient implements Commands { sentinel(arg); } - public void dump(final String key) { - dump(SafeEncoder.encode(key)); + public void dump(final String key) { + dump(SafeEncoder.encode(key)); } - - public void restore(final String key, final int ttl, final byte[] serializedValue) { - restore(SafeEncoder.encode(key), ttl, serializedValue); + + public void restore(final String key, final int ttl, + final byte[] serializedValue) { + restore(SafeEncoder.encode(key), ttl, serializedValue); } - + public void pexpire(final String key, final int milliseconds) { - pexpire(SafeEncoder.encode(key), milliseconds); + pexpire(SafeEncoder.encode(key), milliseconds); } - + public void pexpireAt(final String key, final long millisecondsTimestamp) { - pexpireAt(SafeEncoder.encode(key), millisecondsTimestamp); + pexpireAt(SafeEncoder.encode(key), millisecondsTimestamp); } - + public void pttl(final String key) { - pttl(SafeEncoder.encode(key)); + pttl(SafeEncoder.encode(key)); } - + public void incrByFloat(final String key, final double increment) { - incrByFloat(SafeEncoder.encode(key), increment); + incrByFloat(SafeEncoder.encode(key), increment); } - - public void psetex(final String key, final int milliseconds, final String value) { - psetex(SafeEncoder.encode(key), milliseconds, SafeEncoder.encode(value)); + + public void psetex(final String key, final int milliseconds, + final String value) { + psetex(SafeEncoder.encode(key), milliseconds, SafeEncoder.encode(value)); } - + public void set(final String key, final String value, final String nxxx) { - set(SafeEncoder.encode(key), SafeEncoder.encode(value), SafeEncoder.encode(nxxx)); + set(SafeEncoder.encode(key), SafeEncoder.encode(value), + SafeEncoder.encode(nxxx)); } - - public void set(final String key, final String value, final String nxxx, final String expx, final int time) { - set(SafeEncoder.encode(key), SafeEncoder.encode(value), SafeEncoder.encode(nxxx), SafeEncoder.encode(expx), time); + + public void set(final String key, final String value, final String nxxx, + final String expx, final int time) { + set(SafeEncoder.encode(key), SafeEncoder.encode(value), + SafeEncoder.encode(nxxx), SafeEncoder.encode(expx), time); } - + public void srandmember(final String key, final int count) { - srandmember(SafeEncoder.encode(key), count); + srandmember(SafeEncoder.encode(key), count); } public void clientKill(final String client) { - clientKill(SafeEncoder.encode(client)); + clientKill(SafeEncoder.encode(client)); } - + public void clientSetname(final String name) { - clientSetname(SafeEncoder.encode(name)); + clientSetname(SafeEncoder.encode(name)); } - - public void migrate(final String host, final int port, final String key, final int destinationDb, final int timeout) { - migrate(SafeEncoder.encode(host), port, SafeEncoder.encode(key), destinationDb, timeout); + + public void migrate(final String host, final int port, final String key, + final int destinationDb, final int timeout) { + migrate(SafeEncoder.encode(host), port, SafeEncoder.encode(key), + destinationDb, timeout); } - - public void hincrByFloat(final String key, final String field, double increment) { - hincrByFloat(SafeEncoder.encode(key), SafeEncoder.encode(field), increment); + + public void hincrByFloat(final String key, final String field, + double increment) { + hincrByFloat(SafeEncoder.encode(key), SafeEncoder.encode(field), + increment); } - + public void hscan(final String key, int cursor, final ScanParams params) { - hscan(SafeEncoder.encode(key), cursor, params); + hscan(SafeEncoder.encode(key), cursor, params); } - + public void sscan(final String key, int cursor, final ScanParams params) { - sscan(SafeEncoder.encode(key), cursor, params); + sscan(SafeEncoder.encode(key), cursor, params); } - + public void zscan(final String key, int cursor, final ScanParams params) { - zscan(SafeEncoder.encode(key), cursor, params); + zscan(SafeEncoder.encode(key), cursor, params); } public void cluster(final String subcommand, final int... args) { - final byte[][] arg = new byte[args.length+1][]; + final byte[][] arg = new byte[args.length + 1][]; for (int i = 1; i < arg.length; i++) { - arg[i] = toByteArray(args[i-1]); + arg[i] = toByteArray(args[i - 1]); } arg[0] = SafeEncoder.encode(subcommand); cluster(arg); } public void cluster(final String subcommand, final String... args) { - final byte[][] arg = new byte[args.length+1][]; + final byte[][] arg = new byte[args.length + 1][]; for (int i = 1; i < arg.length; i++) { - arg[i] = SafeEncoder.encode(args[i-1]); + arg[i] = SafeEncoder.encode(args[i - 1]); } arg[0] = SafeEncoder.encode(subcommand); cluster(arg); } - + public void cluster(final String subcommand) { final byte[][] arg = new byte[1][]; arg[0] = SafeEncoder.encode(subcommand); cluster(arg); } - + public void clusterNodes() { cluster(Protocol.CLUSTER_NODES); } - + public void clusterMeet(final String ip, final int port) { cluster(Protocol.CLUSTER_MEET, ip, String.valueOf(port)); } - - public void clusterAddSlots(final int ...slots) { + + public void clusterAddSlots(final int... slots) { cluster(Protocol.CLUSTER_ADDSLOTS, slots); } - - public void clusterDelSlots(final int ...slots) { + + public void clusterDelSlots(final int... slots) { cluster(Protocol.CLUSTER_DELSLOTS, slots); } - + public void clusterInfo() { cluster(Protocol.CLUSTER_INFO); } - + public void clusterGetKeysInSlot(final int slot, final int count) { - final int[] args = new int[]{ slot, count }; - cluster(Protocol.CLUSTER_GETKEYSINSLOT, args); + final int[] args = new int[] { slot, count }; + cluster(Protocol.CLUSTER_GETKEYSINSLOT, args); } - + public void clusterSetSlotNode(final int slot, final String nodeId) { - cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_NODE, nodeId); + cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), + Protocol.CLUSTER_SETSLOT_NODE, nodeId); } - + public void clusterSetSlotMigrating(final int slot, final String nodeId) { - cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_MIGRATING, nodeId); + cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), + Protocol.CLUSTER_SETSLOT_MIGRATING, nodeId); } - + public void clusterSetSlotImporting(final int slot, final String nodeId) { - cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), Protocol.CLUSTER_SETSLOT_IMPORTING, nodeId); + cluster(Protocol.CLUSTER_SETSLOT, String.valueOf(slot), + Protocol.CLUSTER_SETSLOT_IMPORTING, nodeId); } } diff --git a/src/main/java/redis/clients/jedis/Commands.java b/src/main/java/redis/clients/jedis/Commands.java index c6b26f7..2d7ea92 100644 --- a/src/main/java/redis/clients/jedis/Commands.java +++ b/src/main/java/redis/clients/jedis/Commands.java @@ -143,8 +143,8 @@ public interface Commands { public void srandmember(final String key); public void zadd(final String key, final double score, final String member); - - public void zadd(final String key, final Map scoreMembers); + + public void zadd(final String key, final Map scoreMembers); public void zrange(final String key, final long start, final long end); diff --git a/src/main/java/redis/clients/jedis/Connection.java b/src/main/java/redis/clients/jedis/Connection.java index 1c42b94..50d7b97 100644 --- a/src/main/java/redis/clients/jedis/Connection.java +++ b/src/main/java/redis/clients/jedis/Connection.java @@ -25,218 +25,222 @@ public class Connection { private int timeout = Protocol.DEFAULT_TIMEOUT; public Socket getSocket() { - return socket; + return socket; } public int getTimeout() { - return timeout; + return timeout; } public void setTimeout(final int timeout) { - this.timeout = timeout; + this.timeout = timeout; } public void setTimeoutInfinite() { - try { - if(!isConnected()) { - connect(); - } - socket.setKeepAlive(true); - socket.setSoTimeout(0); - } catch (SocketException ex) { - throw new JedisException(ex); - } + try { + if (!isConnected()) { + connect(); + } + socket.setKeepAlive(true); + socket.setSoTimeout(0); + } catch (SocketException ex) { + throw new JedisException(ex); + } } public void rollbackTimeout() { - try { - socket.setSoTimeout(timeout); - socket.setKeepAlive(false); - } catch (SocketException ex) { - throw new JedisException(ex); - } + try { + socket.setSoTimeout(timeout); + socket.setKeepAlive(false); + } catch (SocketException ex) { + throw new JedisException(ex); + } } public Connection(final String host) { - super(); - this.host = host; + super(); + this.host = host; } protected void flush() { - try { - outputStream.flush(); - } catch (IOException e) { - throw new JedisConnectionException(e); - } + try { + outputStream.flush(); + } catch (IOException e) { + throw new JedisConnectionException(e); + } } protected Connection sendCommand(final Command cmd, final String... args) { - final byte[][] bargs = new byte[args.length][]; - for (int i = 0; i < args.length; i++) { - bargs[i] = SafeEncoder.encode(args[i]); - } - return sendCommand(cmd, bargs); + final byte[][] bargs = new byte[args.length][]; + for (int i = 0; i < args.length; i++) { + bargs[i] = SafeEncoder.encode(args[i]); + } + return sendCommand(cmd, bargs); } protected Connection sendCommand(final Command cmd, final byte[]... args) { - connect(); - Protocol.sendCommand(outputStream, cmd, args); - pipelinedCommands++; - return this; + connect(); + Protocol.sendCommand(outputStream, cmd, args); + pipelinedCommands++; + return this; } - + protected Connection sendCommand(final Command cmd) { - connect(); - Protocol.sendCommand(outputStream, cmd, new byte[0][]); - pipelinedCommands++; - return this; + connect(); + Protocol.sendCommand(outputStream, cmd, new byte[0][]); + pipelinedCommands++; + return this; } public Connection(final String host, final int port) { - super(); - this.host = host; - this.port = port; + super(); + this.host = host; + this.port = port; } public String getHost() { - return host; + return host; } public void setHost(final String host) { - this.host = host; + this.host = host; } public int getPort() { - return port; + return port; } public void setPort(final int port) { - this.port = port; + this.port = port; } public Connection() { - + } public void connect() { - if (!isConnected()) { - try { - socket = new Socket(); - //->@wjw_add - socket.setReuseAddress(true); - socket.setKeepAlive(true); //Will monitor the TCP connection is valid - socket.setTcpNoDelay(true); //Socket buffer Whetherclosed, to ensure timely delivery of data - socket.setSoLinger(true,0); //Control calls close () method, the underlying socket is closed immediately - //<-@wjw_add + if (!isConnected()) { + try { + socket = new Socket(); + // ->@wjw_add + socket.setReuseAddress(true); + socket.setKeepAlive(true); // Will monitor the TCP connection is + // valid + socket.setTcpNoDelay(true); // Socket buffer Whetherclosed, to + // ensure timely delivery of data + socket.setSoLinger(true, 0); // Control calls close () method, + // the underlying socket is closed + // immediately + // <-@wjw_add - socket.connect(new InetSocketAddress(host, port), timeout); - socket.setSoTimeout(timeout); - outputStream = new RedisOutputStream(socket.getOutputStream()); - inputStream = new RedisInputStream(socket.getInputStream()); - } catch (IOException ex) { - throw new JedisConnectionException(ex); - } - } + socket.connect(new InetSocketAddress(host, port), timeout); + socket.setSoTimeout(timeout); + outputStream = new RedisOutputStream(socket.getOutputStream()); + inputStream = new RedisInputStream(socket.getInputStream()); + } catch (IOException ex) { + throw new JedisConnectionException(ex); + } + } } public void disconnect() { - if (isConnected()) { - try { - inputStream.close(); - outputStream.close(); - if (!socket.isClosed()) { - socket.close(); - } - } catch (IOException ex) { - throw new JedisConnectionException(ex); - } - } + if (isConnected()) { + try { + inputStream.close(); + outputStream.close(); + if (!socket.isClosed()) { + socket.close(); + } + } catch (IOException ex) { + throw new JedisConnectionException(ex); + } + } } public boolean isConnected() { - return socket != null && socket.isBound() && !socket.isClosed() - && socket.isConnected() && !socket.isInputShutdown() - && !socket.isOutputShutdown(); + return socket != null && socket.isBound() && !socket.isClosed() + && socket.isConnected() && !socket.isInputShutdown() + && !socket.isOutputShutdown(); } protected String getStatusCodeReply() { - flush(); - pipelinedCommands--; - final byte[] resp = (byte[]) Protocol.read(inputStream); - if (null == resp) { - return null; - } else { - return SafeEncoder.encode(resp); - } + flush(); + pipelinedCommands--; + final byte[] resp = (byte[]) Protocol.read(inputStream); + if (null == resp) { + return null; + } else { + return SafeEncoder.encode(resp); + } } public String getBulkReply() { - final byte[] result = getBinaryBulkReply(); - if (null != result) { - return SafeEncoder.encode(result); - } else { - return null; - } + final byte[] result = getBinaryBulkReply(); + if (null != result) { + return SafeEncoder.encode(result); + } else { + return null; + } } public byte[] getBinaryBulkReply() { - flush(); - pipelinedCommands--; - return (byte[]) Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return (byte[]) Protocol.read(inputStream); } public Long getIntegerReply() { - flush(); - pipelinedCommands--; - return (Long) Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return (Long) Protocol.read(inputStream); } public List getMultiBulkReply() { - return BuilderFactory.STRING_LIST.build(getBinaryMultiBulkReply()); + return BuilderFactory.STRING_LIST.build(getBinaryMultiBulkReply()); } @SuppressWarnings("unchecked") public List getBinaryMultiBulkReply() { - flush(); - pipelinedCommands--; - return (List) Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return (List) Protocol.read(inputStream); } @SuppressWarnings("unchecked") public List getObjectMultiBulkReply() { - flush(); - pipelinedCommands--; - return (List) Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return (List) Protocol.read(inputStream); } - + @SuppressWarnings("unchecked") public List getIntegerMultiBulkReply() { - flush(); - pipelinedCommands--; - return (List) Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return (List) Protocol.read(inputStream); } public List getAll() { - return getAll(0); + return getAll(0); } public List getAll(int except) { - List all = new ArrayList(); - flush(); - while (pipelinedCommands > except) { - try{ - all.add(Protocol.read(inputStream)); - }catch(JedisDataException e){ - all.add(e); - } - pipelinedCommands--; - } - return all; + List all = new ArrayList(); + flush(); + while (pipelinedCommands > except) { + try { + all.add(Protocol.read(inputStream)); + } catch (JedisDataException e) { + all.add(e); + } + pipelinedCommands--; + } + return all; } public Object getOne() { - flush(); - pipelinedCommands--; - return Protocol.read(inputStream); + flush(); + pipelinedCommands--; + return Protocol.read(inputStream); } } diff --git a/src/main/java/redis/clients/jedis/HostAndPort.java b/src/main/java/redis/clients/jedis/HostAndPort.java index 33d1467..4f756d6 100644 --- a/src/main/java/redis/clients/jedis/HostAndPort.java +++ b/src/main/java/redis/clients/jedis/HostAndPort.java @@ -1,50 +1,49 @@ package redis.clients.jedis; public class HostAndPort { - public static final String LOCALHOST_STR = "localhost"; - - private String host; - private int port; - - public HostAndPort(String host, int port) { - this.host = host; - this.port = port; + public static final String LOCALHOST_STR = "localhost"; + + private String host; + private int port; + + public HostAndPort(String host, int port) { + this.host = host; + this.port = port; + } + + public String getHost() { + return host; + } + + public int getPort() { + return port; + } + + @Override + public boolean equals(Object obj) { + if (obj instanceof HostAndPort) { + HostAndPort hp = (HostAndPort) obj; + + String thisHost = convertHost(host); + String hpHost = convertHost(hp.host); + return port == hp.port && thisHost.equals(hpHost); + } - public String getHost() { - return host; - } + return false; + } - public int getPort() { - return port; - } + @Override + public String toString() { + return host + ":" + port; + } - @Override - public boolean equals(Object obj) { - if (obj instanceof HostAndPort) { - HostAndPort hp = (HostAndPort) obj; - - String thisHost = convertHost(host); - String hpHost = convertHost(hp.host); - return port == hp.port && - thisHost.equals(hpHost); - - } - - return false; - } - - @Override - public String toString() { - return host + ":" + port; - } - private String convertHost(String host) { - if (host.equals("127.0.0.1")) - return LOCALHOST_STR; - else if (host.equals("::1")) - return LOCALHOST_STR; + if (host.equals("127.0.0.1")) + return LOCALHOST_STR; + else if (host.equals("::1")) + return LOCALHOST_STR; - return host; + return host; } } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index cdc3918..d465179 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -13,10 +13,10 @@ import java.util.Set; import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.util.SafeEncoder; import redis.clients.util.Slowlog; -import java.net.URI; -import java.util.*; -public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommands, AdvancedJedisCommands, ScriptingCommands, BasicCommands, ClusterCommands { +public class Jedis extends BinaryJedis implements JedisCommands, + MultiKeyCommands, AdvancedJedisCommands, ScriptingCommands, + BasicCommands, ClusterCommands { public Jedis(final String host) { super(host); } @@ -56,24 +56,29 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand /** * Set the string value as value of the key. The string can't be longer than * 1073741824 bytes (1 GB). + * * @param key * @param value - * @param nxxx NX|XX, NX -- Only set the key if it does not already exist. - * XX -- Only set the key if it already exist. - * @param expx EX|PX, expire time units: EX = seconds; PX = milliseconds - * @param time expire time in the units of {@param #expx} + * @param nxxx + * NX|XX, NX -- Only set the key if it does not already exist. XX + * -- Only set the key if it already exist. + * @param expx + * EX|PX, expire time units: EX = seconds; PX = milliseconds + * @param time + * expire time in the units of {@param #expx} * @return Status code reply */ - public String set(final String key, final String value, final String nxxx, final String expx, final long time) { - checkIsInMulti(); - client.set(key, value, nxxx, expx, time); - return client.getStatusCodeReply(); + public String set(final String key, final String value, final String nxxx, + final String expx, final long time) { + checkIsInMulti(); + client.set(key, value, nxxx, expx, time); + return client.getStatusCodeReply(); } /** - * Get the value of the specified key. If the key does not exist null - * is returned. If the value stored at key is not a string an - * error is returned because GET can only handle string values. + * Get the value of the specified key. If the key does not exist null is + * returned. If the value stored at key is not a string an error is returned + * because GET can only handle string values. *

* Time complexity: O(1) * @@ -119,8 +124,8 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public Long del(String key) { - client.del(key); - return client.getIntegerReply(); + client.del(key); + return client.getIntegerReply(); } /** @@ -1381,7 +1386,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand client.srandmember(key); return client.getBulkReply(); } - + public List srandmember(final String key, final int count) { checkIsInMulti(); client.srandmember(key, count); @@ -1416,9 +1421,9 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public Long zadd(final String key, final Map scoreMembers) { - checkIsInMulti(); - client.zadd(key, scoreMembers); - return client.getIntegerReply(); + checkIsInMulti(); + client.zadd(key, scoreMembers); + return client.getIntegerReply(); } public Set zrange(final String key, final long start, final long end) { @@ -1789,39 +1794,39 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public List blpop(String... args) { - client.blpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + client.blpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List brpop(String... args) { - client.brpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + client.brpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List blpop(String arg) { - String[] args = new String[1]; - args[0] = arg; - client.blpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + String[] args = new String[1]; + args[0] = arg; + client.blpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } public List brpop(String arg) { - String[] args = new String[1]; - args[0] = arg; - client.brpop(args); - client.setTimeoutInfinite(); - final List multiBulkReply = client.getMultiBulkReply(); - client.rollbackTimeout(); - return multiBulkReply; + String[] args = new String[1]; + args[0] = arg; + client.brpop(args); + client.setTimeoutInfinite(); + final List multiBulkReply = client.getMultiBulkReply(); + client.rollbackTimeout(); + return multiBulkReply; } /** @@ -1954,8 +1959,6 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand return multiBulkReply; } - - public Long zcount(final String key, final double min, final double max) { checkIsInMulti(); client.zcount(key, min, max); @@ -2020,8 +2023,10 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand * @see #zcount(String, double, double) * * @param key - * @param min a double or Double.MIN_VALUE for "-inf" - * @param max a double or Double.MAX_VALUE for "+inf" + * @param min + * a double or Double.MIN_VALUE for "-inf" + * @param max + * a double or Double.MAX_VALUE for "+inf" * @return Multi bulk reply specifically a list of elements in the specified * score range. */ @@ -2628,8 +2633,8 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public Boolean setbit(String key, long offset, String value) { - client.setbit(key, offset, value); - return client.getIntegerReply() == 1; + client.setbit(key, offset, value); + return client.getIntegerReply() == 1; } /** @@ -2742,26 +2747,26 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public void subscribe(final JedisPubSub jedisPubSub, - final String... channels) { - client.setTimeoutInfinite(); - jedisPubSub.proceed(client, channels); - client.rollbackTimeout(); + final String... channels) { + client.setTimeoutInfinite(); + jedisPubSub.proceed(client, channels); + client.rollbackTimeout(); } public Long publish(final String channel, final String message) { - checkIsInMulti(); - connect(); - client.publish(channel, message); - return client.getIntegerReply(); + checkIsInMulti(); + connect(); + client.publish(channel, message); + return client.getIntegerReply(); } public void psubscribe(final JedisPubSub jedisPubSub, - final String... patterns) { - checkIsInMulti(); - connect(); - client.setTimeoutInfinite(); - jedisPubSub.proceedWithPatterns(client, patterns); - client.rollbackTimeout(); + final String... patterns) { + checkIsInMulti(); + connect(); + client.setTimeoutInfinite(); + jedisPubSub.proceedWithPatterns(client, patterns); + client.rollbackTimeout(); } protected static String[] getParams(List keys, List args) { @@ -2793,7 +2798,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand private Object getEvalResult() { Object result = client.getOne(); - + if (result instanceof byte[]) return SafeEncoder.encode((byte[]) result); @@ -2870,18 +2875,18 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public Long bitcount(final String key) { - client.bitcount(key); - return client.getIntegerReply(); + client.bitcount(key); + return client.getIntegerReply(); } public Long bitcount(final String key, long start, long end) { - client.bitcount(key, start, end); - return client.getIntegerReply(); + client.bitcount(key, start, end); + return client.getIntegerReply(); } public Long bitop(BitOP op, final String destKey, String... srcKeys) { - client.bitop(op, destKey, srcKeys); - return client.getIntegerReply(); + client.bitop(op, destKey, srcKeys); + return client.getIntegerReply(); } /** @@ -2917,7 +2922,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand * @return */ @SuppressWarnings("rawtypes") - public List> sentinelMasters() { + public List> sentinelMasters() { client.sentinel(Protocol.SENTINEL_MASTERS); final List reply = client.getObjectMultiBulkReply(); @@ -2995,7 +3000,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand * @return */ @SuppressWarnings("rawtypes") - public List> sentinelSlaves(String masterName) { + public List> sentinelSlaves(String masterName) { client.sentinel(Protocol.SENTINEL_SLAVES, masterName); final List reply = client.getObjectMultiBulkReply(); @@ -3007,211 +3012,224 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand } public byte[] dump(final String key) { - checkIsInMulti(); - client.dump(key); - return client.getBinaryBulkReply(); + checkIsInMulti(); + client.dump(key); + return client.getBinaryBulkReply(); } - - public String restore(final String key, final int ttl, final byte[] serializedValue) { - checkIsInMulti(); - client.restore(key, ttl, serializedValue); - return client.getStatusCodeReply(); + + public String restore(final String key, final int ttl, + final byte[] serializedValue) { + checkIsInMulti(); + client.restore(key, ttl, serializedValue); + return client.getStatusCodeReply(); } - + public Long pexpire(final String key, final int milliseconds) { - checkIsInMulti(); - client.pexpire(key, milliseconds); - return client.getIntegerReply(); + checkIsInMulti(); + client.pexpire(key, milliseconds); + return client.getIntegerReply(); } - + public Long pexpireAt(final String key, final long millisecondsTimestamp) { - checkIsInMulti(); - client.pexpireAt(key, millisecondsTimestamp); - return client.getIntegerReply(); + checkIsInMulti(); + client.pexpireAt(key, millisecondsTimestamp); + return client.getIntegerReply(); } - + public Long pttl(final String key) { - checkIsInMulti(); - client.pttl(key); - return client.getIntegerReply(); + checkIsInMulti(); + client.pttl(key); + return client.getIntegerReply(); } - + public Double incrByFloat(final String key, final double increment) { - checkIsInMulti(); - client.incrByFloat(key, increment); - String relpy = client.getBulkReply(); - return (relpy != null ? new Double(relpy) : null); + checkIsInMulti(); + client.incrByFloat(key, increment); + String relpy = client.getBulkReply(); + return (relpy != null ? new Double(relpy) : null); } - - public String psetex(final String key, final int milliseconds, final String value) { - checkIsInMulti(); - client.psetex(key, milliseconds, value); - return client.getStatusCodeReply(); + + public String psetex(final String key, final int milliseconds, + final String value) { + checkIsInMulti(); + client.psetex(key, milliseconds, value); + return client.getStatusCodeReply(); } - + public String set(final String key, final String value, final String nxxx) { - checkIsInMulti(); - client.set(key, value, nxxx); - return client.getStatusCodeReply(); + checkIsInMulti(); + client.set(key, value, nxxx); + return client.getStatusCodeReply(); } - - public String set(final String key, final String value, final String nxxx, final String expx, final int time) { - checkIsInMulti(); - client.set(key, value, nxxx, expx, time); - return client.getStatusCodeReply(); + + public String set(final String key, final String value, final String nxxx, + final String expx, final int time) { + checkIsInMulti(); + client.set(key, value, nxxx, expx, time); + return client.getStatusCodeReply(); } - + public String clientKill(final String client) { - checkIsInMulti(); - this.client.clientKill(client); - return this.client.getStatusCodeReply(); + checkIsInMulti(); + this.client.clientKill(client); + return this.client.getStatusCodeReply(); } - + public String clientSetname(final String name) { - checkIsInMulti(); - client.clientSetname(name); - return client.getStatusCodeReply(); + checkIsInMulti(); + client.clientSetname(name); + return client.getStatusCodeReply(); } - - public String migrate(final String host, final int port, final String key, final int destinationDb, final int timeout) { - checkIsInMulti(); - client.migrate(host, port, key, destinationDb, timeout); - return client.getStatusCodeReply(); + + public String migrate(final String host, final int port, final String key, + final int destinationDb, final int timeout) { + checkIsInMulti(); + client.migrate(host, port, key, destinationDb, timeout); + return client.getStatusCodeReply(); } - - public Double hincrByFloat(final String key, final String field, double increment) { - checkIsInMulti(); - client.hincrByFloat(key, field, increment); - String relpy = client.getBulkReply(); - return (relpy != null ? new Double(relpy) : null); + + public Double hincrByFloat(final String key, final String field, + double increment) { + checkIsInMulti(); + client.hincrByFloat(key, field, increment); + String relpy = client.getBulkReply(); + return (relpy != null ? new Double(relpy) : null); } public ScanResult scan(int cursor) { return scan(cursor, new ScanParams()); } - + public ScanResult scan(int cursor, final ScanParams params) { checkIsInMulti(); client.scan(cursor, params); List result = client.getObjectMultiBulkReply(); - int newcursor = Integer.parseInt(new String((byte[])result.get(0))); + int newcursor = Integer.parseInt(new String((byte[]) result.get(0))); List results = new ArrayList(); - List rawResults = (List)result.get(1); + List rawResults = (List) result.get(1); for (byte[] bs : rawResults) { results.add(SafeEncoder.encode(bs)); } return new ScanResult(newcursor, results); } - - public ScanResult> hscan(final String key, int cursor) { + + public ScanResult> hscan(final String key, + int cursor) { return hscan(key, cursor, new ScanParams()); } - - public ScanResult> hscan(final String key, int cursor, final ScanParams params) { + + public ScanResult> hscan(final String key, + int cursor, final ScanParams params) { checkIsInMulti(); client.hscan(key, cursor, params); List result = client.getObjectMultiBulkReply(); - int newcursor = Integer.parseInt(new String((byte[])result.get(0))); + int newcursor = Integer.parseInt(new String((byte[]) result.get(0))); List> results = new ArrayList>(); - List rawResults = (List)result.get(1); + List rawResults = (List) result.get(1); Iterator iterator = rawResults.iterator(); - while(iterator.hasNext()) { - results.add(new AbstractMap.SimpleEntry(SafeEncoder.encode(iterator.next()), SafeEncoder.encode(iterator.next()))); + while (iterator.hasNext()) { + results.add(new AbstractMap.SimpleEntry(SafeEncoder + .encode(iterator.next()), SafeEncoder.encode(iterator + .next()))); } return new ScanResult>(newcursor, results); } - + public ScanResult sscan(final String key, int cursor) { return sscan(key, cursor, new ScanParams()); } - - public ScanResult sscan(final String key, int cursor, final ScanParams params) { + + public ScanResult sscan(final String key, int cursor, + final ScanParams params) { checkIsInMulti(); client.sscan(key, cursor, params); List result = client.getObjectMultiBulkReply(); - int newcursor = Integer.parseInt(new String((byte[])result.get(0))); + int newcursor = Integer.parseInt(new String((byte[]) result.get(0))); List results = new ArrayList(); - List rawResults = (List)result.get(1); + List rawResults = (List) result.get(1); for (byte[] bs : rawResults) { results.add(SafeEncoder.encode(bs)); } return new ScanResult(newcursor, results); } - + public ScanResult zscan(final String key, int cursor) { return zscan(key, cursor, new ScanParams()); } - - public ScanResult zscan(final String key, int cursor, final ScanParams params) { + + public ScanResult zscan(final String key, int cursor, + final ScanParams params) { checkIsInMulti(); client.zscan(key, cursor, params); List result = client.getObjectMultiBulkReply(); - int newcursor = Integer.parseInt(new String((byte[])result.get(0))); + int newcursor = Integer.parseInt(new String((byte[]) result.get(0))); List results = new ArrayList(); - List rawResults = (List)result.get(1); + List rawResults = (List) result.get(1); Iterator iterator = rawResults.iterator(); - while(iterator.hasNext()) { - results.add(new Tuple(SafeEncoder.encode(iterator.next()), Double.valueOf(SafeEncoder.encode(iterator.next())))); + while (iterator.hasNext()) { + results.add(new Tuple(SafeEncoder.encode(iterator.next()), Double + .valueOf(SafeEncoder.encode(iterator.next())))); } return new ScanResult(newcursor, results); } + public String clusterNodes() { - checkIsInMulti(); - client.clusterNodes(); - return client.getBulkReply(); - } - - public String clusterMeet(final String ip, final int port) { - checkIsInMulti(); - client.clusterMeet(ip, port); - return client.getStatusCodeReply(); - } - - public String clusterAddSlots(final int ...slots) { - checkIsInMulti(); - client.clusterAddSlots(slots); - return client.getStatusCodeReply(); - } - - public String clusterDelSlots(final int ...slots) { - checkIsInMulti(); - client.clusterDelSlots(slots); - return client.getStatusCodeReply(); - } - - public String clusterInfo() { - checkIsInMulti(); - client.clusterInfo(); - return client.getStatusCodeReply(); - } - - public List clusterGetKeysInSlot(final int slot, final int count) { - checkIsInMulti(); - client.clusterGetKeysInSlot(slot, count); - return client.getMultiBulkReply(); - } - - public String clusterSetSlotNode(final int slot, final String nodeId) { - checkIsInMulti(); - client.clusterSetSlotNode(slot, nodeId); - return client.getStatusCodeReply(); - } - - public String clusterSetSlotMigrating(final int slot, final String nodeId) { - checkIsInMulti(); - client.clusterSetSlotMigrating(slot, nodeId); - return client.getStatusCodeReply(); - } - - public String clusterSetSlotImporting(final int slot, final String nodeId) { - checkIsInMulti(); - client.clusterSetSlotImporting(slot, nodeId); - return client.getStatusCodeReply(); + checkIsInMulti(); + client.clusterNodes(); + return client.getBulkReply(); } - public String asking() { - checkIsInMulti(); - client.asking(); - return client.getStatusCodeReply(); - } + public String clusterMeet(final String ip, final int port) { + checkIsInMulti(); + client.clusterMeet(ip, port); + return client.getStatusCodeReply(); + } + + public String clusterAddSlots(final int... slots) { + checkIsInMulti(); + client.clusterAddSlots(slots); + return client.getStatusCodeReply(); + } + + public String clusterDelSlots(final int... slots) { + checkIsInMulti(); + client.clusterDelSlots(slots); + return client.getStatusCodeReply(); + } + + public String clusterInfo() { + checkIsInMulti(); + client.clusterInfo(); + return client.getStatusCodeReply(); + } + + public List clusterGetKeysInSlot(final int slot, final int count) { + checkIsInMulti(); + client.clusterGetKeysInSlot(slot, count); + return client.getMultiBulkReply(); + } + + public String clusterSetSlotNode(final int slot, final String nodeId) { + checkIsInMulti(); + client.clusterSetSlotNode(slot, nodeId); + return client.getStatusCodeReply(); + } + + public String clusterSetSlotMigrating(final int slot, final String nodeId) { + checkIsInMulti(); + client.clusterSetSlotMigrating(slot, nodeId); + return client.getStatusCodeReply(); + } + + public String clusterSetSlotImporting(final int slot, final String nodeId) { + checkIsInMulti(); + client.clusterSetSlotImporting(slot, nodeId); + return client.getStatusCodeReply(); + } + + public String asking() { + checkIsInMulti(); + client.asking(); + return client.getStatusCodeReply(); + } } diff --git a/src/main/java/redis/clients/jedis/JedisClusterCommand.java b/src/main/java/redis/clients/jedis/JedisClusterCommand.java index 8596971..41087a7 100644 --- a/src/main/java/redis/clients/jedis/JedisClusterCommand.java +++ b/src/main/java/redis/clients/jedis/JedisClusterCommand.java @@ -7,47 +7,54 @@ import redis.clients.jedis.exceptions.JedisRedirectionException; import redis.clients.util.JedisClusterCRC16; public abstract class JedisClusterCommand { - - private boolean asking = false; - - private JedisClusterConnectionHandler connectionHandler; - private int commandTimeout; - private int redirections; -// private boolean asking = false; - - public JedisClusterCommand(JedisClusterConnectionHandler connectionHandler, int timeout, int maxRedirections) { - this.connectionHandler = connectionHandler; - this.commandTimeout = timeout; - this.redirections = maxRedirections; - } - public abstract T execute(); - - public T run(String key) { - try { - - if (key == null) { - throw new JedisClusterException("No way to dispatch this command to Redis Cluster."); - } else if (redirections == 0) { - throw new JedisClusterMaxRedirectionsException("Too many Cluster redirections?"); - } - connectionHandler.getConnectionFromSlot(JedisClusterCRC16.getSlot(key)); - if (asking) { - //TODO: Pipeline asking with the original command to make it faster.... - connectionHandler.getConnection().asking(); - } - return execute(); - } catch (JedisRedirectionException jre) { - return handleRedirection(jre, key); - } - } + private boolean asking = false; - private T handleRedirection(JedisRedirectionException jre, String key) { - if (jre instanceof JedisAskDataException) { - asking = true; - } - redirections--; - this.connectionHandler.assignSlotToNode(jre.getSlot(), jre.getTargetNode()); - return run(key); + private JedisClusterConnectionHandler connectionHandler; + private int commandTimeout; + private int redirections; + + // private boolean asking = false; + + public JedisClusterCommand(JedisClusterConnectionHandler connectionHandler, + int timeout, int maxRedirections) { + this.connectionHandler = connectionHandler; + this.commandTimeout = timeout; + this.redirections = maxRedirections; + } + + public abstract T execute(); + + public T run(String key) { + try { + + if (key == null) { + throw new JedisClusterException( + "No way to dispatch this command to Redis Cluster."); + } else if (redirections == 0) { + throw new JedisClusterMaxRedirectionsException( + "Too many Cluster redirections?"); + } + connectionHandler.getConnectionFromSlot(JedisClusterCRC16 + .getSlot(key)); + if (asking) { + // TODO: Pipeline asking with the original command to make it + // faster.... + connectionHandler.getConnection().asking(); + } + return execute(); + } catch (JedisRedirectionException jre) { + return handleRedirection(jre, key); } + } + + private T handleRedirection(JedisRedirectionException jre, String key) { + if (jre instanceof JedisAskDataException) { + asking = true; + } + redirections--; + this.connectionHandler.assignSlotToNode(jre.getSlot(), + jre.getTargetNode()); + return run(key); + } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/JedisClusterConnectionHandler.java b/src/main/java/redis/clients/jedis/JedisClusterConnectionHandler.java index 765b9a2..045d365 100644 --- a/src/main/java/redis/clients/jedis/JedisClusterConnectionHandler.java +++ b/src/main/java/redis/clients/jedis/JedisClusterConnectionHandler.java @@ -5,78 +5,80 @@ import java.util.Map; import java.util.Random; import java.util.Set; - public abstract class JedisClusterConnectionHandler { - - protected Map nodes = new HashMap(); - protected Map slots = new HashMap(); - - abstract Jedis getConnection(); - abstract Jedis getConnectionFromSlot(int slot); - - public JedisClusterConnectionHandler(Set nodes) { - initializeSlotsCache(nodes); - } - - public Map getNodes() { - return nodes; - } - - private void initializeSlotsCache(Set nodes) { - for (HostAndPort hostAndPort : nodes) { - JedisPool jp = new JedisPool(hostAndPort.getHost(), hostAndPort.getPort()); - this.nodes.put(hostAndPort.getHost() + hostAndPort.getPort(), jp); - discoverClusterNodesAndSlots(jp); - } + protected Map nodes = new HashMap(); + protected Map slots = new HashMap(); + + abstract Jedis getConnection(); + + abstract Jedis getConnectionFromSlot(int slot); + + public JedisClusterConnectionHandler(Set nodes) { + initializeSlotsCache(nodes); + } + + public Map getNodes() { + return nodes; + } + + private void initializeSlotsCache(Set nodes) { + for (HostAndPort hostAndPort : nodes) { + JedisPool jp = new JedisPool(hostAndPort.getHost(), + hostAndPort.getPort()); + this.nodes.put(hostAndPort.getHost() + hostAndPort.getPort(), jp); + discoverClusterNodesAndSlots(jp); } - private void discoverClusterNodesAndSlots(JedisPool jp) { - String localNodes = jp.getResource().clusterNodes(); - for (String nodeInfo : localNodes.split("\n")) { - HostAndPort node = getHostAndPortFromNodeLine(nodeInfo); - JedisPool nodePool = new JedisPool(node.getHost(), node.getPort()); - this.nodes.put(node.getHost() + node.getPort(), nodePool); - populateNodeSlots(nodeInfo, nodePool); - } - } + } - private void populateNodeSlots(String nodeInfo, JedisPool nodePool) { - String[] nodeInfoArray = nodeInfo.split(" "); - if (nodeInfoArray.length > 7) { - for (int i = 8; i < nodeInfoArray.length; i++) { - processSlot(nodeInfoArray[i], nodePool); - } - } + private void discoverClusterNodesAndSlots(JedisPool jp) { + String localNodes = jp.getResource().clusterNodes(); + for (String nodeInfo : localNodes.split("\n")) { + HostAndPort node = getHostAndPortFromNodeLine(nodeInfo); + JedisPool nodePool = new JedisPool(node.getHost(), node.getPort()); + this.nodes.put(node.getHost() + node.getPort(), nodePool); + populateNodeSlots(nodeInfo, nodePool); } + } - private void processSlot(String slot, JedisPool nodePool) { - if (slot.contains("-")) { - String[] slotRange = slot.split("-"); - for (int i = Integer.valueOf(slotRange[0]); i <= Integer.valueOf(slotRange[1]); i++) { - slots.put(i, nodePool); - } - } else { - slots.put(Integer.valueOf(slot), nodePool); - } + private void populateNodeSlots(String nodeInfo, JedisPool nodePool) { + String[] nodeInfoArray = nodeInfo.split(" "); + if (nodeInfoArray.length > 7) { + for (int i = 8; i < nodeInfoArray.length; i++) { + processSlot(nodeInfoArray[i], nodePool); + } } + } - private HostAndPort getHostAndPortFromNodeLine(String nodeInfo) { - String stringHostAndPort = nodeInfo.split(" ",3)[1]; - String[] arrayHostAndPort = stringHostAndPort.split(":"); - return new HostAndPort(arrayHostAndPort[0], Integer.valueOf(arrayHostAndPort[1])); + private void processSlot(String slot, JedisPool nodePool) { + if (slot.contains("-")) { + String[] slotRange = slot.split("-"); + for (int i = Integer.valueOf(slotRange[0]); i <= Integer + .valueOf(slotRange[1]); i++) { + slots.put(i, nodePool); + } + } else { + slots.put(Integer.valueOf(slot), nodePool); } + } + + private HostAndPort getHostAndPortFromNodeLine(String nodeInfo) { + String stringHostAndPort = nodeInfo.split(" ", 3)[1]; + String[] arrayHostAndPort = stringHostAndPort.split(":"); + return new HostAndPort(arrayHostAndPort[0], + Integer.valueOf(arrayHostAndPort[1])); + } + + public void assignSlotToNode(int slot, HostAndPort targetNode) { + JedisPool targetPool = nodes.get(targetNode.getHost() + + targetNode.getPort()); + slots.put(slot, targetPool); + } + + protected JedisPool getRandomConnection() { + Object[] nodeArray = nodes.values().toArray(); + return (JedisPool) (nodeArray[new Random().nextInt(nodeArray.length)]); + } - public void assignSlotToNode(int slot, HostAndPort targetNode) { - JedisPool targetPool = nodes.get(targetNode.getHost() + targetNode.getPort()); - slots.put(slot, targetPool); - } - - - protected JedisPool getRandomConnection() { - Object[] nodeArray = nodes.values().toArray(); - return (JedisPool) (nodeArray[new Random().nextInt(nodeArray.length)]); - } - - } diff --git a/src/main/java/redis/clients/jedis/JedisCommands.java b/src/main/java/redis/clients/jedis/JedisCommands.java index 4f9af0d..3077e68 100644 --- a/src/main/java/redis/clients/jedis/JedisCommands.java +++ b/src/main/java/redis/clients/jedis/JedisCommands.java @@ -7,8 +7,7 @@ import java.util.Set; /** * Common interface for sharded and non-sharded Jedis */ -public interface - JedisCommands { +public interface JedisCommands { String set(String key, String value); String get(String key); @@ -114,8 +113,8 @@ public interface Long strlen(String key); Long zadd(String key, double score, String member); - - Long zadd(String key, Map scoreMembers); + + Long zadd(String key, Map scoreMembers); Set zrange(String key, long start, long end); @@ -152,50 +151,50 @@ public interface Set zrevrangeByScore(String key, double max, double min); Set zrangeByScore(String key, double min, double max, int offset, - int count); + int count); Set zrevrangeByScore(String key, String max, String min); Set zrangeByScore(String key, String min, String max, int offset, - int count); + int count); Set zrevrangeByScore(String key, double max, double min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(String key, double min, double max); Set zrevrangeByScoreWithScores(String key, double max, double min); Set zrangeByScoreWithScores(String key, double min, double max, - int offset, int count); - + int offset, int count); + Set zrevrangeByScore(String key, String max, String min, - int offset, int count); + int offset, int count); Set zrangeByScoreWithScores(String key, String min, String max); - + Set zrevrangeByScoreWithScores(String key, String max, String min); Set zrangeByScoreWithScores(String key, String min, String max, - int offset, int count); + int offset, int count); Set zrevrangeByScoreWithScores(String key, double max, double min, - int offset, int count); - + int offset, int count); + Set zrevrangeByScoreWithScores(String key, String max, String min, - int offset, int count); + int offset, int count); Long zremrangeByRank(String key, long start, long end); Long zremrangeByScore(String key, double start, double end); - + Long zremrangeByScore(String key, String start, String end); Long linsert(String key, Client.LIST_POSITION where, String pivot, - String value); - + String value); + Long lpushx(String key, String... string); - + Long rpushx(String key, String... string); List blpop(String arg); @@ -211,10 +210,10 @@ public interface Long bitcount(final String key); Long bitcount(final String key, long start, long end); - + ScanResult> hscan(final String key, int cursor); - + ScanResult sscan(final String key, int cursor); - + ScanResult zscan(final String key, int cursor); } diff --git a/src/main/java/redis/clients/jedis/JedisMonitor.java b/src/main/java/redis/clients/jedis/JedisMonitor.java index dff2672..cd8e802 100644 --- a/src/main/java/redis/clients/jedis/JedisMonitor.java +++ b/src/main/java/redis/clients/jedis/JedisMonitor.java @@ -4,12 +4,12 @@ public abstract class JedisMonitor { protected Client client; public void proceed(Client client) { - this.client = client; - this.client.setTimeoutInfinite(); - do { - String command = client.getBulkReply(); - onCommand(command); - } while (client.isConnected()); + this.client = client; + this.client.setTimeoutInfinite(); + do { + String command = client.getBulkReply(); + onCommand(command); + } while (client.isConnected()); } public abstract void onCommand(String command); diff --git a/src/main/java/redis/clients/jedis/JedisPool.java b/src/main/java/redis/clients/jedis/JedisPool.java index 241dfe8..6b2c80c 100644 --- a/src/main/java/redis/clients/jedis/JedisPool.java +++ b/src/main/java/redis/clients/jedis/JedisPool.java @@ -18,7 +18,7 @@ public class JedisPool extends Pool { this(new GenericObjectPoolConfig(), host, port, Protocol.DEFAULT_TIMEOUT, null, Protocol.DEFAULT_DATABASE, null); } - + public JedisPool(final String host) { URI uri = URI.create(host); if (uri.getScheme() != null && uri.getScheme().equals("redis")) { @@ -84,7 +84,7 @@ public class JedisPool extends Pool { } public void returnResource(final Jedis resource) { - resource.resetState(); + resource.resetState(); returnResourceObject(resource); } } diff --git a/src/main/java/redis/clients/jedis/JedisPoolConfig.java b/src/main/java/redis/clients/jedis/JedisPoolConfig.java index fff38d4..5efdde8 100644 --- a/src/main/java/redis/clients/jedis/JedisPoolConfig.java +++ b/src/main/java/redis/clients/jedis/JedisPoolConfig.java @@ -4,10 +4,10 @@ import org.apache.commons.pool2.impl.GenericObjectPoolConfig; public class JedisPoolConfig extends GenericObjectPoolConfig { public JedisPoolConfig() { - // defaults to make your life with connection pool easier :) - setTestWhileIdle(true); - setMinEvictableIdleTimeMillis(60000); - setTimeBetweenEvictionRunsMillis(30000); - setNumTestsPerEvictionRun(-1); + // defaults to make your life with connection pool easier :) + setTestWhileIdle(true); + setMinEvictableIdleTimeMillis(60000); + setTimeBetweenEvictionRunsMillis(30000); + setNumTestsPerEvictionRun(-1); } } diff --git a/src/main/java/redis/clients/jedis/JedisPubSub.java b/src/main/java/redis/clients/jedis/JedisPubSub.java index d07a409..1f3ac5f 100644 --- a/src/main/java/redis/clients/jedis/JedisPubSub.java +++ b/src/main/java/redis/clients/jedis/JedisPubSub.java @@ -21,7 +21,7 @@ public abstract class JedisPubSub { public abstract void onMessage(String channel, String message); public abstract void onPMessage(String pattern, String channel, - String message); + String message); public abstract void onSubscribe(String channel, int subscribedChannels); @@ -32,115 +32,115 @@ public abstract class JedisPubSub { public abstract void onPSubscribe(String pattern, int subscribedChannels); public void unsubscribe() { - if (client == null) { - throw new JedisConnectionException( - "JedisPubSub was not subscribed to a Jedis instance."); - } - client.unsubscribe(); - client.flush(); + if (client == null) { + throw new JedisConnectionException( + "JedisPubSub was not subscribed to a Jedis instance."); + } + client.unsubscribe(); + client.flush(); } public void unsubscribe(String... channels) { - client.unsubscribe(channels); - client.flush(); + client.unsubscribe(channels); + client.flush(); } public void subscribe(String... channels) { - client.subscribe(channels); - client.flush(); + client.subscribe(channels); + client.flush(); } public void psubscribe(String... patterns) { - client.psubscribe(patterns); - client.flush(); + client.psubscribe(patterns); + client.flush(); } public void punsubscribe() { - client.punsubscribe(); - client.flush(); + client.punsubscribe(); + client.flush(); } public void punsubscribe(String... patterns) { - client.punsubscribe(patterns); - client.flush(); + client.punsubscribe(patterns); + client.flush(); } public boolean isSubscribed() { - return subscribedChannels > 0; + return subscribedChannels > 0; } public void proceedWithPatterns(Client client, String... patterns) { - this.client = client; - client.psubscribe(patterns); - client.flush(); - process(client); + this.client = client; + client.psubscribe(patterns); + client.flush(); + process(client); } public void proceed(Client client, String... channels) { - this.client = client; - client.subscribe(channels); - client.flush(); - process(client); + this.client = client; + client.subscribe(channels); + client.flush(); + process(client); } private void process(Client client) { - do { - List reply = client.getObjectMultiBulkReply(); - final Object firstObj = reply.get(0); - if (!(firstObj instanceof byte[])) { - throw new JedisException("Unknown message type: " + firstObj); - } - final byte[] resp = (byte[]) firstObj; - if (Arrays.equals(SUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bchannel = (byte[]) reply.get(1); - final String strchannel = (bchannel == null) ? null - : SafeEncoder.encode(bchannel); - onSubscribe(strchannel, subscribedChannels); - } else if (Arrays.equals(UNSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bchannel = (byte[]) reply.get(1); - final String strchannel = (bchannel == null) ? null - : SafeEncoder.encode(bchannel); - onUnsubscribe(strchannel, subscribedChannels); - } else if (Arrays.equals(MESSAGE.raw, resp)) { - final byte[] bchannel = (byte[]) reply.get(1); - final byte[] bmesg = (byte[]) reply.get(2); - final String strchannel = (bchannel == null) ? null - : SafeEncoder.encode(bchannel); - final String strmesg = (bmesg == null) ? null : SafeEncoder - .encode(bmesg); - onMessage(strchannel, strmesg); - } else if (Arrays.equals(PMESSAGE.raw, resp)) { - final byte[] bpattern = (byte[]) reply.get(1); - final byte[] bchannel = (byte[]) reply.get(2); - final byte[] bmesg = (byte[]) reply.get(3); - final String strpattern = (bpattern == null) ? null - : SafeEncoder.encode(bpattern); - final String strchannel = (bchannel == null) ? null - : SafeEncoder.encode(bchannel); - final String strmesg = (bmesg == null) ? null : SafeEncoder - .encode(bmesg); - onPMessage(strpattern, strchannel, strmesg); - } else if (Arrays.equals(PSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bpattern = (byte[]) reply.get(1); - final String strpattern = (bpattern == null) ? null - : SafeEncoder.encode(bpattern); - onPSubscribe(strpattern, subscribedChannels); - } else if (Arrays.equals(PUNSUBSCRIBE.raw, resp)) { - subscribedChannels = ((Long) reply.get(2)).intValue(); - final byte[] bpattern = (byte[]) reply.get(1); - final String strpattern = (bpattern == null) ? null - : SafeEncoder.encode(bpattern); - onPUnsubscribe(strpattern, subscribedChannels); - } else { - throw new JedisException("Unknown message type: " + firstObj); - } - } while (isSubscribed()); + do { + List reply = client.getObjectMultiBulkReply(); + final Object firstObj = reply.get(0); + if (!(firstObj instanceof byte[])) { + throw new JedisException("Unknown message type: " + firstObj); + } + final byte[] resp = (byte[]) firstObj; + if (Arrays.equals(SUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bchannel = (byte[]) reply.get(1); + final String strchannel = (bchannel == null) ? null + : SafeEncoder.encode(bchannel); + onSubscribe(strchannel, subscribedChannels); + } else if (Arrays.equals(UNSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bchannel = (byte[]) reply.get(1); + final String strchannel = (bchannel == null) ? null + : SafeEncoder.encode(bchannel); + onUnsubscribe(strchannel, subscribedChannels); + } else if (Arrays.equals(MESSAGE.raw, resp)) { + final byte[] bchannel = (byte[]) reply.get(1); + final byte[] bmesg = (byte[]) reply.get(2); + final String strchannel = (bchannel == null) ? null + : SafeEncoder.encode(bchannel); + final String strmesg = (bmesg == null) ? null : SafeEncoder + .encode(bmesg); + onMessage(strchannel, strmesg); + } else if (Arrays.equals(PMESSAGE.raw, resp)) { + final byte[] bpattern = (byte[]) reply.get(1); + final byte[] bchannel = (byte[]) reply.get(2); + final byte[] bmesg = (byte[]) reply.get(3); + final String strpattern = (bpattern == null) ? null + : SafeEncoder.encode(bpattern); + final String strchannel = (bchannel == null) ? null + : SafeEncoder.encode(bchannel); + final String strmesg = (bmesg == null) ? null : SafeEncoder + .encode(bmesg); + onPMessage(strpattern, strchannel, strmesg); + } else if (Arrays.equals(PSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bpattern = (byte[]) reply.get(1); + final String strpattern = (bpattern == null) ? null + : SafeEncoder.encode(bpattern); + onPSubscribe(strpattern, subscribedChannels); + } else if (Arrays.equals(PUNSUBSCRIBE.raw, resp)) { + subscribedChannels = ((Long) reply.get(2)).intValue(); + final byte[] bpattern = (byte[]) reply.get(1); + final String strpattern = (bpattern == null) ? null + : SafeEncoder.encode(bpattern); + onPUnsubscribe(strpattern, subscribedChannels); + } else { + throw new JedisException("Unknown message type: " + firstObj); + } + } while (isSubscribed()); } public int getSubscribedChannels() { - return subscribedChannels; + return subscribedChannels; } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/JedisRandomConnectionHandler.java b/src/main/java/redis/clients/jedis/JedisRandomConnectionHandler.java index 40d3f04..d4e558e 100644 --- a/src/main/java/redis/clients/jedis/JedisRandomConnectionHandler.java +++ b/src/main/java/redis/clients/jedis/JedisRandomConnectionHandler.java @@ -4,17 +4,16 @@ import java.util.Set; public class JedisRandomConnectionHandler extends JedisClusterConnectionHandler { - - public JedisRandomConnectionHandler(Set nodes) { - super(nodes); - } + public JedisRandomConnectionHandler(Set nodes) { + super(nodes); + } - public Jedis getConnection() { - return getRandomConnection().getResource(); - } + public Jedis getConnection() { + return getRandomConnection().getResource(); + } - @Override - Jedis getConnectionFromSlot(int slot) { - return getRandomConnection().getResource(); - } + @Override + Jedis getConnectionFromSlot(int slot) { + return getRandomConnection().getResource(); + } } diff --git a/src/main/java/redis/clients/jedis/JedisSentinelPool.java b/src/main/java/redis/clients/jedis/JedisSentinelPool.java index 9190225..4fe5433 100644 --- a/src/main/java/redis/clients/jedis/JedisSentinelPool.java +++ b/src/main/java/redis/clients/jedis/JedisSentinelPool.java @@ -79,7 +79,7 @@ public class JedisSentinelPool extends Pool { } public void returnResource(final Jedis resource) { - resource.resetState(); + resource.resetState(); returnResourceObject(resource); } @@ -101,8 +101,9 @@ public class JedisSentinelPool extends Pool { if (!master.equals(currentHostMaster)) { currentHostMaster = master; log.info("Created JedisPool to master at " + master); - initPool(poolConfig, new JedisFactory(master.getHost(), master.getPort(), - timeout, password, database)); + initPool(poolConfig, + new JedisFactory(master.getHost(), master.getPort(), + timeout, password, database)); } } @@ -164,10 +165,10 @@ public class JedisSentinelPool extends Pool { } private HostAndPort toHostAndPort(List getMasterAddrByNameResult) { - String host = getMasterAddrByNameResult.get(0); - int port = Integer.parseInt(getMasterAddrByNameResult.get(1)); - - return new HostAndPort(host, port); + String host = getMasterAddrByNameResult.get(0); + int port = Integer.parseInt(getMasterAddrByNameResult.get(1)); + + return new HostAndPort(host, port); } protected class JedisPubSubAdapter extends JedisPubSub { diff --git a/src/main/java/redis/clients/jedis/JedisSlotBasedConnectionHandler.java b/src/main/java/redis/clients/jedis/JedisSlotBasedConnectionHandler.java index 4f3ea5d..4aba893 100644 --- a/src/main/java/redis/clients/jedis/JedisSlotBasedConnectionHandler.java +++ b/src/main/java/redis/clients/jedis/JedisSlotBasedConnectionHandler.java @@ -2,47 +2,45 @@ package redis.clients.jedis; import java.util.Set; -public class JedisSlotBasedConnectionHandler extends JedisClusterConnectionHandler { +public class JedisSlotBasedConnectionHandler extends + JedisClusterConnectionHandler { - private Jedis currentConnection; - - public JedisSlotBasedConnectionHandler(Set nodes) { - super(nodes); + private Jedis currentConnection; + + public JedisSlotBasedConnectionHandler(Set nodes) { + super(nodes); + } + + public Jedis getConnection() { + return currentConnection != null ? currentConnection + : getRandomConnection().getResource(); + } + + private void returnCurrentConnection() { + if (currentConnection != null) { + nodes.get( + currentConnection.getClient().getHost() + + currentConnection.getClient().getPort()) + .returnResource(currentConnection); } - - public Jedis getConnection() { - return currentConnection != null ? currentConnection : getRandomConnection().getResource(); + } + + @Override + public void assignSlotToNode(int slot, HostAndPort targetNode) { + super.assignSlotToNode(slot, targetNode); + getConnectionFromSlot(slot); + } + + @Override + public Jedis getConnectionFromSlot(int slot) { + returnCurrentConnection(); + JedisPool connectionPool = slots.get(slot); + if (connectionPool == null) { + connectionPool = getRandomConnection(); } - - - - - private void returnCurrentConnection() { - if (currentConnection != null) { - nodes.get(currentConnection.getClient().getHost()+currentConnection.getClient().getPort()).returnResource(currentConnection); - } - - } - - - @Override - public void assignSlotToNode(int slot, HostAndPort targetNode) { - super.assignSlotToNode(slot, targetNode); - getConnectionFromSlot(slot); - } - - @Override - public Jedis getConnectionFromSlot(int slot) { - returnCurrentConnection(); - JedisPool connectionPool = slots.get(slot); - if (connectionPool == null) { - connectionPool = getRandomConnection(); - } - currentConnection = connectionPool.getResource(); - return connectionPool.getResource(); - } - - + currentConnection = connectionPool.getResource(); + return connectionPool.getResource(); + } } diff --git a/src/main/java/redis/clients/jedis/MultiKeyBinaryCommands.java b/src/main/java/redis/clients/jedis/MultiKeyBinaryCommands.java index 1b3c158..e6ea8fd 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyBinaryCommands.java +++ b/src/main/java/redis/clients/jedis/MultiKeyBinaryCommands.java @@ -1,6 +1,5 @@ package redis.clients.jedis; - import java.util.List; import java.util.Set; diff --git a/src/main/java/redis/clients/jedis/MultiKeyBinaryRedisPipeline.java b/src/main/java/redis/clients/jedis/MultiKeyBinaryRedisPipeline.java index d77ddd9..fd71016 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyBinaryRedisPipeline.java +++ b/src/main/java/redis/clients/jedis/MultiKeyBinaryRedisPipeline.java @@ -1,16 +1,16 @@ package redis.clients.jedis; - import java.util.List; import java.util.Set; /** - * Multikey related commands (these are split out because they are non-shardable) + * Multikey related commands (these are split out because they are + * non-shardable) */ public interface MultiKeyBinaryRedisPipeline { Response del(byte[]... keys); - + Response> blpop(byte[]... args); Response> brpop(byte[]... args); @@ -39,7 +39,8 @@ public interface MultiKeyBinaryRedisPipeline { Response smove(byte[] srckey, byte[] dstkey, byte[] member); - Response sort(byte[] key, SortingParams sortingParameters, byte[] dstkey); + Response sort(byte[] key, SortingParams sortingParameters, + byte[] dstkey); Response sort(byte[] key, byte[] dstkey); diff --git a/src/main/java/redis/clients/jedis/MultiKeyCommands.java b/src/main/java/redis/clients/jedis/MultiKeyCommands.java index 64285de..3565c6d 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyCommands.java +++ b/src/main/java/redis/clients/jedis/MultiKeyCommands.java @@ -1,8 +1,6 @@ package redis.clients.jedis; - import java.util.List; -import java.util.Map; import java.util.Set; public interface MultiKeyCommands { @@ -71,6 +69,6 @@ public interface MultiKeyCommands { String randomKey(); Long bitop(BitOP op, final String destKey, String... srcKeys); - + ScanResult scan(int cursor); } diff --git a/src/main/java/redis/clients/jedis/MultiKeyCommandsPipeline.java b/src/main/java/redis/clients/jedis/MultiKeyCommandsPipeline.java index ee9af65..92c8d5a 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyCommandsPipeline.java +++ b/src/main/java/redis/clients/jedis/MultiKeyCommandsPipeline.java @@ -1,12 +1,11 @@ package redis.clients.jedis; - import java.util.List; import java.util.Set; - /** - * Multikey related commands (these are split out because they are non-shardable) + * Multikey related commands (these are split out because they are + * non-shardable) */ public interface MultiKeyCommandsPipeline { Response del(String... keys); @@ -39,7 +38,8 @@ public interface MultiKeyCommandsPipeline { Response smove(String srckey, String dstkey, String member); - Response sort(String key, SortingParams sortingParameters, String dstkey); + Response sort(String key, SortingParams sortingParameters, + String dstkey); Response sort(String key, String dstkey); diff --git a/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java b/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java index 04bdc80..fa7ae6e 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java +++ b/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java @@ -5,401 +5,399 @@ import java.util.Map; import java.util.Set; abstract class MultiKeyPipelineBase extends PipelineBase implements - BasicRedisPipeline, - MultiKeyBinaryRedisPipeline, - MultiKeyCommandsPipeline, - ClusterPipeline { + BasicRedisPipeline, MultiKeyBinaryRedisPipeline, + MultiKeyCommandsPipeline, ClusterPipeline { protected Client client = null; public Response> brpop(String... args) { - client.brpop(args); - return getResponse(BuilderFactory.STRING_LIST); + client.brpop(args); + return getResponse(BuilderFactory.STRING_LIST); } - + public Response> brpop(int timeout, String... keys) { - client.brpop(timeout, keys); - return getResponse(BuilderFactory.STRING_LIST); + client.brpop(timeout, keys); + return getResponse(BuilderFactory.STRING_LIST); } public Response> blpop(String... args) { - client.blpop(args); - return getResponse(BuilderFactory.STRING_LIST); + client.blpop(args); + return getResponse(BuilderFactory.STRING_LIST); } - + public Response> blpop(int timeout, String... keys) { - client.blpop(timeout, keys); - return getResponse(BuilderFactory.STRING_LIST); + client.blpop(timeout, keys); + return getResponse(BuilderFactory.STRING_LIST); } - + public Response> blpopMap(int timeout, String... keys) { - client.blpop(timeout, keys); - return getResponse(BuilderFactory.STRING_MAP); + client.blpop(timeout, keys); + return getResponse(BuilderFactory.STRING_MAP); } public Response> brpop(byte[]... args) { - client.brpop(args); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + client.brpop(args); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } - + public Response> brpop(int timeout, byte[]... keys) { - client.brpop(timeout, keys); - return getResponse(BuilderFactory.STRING_LIST); + client.brpop(timeout, keys); + return getResponse(BuilderFactory.STRING_LIST); } - + public Response> brpopMap(int timeout, String... keys) { - client.blpop(timeout, keys); - return getResponse(BuilderFactory.STRING_MAP); + client.blpop(timeout, keys); + return getResponse(BuilderFactory.STRING_MAP); } public Response> blpop(byte[]... args) { - client.blpop(args); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + client.blpop(args); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } - + public Response> blpop(int timeout, byte[]... keys) { - client.blpop(timeout, keys); - return getResponse(BuilderFactory.STRING_LIST); + client.blpop(timeout, keys); + return getResponse(BuilderFactory.STRING_LIST); } public Response del(String... keys) { - client.del(keys); - return getResponse(BuilderFactory.LONG); + client.del(keys); + return getResponse(BuilderFactory.LONG); } public Response del(byte[]... keys) { - client.del(keys); - return getResponse(BuilderFactory.LONG); + client.del(keys); + return getResponse(BuilderFactory.LONG); } public Response> keys(String pattern) { - getClient(pattern).keys(pattern); - return getResponse(BuilderFactory.STRING_SET); + getClient(pattern).keys(pattern); + return getResponse(BuilderFactory.STRING_SET); } public Response> keys(byte[] pattern) { - getClient(pattern).keys(pattern); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + getClient(pattern).keys(pattern); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> mget(String... keys) { - client.mget(keys); - return getResponse(BuilderFactory.STRING_LIST); + client.mget(keys); + return getResponse(BuilderFactory.STRING_LIST); } public Response> mget(byte[]... keys) { - client.mget(keys); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + client.mget(keys); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response mset(String... keysvalues) { - client.mset(keysvalues); - return getResponse(BuilderFactory.STRING); + client.mset(keysvalues); + return getResponse(BuilderFactory.STRING); } public Response mset(byte[]... keysvalues) { - client.mset(keysvalues); - return getResponse(BuilderFactory.STRING); + client.mset(keysvalues); + return getResponse(BuilderFactory.STRING); } public Response msetnx(String... keysvalues) { - client.msetnx(keysvalues); - return getResponse(BuilderFactory.LONG); + client.msetnx(keysvalues); + return getResponse(BuilderFactory.LONG); } public Response msetnx(byte[]... keysvalues) { - client.msetnx(keysvalues); - return getResponse(BuilderFactory.LONG); + client.msetnx(keysvalues); + return getResponse(BuilderFactory.LONG); } public Response rename(String oldkey, String newkey) { - client.rename(oldkey, newkey); - return getResponse(BuilderFactory.STRING); + client.rename(oldkey, newkey); + return getResponse(BuilderFactory.STRING); } public Response rename(byte[] oldkey, byte[] newkey) { - client.rename(oldkey, newkey); - return getResponse(BuilderFactory.STRING); + client.rename(oldkey, newkey); + return getResponse(BuilderFactory.STRING); } public Response renamenx(String oldkey, String newkey) { - client.renamenx(oldkey, newkey); - return getResponse(BuilderFactory.LONG); + client.renamenx(oldkey, newkey); + return getResponse(BuilderFactory.LONG); } public Response renamenx(byte[] oldkey, byte[] newkey) { - client.renamenx(oldkey, newkey); - return getResponse(BuilderFactory.LONG); + client.renamenx(oldkey, newkey); + return getResponse(BuilderFactory.LONG); } public Response rpoplpush(String srckey, String dstkey) { - client.rpoplpush(srckey, dstkey); - return getResponse(BuilderFactory.STRING); + client.rpoplpush(srckey, dstkey); + return getResponse(BuilderFactory.STRING); } public Response rpoplpush(byte[] srckey, byte[] dstkey) { - client.rpoplpush(srckey, dstkey); - return getResponse(BuilderFactory.BYTE_ARRAY); + client.rpoplpush(srckey, dstkey); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response> sdiff(String... keys) { - client.sdiff(keys); - return getResponse(BuilderFactory.STRING_SET); + client.sdiff(keys); + return getResponse(BuilderFactory.STRING_SET); } public Response> sdiff(byte[]... keys) { - client.sdiff(keys); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + client.sdiff(keys); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response sdiffstore(String dstkey, String... keys) { - client.sdiffstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sdiffstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response sdiffstore(byte[] dstkey, byte[]... keys) { - client.sdiffstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sdiffstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response> sinter(String... keys) { - client.sinter(keys); - return getResponse(BuilderFactory.STRING_SET); + client.sinter(keys); + return getResponse(BuilderFactory.STRING_SET); } public Response> sinter(byte[]... keys) { - client.sinter(keys); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + client.sinter(keys); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response sinterstore(String dstkey, String... keys) { - client.sinterstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sinterstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response sinterstore(byte[] dstkey, byte[]... keys) { - client.sinterstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sinterstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response smove(String srckey, String dstkey, String member) { - client.smove(srckey, dstkey, member); - return getResponse(BuilderFactory.LONG); + client.smove(srckey, dstkey, member); + return getResponse(BuilderFactory.LONG); } public Response smove(byte[] srckey, byte[] dstkey, byte[] member) { - client.smove(srckey, dstkey, member); - return getResponse(BuilderFactory.LONG); + client.smove(srckey, dstkey, member); + return getResponse(BuilderFactory.LONG); } - public Response sort(String key, - SortingParams sortingParameters, String dstkey) { - client.sort(key, sortingParameters, dstkey); - return getResponse(BuilderFactory.LONG); + public Response sort(String key, SortingParams sortingParameters, + String dstkey) { + client.sort(key, sortingParameters, dstkey); + return getResponse(BuilderFactory.LONG); } - public Response sort(byte[] key, - SortingParams sortingParameters, byte[] dstkey) { - client.sort(key, sortingParameters, dstkey); - return getResponse(BuilderFactory.LONG); + public Response sort(byte[] key, SortingParams sortingParameters, + byte[] dstkey) { + client.sort(key, sortingParameters, dstkey); + return getResponse(BuilderFactory.LONG); } public Response sort(String key, String dstkey) { - client.sort(key, dstkey); - return getResponse(BuilderFactory.LONG); + client.sort(key, dstkey); + return getResponse(BuilderFactory.LONG); } public Response sort(byte[] key, byte[] dstkey) { - client.sort(key, dstkey); - return getResponse(BuilderFactory.LONG); + client.sort(key, dstkey); + return getResponse(BuilderFactory.LONG); } public Response> sunion(String... keys) { - client.sunion(keys); - return getResponse(BuilderFactory.STRING_SET); + client.sunion(keys); + return getResponse(BuilderFactory.STRING_SET); } public Response> sunion(byte[]... keys) { - client.sunion(keys); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + client.sunion(keys); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response sunionstore(String dstkey, String... keys) { - client.sunionstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sunionstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response sunionstore(byte[] dstkey, byte[]... keys) { - client.sunionstore(dstkey, keys); - return getResponse(BuilderFactory.LONG); + client.sunionstore(dstkey, keys); + return getResponse(BuilderFactory.LONG); } public Response watch(String... keys) { - client.watch(keys); - return getResponse(BuilderFactory.STRING); + client.watch(keys); + return getResponse(BuilderFactory.STRING); } public Response watch(byte[]... keys) { - client.watch(keys); - return getResponse(BuilderFactory.STRING); + client.watch(keys); + return getResponse(BuilderFactory.STRING); } public Response zinterstore(String dstkey, String... sets) { - client.zinterstore(dstkey, sets); - return getResponse(BuilderFactory.LONG); + client.zinterstore(dstkey, sets); + return getResponse(BuilderFactory.LONG); } public Response zinterstore(byte[] dstkey, byte[]... sets) { - client.zinterstore(dstkey, sets); - return getResponse(BuilderFactory.LONG); + client.zinterstore(dstkey, sets); + return getResponse(BuilderFactory.LONG); } public Response zinterstore(String dstkey, ZParams params, - String... sets) { - client.zinterstore(dstkey, params, sets); - return getResponse(BuilderFactory.LONG); + String... sets) { + client.zinterstore(dstkey, params, sets); + return getResponse(BuilderFactory.LONG); } public Response zinterstore(byte[] dstkey, ZParams params, - byte[]... sets) { - client.zinterstore(dstkey, params, sets); - return getResponse(BuilderFactory.LONG); + byte[]... sets) { + client.zinterstore(dstkey, params, sets); + return getResponse(BuilderFactory.LONG); } public Response zunionstore(String dstkey, String... sets) { - client.zunionstore(dstkey, sets); - return getResponse(BuilderFactory.LONG); + client.zunionstore(dstkey, sets); + return getResponse(BuilderFactory.LONG); } public Response zunionstore(byte[] dstkey, byte[]... sets) { - client.zunionstore(dstkey, sets); - return getResponse(BuilderFactory.LONG); + client.zunionstore(dstkey, sets); + return getResponse(BuilderFactory.LONG); } public Response zunionstore(String dstkey, ZParams params, - String... sets) { - client.zunionstore(dstkey, params, sets); - return getResponse(BuilderFactory.LONG); + String... sets) { + client.zunionstore(dstkey, params, sets); + return getResponse(BuilderFactory.LONG); } public Response zunionstore(byte[] dstkey, ZParams params, - byte[]... sets) { - client.zunionstore(dstkey, params, sets); - return getResponse(BuilderFactory.LONG); + byte[]... sets) { + client.zunionstore(dstkey, params, sets); + return getResponse(BuilderFactory.LONG); } public Response bgrewriteaof() { - client.bgrewriteaof(); - return getResponse(BuilderFactory.STRING); + client.bgrewriteaof(); + return getResponse(BuilderFactory.STRING); } public Response bgsave() { - client.bgsave(); - return getResponse(BuilderFactory.STRING); + client.bgsave(); + return getResponse(BuilderFactory.STRING); } public Response configGet(String pattern) { - client.configGet(pattern); - return getResponse(BuilderFactory.STRING); + client.configGet(pattern); + return getResponse(BuilderFactory.STRING); } public Response configSet(String parameter, String value) { - client.configSet(parameter, value); - return getResponse(BuilderFactory.STRING); + client.configSet(parameter, value); + return getResponse(BuilderFactory.STRING); } public Response brpoplpush(String source, String destination, - int timeout) { - client.brpoplpush(source, destination, timeout); - return getResponse(BuilderFactory.STRING); + int timeout) { + client.brpoplpush(source, destination, timeout); + return getResponse(BuilderFactory.STRING); } public Response brpoplpush(byte[] source, byte[] destination, - int timeout) { - client.brpoplpush(source, destination, timeout); - return getResponse(BuilderFactory.BYTE_ARRAY); + int timeout) { + client.brpoplpush(source, destination, timeout); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response configResetStat() { - client.configResetStat(); - return getResponse(BuilderFactory.STRING); + client.configResetStat(); + return getResponse(BuilderFactory.STRING); } public Response save() { - client.save(); - return getResponse(BuilderFactory.STRING); + client.save(); + return getResponse(BuilderFactory.STRING); } public Response lastsave() { - client.lastsave(); - return getResponse(BuilderFactory.LONG); + client.lastsave(); + return getResponse(BuilderFactory.LONG); } public Response publish(String channel, String message) { - client.publish(channel, message); - return getResponse(BuilderFactory.LONG); + client.publish(channel, message); + return getResponse(BuilderFactory.LONG); } public Response publish(byte[] channel, byte[] message) { - client.publish(channel, message); - return getResponse(BuilderFactory.LONG); + client.publish(channel, message); + return getResponse(BuilderFactory.LONG); } public Response randomKey() { - client.randomKey(); - return getResponse(BuilderFactory.STRING); + client.randomKey(); + return getResponse(BuilderFactory.STRING); } public Response randomKeyBinary() { - client.randomKey(); - return getResponse(BuilderFactory.BYTE_ARRAY); + client.randomKey(); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response flushDB() { - client.flushDB(); - return getResponse(BuilderFactory.STRING); + client.flushDB(); + return getResponse(BuilderFactory.STRING); } public Response flushAll() { - client.flushAll(); - return getResponse(BuilderFactory.STRING); + client.flushAll(); + return getResponse(BuilderFactory.STRING); } public Response info() { - client.info(); - return getResponse(BuilderFactory.STRING); + client.info(); + return getResponse(BuilderFactory.STRING); } public Response dbSize() { - client.dbSize(); - return getResponse(BuilderFactory.LONG); + client.dbSize(); + return getResponse(BuilderFactory.LONG); } public Response shutdown() { - client.shutdown(); - return getResponse(BuilderFactory.STRING); + client.shutdown(); + return getResponse(BuilderFactory.STRING); } public Response ping() { - client.ping(); - return getResponse(BuilderFactory.STRING); + client.ping(); + return getResponse(BuilderFactory.STRING); } public Response select(int index) { - client.select(index); - return getResponse(BuilderFactory.STRING); + client.select(index); + return getResponse(BuilderFactory.STRING); } public Response bitop(BitOP op, byte[] destKey, byte[]... srcKeys) { - client.bitop(op, destKey, srcKeys); - return getResponse(BuilderFactory.LONG); + client.bitop(op, destKey, srcKeys); + return getResponse(BuilderFactory.LONG); } public Response bitop(BitOP op, String destKey, String... srcKeys) { - client.bitop(op, destKey, srcKeys); - return getResponse(BuilderFactory.LONG); + client.bitop(op, destKey, srcKeys); + return getResponse(BuilderFactory.LONG); } - + public Response clusterNodes() { client.clusterNodes(); return getResponse(BuilderFactory.STRING); @@ -425,22 +423,26 @@ abstract class MultiKeyPipelineBase extends PipelineBase implements return getResponse(BuilderFactory.STRING); } - public Response> clusterGetKeysInSlot(final int slot, final int count) { + public Response> clusterGetKeysInSlot(final int slot, + final int count) { client.clusterGetKeysInSlot(slot, count); return getResponse(BuilderFactory.STRING_LIST); } - public Response clusterSetSlotNode(final int slot, final String nodeId) { + public Response clusterSetSlotNode(final int slot, + final String nodeId) { client.clusterSetSlotNode(slot, nodeId); return getResponse(BuilderFactory.STRING); } - public Response clusterSetSlotMigrating(final int slot, final String nodeId) { + public Response clusterSetSlotMigrating(final int slot, + final String nodeId) { client.clusterSetSlotMigrating(slot, nodeId); return getResponse(BuilderFactory.STRING); } - public Response clusterSetSlotImporting(final int slot, final String nodeId) { + public Response clusterSetSlotImporting(final int slot, + final String nodeId) { client.clusterSetSlotImporting(slot, nodeId); return getResponse(BuilderFactory.STRING); } diff --git a/src/main/java/redis/clients/jedis/Pipeline.java b/src/main/java/redis/clients/jedis/Pipeline.java index 98cab69..97f856b 100755 --- a/src/main/java/redis/clients/jedis/Pipeline.java +++ b/src/main/java/redis/clients/jedis/Pipeline.java @@ -1,66 +1,66 @@ package redis.clients.jedis; -import redis.clients.jedis.exceptions.JedisDataException; - import java.util.ArrayList; import java.util.List; -public class Pipeline extends MultiKeyPipelineBase { - - private MultiResponseBuilder currentMulti; - - private class MultiResponseBuilder extends Builder>{ - private List> responses = new ArrayList>(); - - @Override - public List build(Object data) { - @SuppressWarnings("unchecked") - List list = (List)data; - List values = new ArrayList(); - - if(list.size() != responses.size()){ - throw new JedisDataException("Expected data size " + responses.size() + " but was " + list.size()); - } - - for(int i=0;i response = responses.get(i); - response.set(list.get(i)); - values.add(response.get()); - } - return values; - } +import redis.clients.jedis.exceptions.JedisDataException; - public void addResponse(Response response){ - responses.add(response); - } +public class Pipeline extends MultiKeyPipelineBase { + + private MultiResponseBuilder currentMulti; + + private class MultiResponseBuilder extends Builder> { + private List> responses = new ArrayList>(); + + @Override + public List build(Object data) { + @SuppressWarnings("unchecked") + List list = (List) data; + List values = new ArrayList(); + + if (list.size() != responses.size()) { + throw new JedisDataException("Expected data size " + + responses.size() + " but was " + list.size()); + } + + for (int i = 0; i < list.size(); i++) { + Response response = responses.get(i); + response.set(list.get(i)); + values.add(response.get()); + } + return values; + } + + public void addResponse(Response response) { + responses.add(response); + } } @Override protected Response getResponse(Builder builder) { - if(currentMulti != null){ - super.getResponse(BuilderFactory.STRING); //Expected QUEUED - - Response lr = new Response(builder); - currentMulti.addResponse(lr); - return lr; - } - else{ - return super.getResponse(builder); - } + if (currentMulti != null) { + super.getResponse(BuilderFactory.STRING); // Expected QUEUED + + Response lr = new Response(builder); + currentMulti.addResponse(lr); + return lr; + } else { + return super.getResponse(builder); + } } public void setClient(Client client) { - this.client = client; + this.client = client; } @Override protected Client getClient(byte[] key) { - return client; + return client; } @Override protected Client getClient(String key) { - return client; + return client; } /** @@ -69,10 +69,10 @@ public class Pipeline extends MultiKeyPipelineBase { * the different Response of the commands you execute. */ public void sync() { - List unformatted = client.getAll(); - for (Object o : unformatted) { - generateResponse(o); - } + List unformatted = client.getAll(); + for (Object o : unformatted) { + generateResponse(o); + } } /** @@ -84,37 +84,38 @@ public class Pipeline extends MultiKeyPipelineBase { * @return A list of all the responses in the order you executed them. */ public List syncAndReturnAll() { - List unformatted = client.getAll(); - List formatted = new ArrayList(); - - for (Object o : unformatted) { - try { - formatted.add(generateResponse(o).get()); - } catch (JedisDataException e) { - formatted.add(e); - } - } - return formatted; + List unformatted = client.getAll(); + List formatted = new ArrayList(); + + for (Object o : unformatted) { + try { + formatted.add(generateResponse(o).get()); + } catch (JedisDataException e) { + formatted.add(e); + } + } + return formatted; } public Response discard() { - client.discard(); - currentMulti = null; - return getResponse(BuilderFactory.STRING); + client.discard(); + currentMulti = null; + return getResponse(BuilderFactory.STRING); } public Response> exec() { - client.exec(); - Response> response = super.getResponse(currentMulti); - currentMulti = null; - return response; + client.exec(); + Response> response = super.getResponse(currentMulti); + currentMulti = null; + return response; } public Response multi() { - client.multi(); - Response response = getResponse(BuilderFactory.STRING); //Expecting OK - currentMulti = new MultiResponseBuilder(); - return response; + client.multi(); + Response response = getResponse(BuilderFactory.STRING); // Expecting + // OK + currentMulti = new MultiResponseBuilder(); + return response; } } diff --git a/src/main/java/redis/clients/jedis/PipelineBase.java b/src/main/java/redis/clients/jedis/PipelineBase.java index 9ebcc9e..3183ba1 100644 --- a/src/main/java/redis/clients/jedis/PipelineBase.java +++ b/src/main/java/redis/clients/jedis/PipelineBase.java @@ -1,1191 +1,1207 @@ package redis.clients.jedis; -import redis.clients.jedis.BinaryClient.LIST_POSITION; +import static redis.clients.jedis.Protocol.toByteArray; import java.util.List; import java.util.Map; import java.util.Set; -import static redis.clients.jedis.Protocol.toByteArray; +import redis.clients.jedis.BinaryClient.LIST_POSITION; + +abstract class PipelineBase extends Queable implements BinaryRedisPipeline, + RedisPipeline { -abstract class PipelineBase extends Queable implements - BinaryRedisPipeline, - RedisPipeline { - protected abstract Client getClient(String key); - + protected abstract Client getClient(byte[] key); public Response append(String key, String value) { - getClient(key).append(key, value); - return getResponse(BuilderFactory.LONG); + getClient(key).append(key, value); + return getResponse(BuilderFactory.LONG); } public Response append(byte[] key, byte[] value) { - getClient(key).append(key, value); - return getResponse(BuilderFactory.LONG); + getClient(key).append(key, value); + return getResponse(BuilderFactory.LONG); } public Response> blpop(String key) { - String[] temp = new String[1]; - temp[0] = key; - getClient(key).blpop(temp); - return getResponse(BuilderFactory.STRING_LIST); + String[] temp = new String[1]; + temp[0] = key; + getClient(key).blpop(temp); + return getResponse(BuilderFactory.STRING_LIST); } public Response> brpop(String key) { - String[] temp = new String[1]; - temp[0] = key; - getClient(key).brpop(temp); - return getResponse(BuilderFactory.STRING_LIST); + String[] temp = new String[1]; + temp[0] = key; + getClient(key).brpop(temp); + return getResponse(BuilderFactory.STRING_LIST); } public Response> blpop(byte[] key) { - byte[][] temp = new byte[1][]; - temp[0] = key; - getClient(key).blpop(temp); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + byte[][] temp = new byte[1][]; + temp[0] = key; + getClient(key).blpop(temp); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response> brpop(byte[] key) { - byte[][] temp = new byte[1][]; - temp[0] = key; - getClient(key).brpop(temp); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + byte[][] temp = new byte[1][]; + temp[0] = key; + getClient(key).brpop(temp); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response decr(String key) { - getClient(key).decr(key); - return getResponse(BuilderFactory.LONG); + getClient(key).decr(key); + return getResponse(BuilderFactory.LONG); } public Response decr(byte[] key) { - getClient(key).decr(key); - return getResponse(BuilderFactory.LONG); + getClient(key).decr(key); + return getResponse(BuilderFactory.LONG); } public Response decrBy(String key, long integer) { - getClient(key).decrBy(key, integer); - return getResponse(BuilderFactory.LONG); + getClient(key).decrBy(key, integer); + return getResponse(BuilderFactory.LONG); } public Response decrBy(byte[] key, long integer) { - getClient(key).decrBy(key, integer); - return getResponse(BuilderFactory.LONG); + getClient(key).decrBy(key, integer); + return getResponse(BuilderFactory.LONG); } public Response del(String key) { - getClient(key).del(key); - return getResponse(BuilderFactory.LONG); + getClient(key).del(key); + return getResponse(BuilderFactory.LONG); } public Response del(byte[] key) { - getClient(key).del(key); - return getResponse(BuilderFactory.LONG); + getClient(key).del(key); + return getResponse(BuilderFactory.LONG); } public Response echo(String string) { - getClient(string).echo(string); - return getResponse(BuilderFactory.STRING); + getClient(string).echo(string); + return getResponse(BuilderFactory.STRING); } public Response echo(byte[] string) { - getClient(string).echo(string); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(string).echo(string); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response exists(String key) { - getClient(key).exists(key); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).exists(key); + return getResponse(BuilderFactory.BOOLEAN); } public Response exists(byte[] key) { - getClient(key).exists(key); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).exists(key); + return getResponse(BuilderFactory.BOOLEAN); } public Response expire(String key, int seconds) { - getClient(key).expire(key, seconds); - return getResponse(BuilderFactory.LONG); + getClient(key).expire(key, seconds); + return getResponse(BuilderFactory.LONG); } public Response expire(byte[] key, int seconds) { - getClient(key).expire(key, seconds); - return getResponse(BuilderFactory.LONG); + getClient(key).expire(key, seconds); + return getResponse(BuilderFactory.LONG); } public Response expireAt(String key, long unixTime) { - getClient(key).expireAt(key, unixTime); - return getResponse(BuilderFactory.LONG); + getClient(key).expireAt(key, unixTime); + return getResponse(BuilderFactory.LONG); } public Response expireAt(byte[] key, long unixTime) { - getClient(key).expireAt(key, unixTime); - return getResponse(BuilderFactory.LONG); + getClient(key).expireAt(key, unixTime); + return getResponse(BuilderFactory.LONG); } public Response get(String key) { - getClient(key).get(key); - return getResponse(BuilderFactory.STRING); + getClient(key).get(key); + return getResponse(BuilderFactory.STRING); } public Response get(byte[] key) { - getClient(key).get(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).get(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response getbit(String key, long offset) { - getClient(key).getbit(key, offset); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).getbit(key, offset); + return getResponse(BuilderFactory.BOOLEAN); } public Response getbit(byte[] key, long offset) { - getClient(key).getbit(key, offset); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).getbit(key, offset); + return getResponse(BuilderFactory.BOOLEAN); } public Response getrange(String key, long startOffset, - long endOffset) { - getClient(key).getrange(key, startOffset, endOffset); - return getResponse(BuilderFactory.STRING); + long endOffset) { + getClient(key).getrange(key, startOffset, endOffset); + return getResponse(BuilderFactory.STRING); } public Response getSet(String key, String value) { - getClient(key).getSet(key, value); - return getResponse(BuilderFactory.STRING); + getClient(key).getSet(key, value); + return getResponse(BuilderFactory.STRING); } public Response getSet(byte[] key, byte[] value) { - getClient(key).getSet(key, value); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).getSet(key, value); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response getrange(byte[] key, long startOffset, long endOffset) { - getClient(key).getrange(key, startOffset, endOffset); - return getResponse(BuilderFactory.LONG); + getClient(key).getrange(key, startOffset, endOffset); + return getResponse(BuilderFactory.LONG); } public Response hdel(String key, String... field) { - getClient(key).hdel(key, field); - return getResponse(BuilderFactory.LONG); + getClient(key).hdel(key, field); + return getResponse(BuilderFactory.LONG); } public Response hdel(byte[] key, byte[]... field) { - getClient(key).hdel(key, field); - return getResponse(BuilderFactory.LONG); + getClient(key).hdel(key, field); + return getResponse(BuilderFactory.LONG); } public Response hexists(String key, String field) { - getClient(key).hexists(key, field); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).hexists(key, field); + return getResponse(BuilderFactory.BOOLEAN); } public Response hexists(byte[] key, byte[] field) { - getClient(key).hexists(key, field); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).hexists(key, field); + return getResponse(BuilderFactory.BOOLEAN); } public Response hget(String key, String field) { - getClient(key).hget(key, field); - return getResponse(BuilderFactory.STRING); + getClient(key).hget(key, field); + return getResponse(BuilderFactory.STRING); } public Response hget(byte[] key, byte[] field) { - getClient(key).hget(key, field); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).hget(key, field); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response> hgetAll(String key) { - getClient(key).hgetAll(key); - return getResponse(BuilderFactory.STRING_MAP); + getClient(key).hgetAll(key); + return getResponse(BuilderFactory.STRING_MAP); } public Response> hgetAll(byte[] key) { - getClient(key).hgetAll(key); - return getResponse(BuilderFactory.BYTE_ARRAY_MAP); + getClient(key).hgetAll(key); + return getResponse(BuilderFactory.BYTE_ARRAY_MAP); } public Response hincrBy(String key, String field, long value) { - getClient(key).hincrBy(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hincrBy(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response hincrBy(byte[] key, byte[] field, long value) { - getClient(key).hincrBy(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hincrBy(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response> hkeys(String key) { - getClient(key).hkeys(key); - return getResponse(BuilderFactory.STRING_SET); + getClient(key).hkeys(key); + return getResponse(BuilderFactory.STRING_SET); } public Response> hkeys(byte[] key) { - getClient(key).hkeys(key); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + getClient(key).hkeys(key); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response hlen(String key) { - getClient(key).hlen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).hlen(key); + return getResponse(BuilderFactory.LONG); } public Response hlen(byte[] key) { - getClient(key).hlen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).hlen(key); + return getResponse(BuilderFactory.LONG); } public Response> hmget(String key, String... fields) { - getClient(key).hmget(key, fields); - return getResponse(BuilderFactory.STRING_LIST); + getClient(key).hmget(key, fields); + return getResponse(BuilderFactory.STRING_LIST); } public Response> hmget(byte[] key, byte[]... fields) { - getClient(key).hmget(key, fields); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + getClient(key).hmget(key, fields); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response hmset(String key, Map hash) { - getClient(key).hmset(key, hash); - return getResponse(BuilderFactory.STRING); + getClient(key).hmset(key, hash); + return getResponse(BuilderFactory.STRING); } public Response hmset(byte[] key, Map hash) { - getClient(key).hmset(key, hash); - return getResponse(BuilderFactory.STRING); + getClient(key).hmset(key, hash); + return getResponse(BuilderFactory.STRING); } public Response hset(String key, String field, String value) { - getClient(key).hset(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hset(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response hset(byte[] key, byte[] field, byte[] value) { - getClient(key).hset(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hset(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response hsetnx(String key, String field, String value) { - getClient(key).hsetnx(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hsetnx(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response hsetnx(byte[] key, byte[] field, byte[] value) { - getClient(key).hsetnx(key, field, value); - return getResponse(BuilderFactory.LONG); + getClient(key).hsetnx(key, field, value); + return getResponse(BuilderFactory.LONG); } public Response> hvals(String key) { - getClient(key).hvals(key); - return getResponse(BuilderFactory.STRING_LIST); + getClient(key).hvals(key); + return getResponse(BuilderFactory.STRING_LIST); } public Response> hvals(byte[] key) { - getClient(key).hvals(key); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + getClient(key).hvals(key); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response incr(String key) { - getClient(key).incr(key); - return getResponse(BuilderFactory.LONG); + getClient(key).incr(key); + return getResponse(BuilderFactory.LONG); } public Response incr(byte[] key) { - getClient(key).incr(key); - return getResponse(BuilderFactory.LONG); + getClient(key).incr(key); + return getResponse(BuilderFactory.LONG); } public Response incrBy(String key, long integer) { - getClient(key).incrBy(key, integer); - return getResponse(BuilderFactory.LONG); + getClient(key).incrBy(key, integer); + return getResponse(BuilderFactory.LONG); } public Response incrBy(byte[] key, long integer) { - getClient(key).incrBy(key, integer); - return getResponse(BuilderFactory.LONG); + getClient(key).incrBy(key, integer); + return getResponse(BuilderFactory.LONG); } public Response lindex(String key, long index) { - getClient(key).lindex(key, index); - return getResponse(BuilderFactory.STRING); + getClient(key).lindex(key, index); + return getResponse(BuilderFactory.STRING); } public Response lindex(byte[] key, long index) { - getClient(key).lindex(key, index); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).lindex(key, index); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response linsert(String key, LIST_POSITION where, - String pivot, String value) { - getClient(key).linsert(key, where, pivot, value); - return getResponse(BuilderFactory.LONG); + String pivot, String value) { + getClient(key).linsert(key, where, pivot, value); + return getResponse(BuilderFactory.LONG); } public Response linsert(byte[] key, LIST_POSITION where, - byte[] pivot, byte[] value) { - getClient(key).linsert(key, where, pivot, value); - return getResponse(BuilderFactory.LONG); + byte[] pivot, byte[] value) { + getClient(key).linsert(key, where, pivot, value); + return getResponse(BuilderFactory.LONG); } public Response llen(String key) { - getClient(key).llen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).llen(key); + return getResponse(BuilderFactory.LONG); } public Response llen(byte[] key) { - getClient(key).llen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).llen(key); + return getResponse(BuilderFactory.LONG); } public Response lpop(String key) { - getClient(key).lpop(key); - return getResponse(BuilderFactory.STRING); + getClient(key).lpop(key); + return getResponse(BuilderFactory.STRING); } public Response lpop(byte[] key) { - getClient(key).lpop(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).lpop(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response lpush(String key, String... string) { - getClient(key).lpush(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).lpush(key, string); + return getResponse(BuilderFactory.LONG); } public Response lpush(byte[] key, byte[]... string) { - getClient(key).lpush(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).lpush(key, string); + return getResponse(BuilderFactory.LONG); } public Response lpushx(String key, String... string) { - getClient(key).lpushx(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).lpushx(key, string); + return getResponse(BuilderFactory.LONG); } public Response lpushx(byte[] key, byte[]... bytes) { - getClient(key).lpushx(key, bytes); - return getResponse(BuilderFactory.LONG); + getClient(key).lpushx(key, bytes); + return getResponse(BuilderFactory.LONG); } public Response> lrange(String key, long start, long end) { - getClient(key).lrange(key, start, end); - return getResponse(BuilderFactory.STRING_LIST); + getClient(key).lrange(key, start, end); + return getResponse(BuilderFactory.STRING_LIST); } public Response> lrange(byte[] key, long start, long end) { - getClient(key).lrange(key, start, end); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + getClient(key).lrange(key, start, end); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response lrem(String key, long count, String value) { - getClient(key).lrem(key, count, value); - return getResponse(BuilderFactory.LONG); + getClient(key).lrem(key, count, value); + return getResponse(BuilderFactory.LONG); } public Response lrem(byte[] key, long count, byte[] value) { - getClient(key).lrem(key, count, value); - return getResponse(BuilderFactory.LONG); + getClient(key).lrem(key, count, value); + return getResponse(BuilderFactory.LONG); } public Response lset(String key, long index, String value) { - getClient(key).lset(key, index, value); - return getResponse(BuilderFactory.STRING); + getClient(key).lset(key, index, value); + return getResponse(BuilderFactory.STRING); } public Response lset(byte[] key, long index, byte[] value) { - getClient(key).lset(key, index, value); - return getResponse(BuilderFactory.STRING); + getClient(key).lset(key, index, value); + return getResponse(BuilderFactory.STRING); } public Response ltrim(String key, long start, long end) { - getClient(key).ltrim(key, start, end); - return getResponse(BuilderFactory.STRING); + getClient(key).ltrim(key, start, end); + return getResponse(BuilderFactory.STRING); } public Response ltrim(byte[] key, long start, long end) { - getClient(key).ltrim(key, start, end); - return getResponse(BuilderFactory.STRING); + getClient(key).ltrim(key, start, end); + return getResponse(BuilderFactory.STRING); } public Response move(String key, int dbIndex) { - getClient(key).move(key, dbIndex); - return getResponse(BuilderFactory.LONG); + getClient(key).move(key, dbIndex); + return getResponse(BuilderFactory.LONG); } public Response move(byte[] key, int dbIndex) { - getClient(key).move(key, dbIndex); - return getResponse(BuilderFactory.LONG); + getClient(key).move(key, dbIndex); + return getResponse(BuilderFactory.LONG); } public Response persist(String key) { - getClient(key).persist(key); - return getResponse(BuilderFactory.LONG); + getClient(key).persist(key); + return getResponse(BuilderFactory.LONG); } public Response persist(byte[] key) { - getClient(key).persist(key); - return getResponse(BuilderFactory.LONG); + getClient(key).persist(key); + return getResponse(BuilderFactory.LONG); } public Response rpop(String key) { - getClient(key).rpop(key); - return getResponse(BuilderFactory.STRING); + getClient(key).rpop(key); + return getResponse(BuilderFactory.STRING); } public Response rpop(byte[] key) { - getClient(key).rpop(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).rpop(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response rpush(String key, String... string) { - getClient(key).rpush(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).rpush(key, string); + return getResponse(BuilderFactory.LONG); } public Response rpush(byte[] key, byte[]... string) { - getClient(key).rpush(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).rpush(key, string); + return getResponse(BuilderFactory.LONG); } public Response rpushx(String key, String... string) { - getClient(key).rpushx(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).rpushx(key, string); + return getResponse(BuilderFactory.LONG); } public Response rpushx(byte[] key, byte[]... string) { - getClient(key).rpushx(key, string); - return getResponse(BuilderFactory.LONG); + getClient(key).rpushx(key, string); + return getResponse(BuilderFactory.LONG); } public Response sadd(String key, String... member) { - getClient(key).sadd(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).sadd(key, member); + return getResponse(BuilderFactory.LONG); } public Response sadd(byte[] key, byte[]... member) { - getClient(key).sadd(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).sadd(key, member); + return getResponse(BuilderFactory.LONG); } public Response scard(String key) { - getClient(key).scard(key); - return getResponse(BuilderFactory.LONG); + getClient(key).scard(key); + return getResponse(BuilderFactory.LONG); } public Response scard(byte[] key) { - getClient(key).scard(key); - return getResponse(BuilderFactory.LONG); + getClient(key).scard(key); + return getResponse(BuilderFactory.LONG); } public Response set(String key, String value) { - getClient(key).set(key, value); - return getResponse(BuilderFactory.STRING); + getClient(key).set(key, value); + return getResponse(BuilderFactory.STRING); } public Response set(byte[] key, byte[] value) { - getClient(key).set(key, value); - return getResponse(BuilderFactory.STRING); + getClient(key).set(key, value); + return getResponse(BuilderFactory.STRING); } public Response setbit(String key, long offset, boolean value) { - getClient(key).setbit(key, offset, value); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).setbit(key, offset, value); + return getResponse(BuilderFactory.BOOLEAN); } public Response setbit(byte[] key, long offset, byte[] value) { - getClient(key).setbit(key, offset, value); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).setbit(key, offset, value); + return getResponse(BuilderFactory.BOOLEAN); } public Response setex(String key, int seconds, String value) { - getClient(key).setex(key, seconds, value); - return getResponse(BuilderFactory.STRING); + getClient(key).setex(key, seconds, value); + return getResponse(BuilderFactory.STRING); } public Response setex(byte[] key, int seconds, byte[] value) { - getClient(key).setex(key, seconds, value); - return getResponse(BuilderFactory.STRING); + getClient(key).setex(key, seconds, value); + return getResponse(BuilderFactory.STRING); } public Response setnx(String key, String value) { - getClient(key).setnx(key, value); - return getResponse(BuilderFactory.LONG); + getClient(key).setnx(key, value); + return getResponse(BuilderFactory.LONG); } public Response setnx(byte[] key, byte[] value) { - getClient(key).setnx(key, value); - return getResponse(BuilderFactory.LONG); + getClient(key).setnx(key, value); + return getResponse(BuilderFactory.LONG); } public Response setrange(String key, long offset, String value) { - getClient(key).setrange(key, offset, value); - return getResponse(BuilderFactory.LONG); + getClient(key).setrange(key, offset, value); + return getResponse(BuilderFactory.LONG); } public Response setrange(byte[] key, long offset, byte[] value) { - getClient(key).setrange(key, offset, value); - return getResponse(BuilderFactory.LONG); + getClient(key).setrange(key, offset, value); + return getResponse(BuilderFactory.LONG); } public Response sismember(String key, String member) { - getClient(key).sismember(key, member); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).sismember(key, member); + return getResponse(BuilderFactory.BOOLEAN); } public Response sismember(byte[] key, byte[] member) { - getClient(key).sismember(key, member); - return getResponse(BuilderFactory.BOOLEAN); + getClient(key).sismember(key, member); + return getResponse(BuilderFactory.BOOLEAN); } public Response> smembers(String key) { - getClient(key).smembers(key); - return getResponse(BuilderFactory.STRING_SET); + getClient(key).smembers(key); + return getResponse(BuilderFactory.STRING_SET); } public Response> smembers(byte[] key) { - getClient(key).smembers(key); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + getClient(key).smembers(key); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> sort(String key) { - getClient(key).sort(key); - return getResponse(BuilderFactory.STRING_LIST); + getClient(key).sort(key); + return getResponse(BuilderFactory.STRING_LIST); } public Response> sort(byte[] key) { - getClient(key).sort(key); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + getClient(key).sort(key); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response> sort(String key, - SortingParams sortingParameters) { - getClient(key).sort(key, sortingParameters); - return getResponse(BuilderFactory.STRING_LIST); + SortingParams sortingParameters) { + getClient(key).sort(key, sortingParameters); + return getResponse(BuilderFactory.STRING_LIST); } public Response> sort(byte[] key, - SortingParams sortingParameters) { - getClient(key).sort(key, sortingParameters); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + SortingParams sortingParameters) { + getClient(key).sort(key, sortingParameters); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response spop(String key) { - getClient(key).spop(key); - return getResponse(BuilderFactory.STRING); + getClient(key).spop(key); + return getResponse(BuilderFactory.STRING); } public Response spop(byte[] key) { - getClient(key).spop(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).spop(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } public Response srandmember(String key) { - getClient(key).srandmember(key); - return getResponse(BuilderFactory.STRING); + getClient(key).srandmember(key); + return getResponse(BuilderFactory.STRING); } - + public Response> srandmember(String key, int count) { - getClient(key).srandmember(key, count); - return getResponse(BuilderFactory.STRING_LIST); + getClient(key).srandmember(key, count); + return getResponse(BuilderFactory.STRING_LIST); } public Response srandmember(byte[] key) { - getClient(key).srandmember(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).srandmember(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } - + public Response> srandmember(byte[] key, int count) { - getClient(key).srandmember(key, count); - return getResponse(BuilderFactory.BYTE_ARRAY_LIST); + getClient(key).srandmember(key, count); + return getResponse(BuilderFactory.BYTE_ARRAY_LIST); } public Response srem(String key, String... member) { - getClient(key).srem(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).srem(key, member); + return getResponse(BuilderFactory.LONG); } public Response srem(byte[] key, byte[]... member) { - getClient(key).srem(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).srem(key, member); + return getResponse(BuilderFactory.LONG); } public Response strlen(String key) { - getClient(key).strlen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).strlen(key); + return getResponse(BuilderFactory.LONG); } public Response strlen(byte[] key) { - getClient(key).strlen(key); - return getResponse(BuilderFactory.LONG); + getClient(key).strlen(key); + return getResponse(BuilderFactory.LONG); } public Response substr(String key, int start, int end) { - getClient(key).substr(key, start, end); - return getResponse(BuilderFactory.STRING); + getClient(key).substr(key, start, end); + return getResponse(BuilderFactory.STRING); } public Response substr(byte[] key, int start, int end) { - getClient(key).substr(key, start, end); - return getResponse(BuilderFactory.STRING); + getClient(key).substr(key, start, end); + return getResponse(BuilderFactory.STRING); } public Response ttl(String key) { - getClient(key).ttl(key); - return getResponse(BuilderFactory.LONG); + getClient(key).ttl(key); + return getResponse(BuilderFactory.LONG); } public Response ttl(byte[] key) { - getClient(key).ttl(key); - return getResponse(BuilderFactory.LONG); + getClient(key).ttl(key); + return getResponse(BuilderFactory.LONG); } public Response type(String key) { - getClient(key).type(key); - return getResponse(BuilderFactory.STRING); + getClient(key).type(key); + return getResponse(BuilderFactory.STRING); } public Response type(byte[] key) { - getClient(key).type(key); - return getResponse(BuilderFactory.STRING); + getClient(key).type(key); + return getResponse(BuilderFactory.STRING); + } + + public Response zadd(String key, double score, String member) { + getClient(key).zadd(key, score, member); + return getResponse(BuilderFactory.LONG); } - - public Response zadd(String key, double score, String member) { - getClient(key).zadd(key, score, member); - return getResponse(BuilderFactory.LONG); - } public Response zadd(String key, Map scoreMembers) { - getClient(key).zadd(key, scoreMembers); - return getResponse(BuilderFactory.LONG); + getClient(key).zadd(key, scoreMembers); + return getResponse(BuilderFactory.LONG); } public Response zadd(byte[] key, double score, byte[] member) { - getClient(key).zadd(key, score, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zadd(key, score, member); + return getResponse(BuilderFactory.LONG); } public Response zcard(String key) { - getClient(key).zcard(key); - return getResponse(BuilderFactory.LONG); + getClient(key).zcard(key); + return getResponse(BuilderFactory.LONG); } public Response zcard(byte[] key) { - getClient(key).zcard(key); - return getResponse(BuilderFactory.LONG); + getClient(key).zcard(key); + return getResponse(BuilderFactory.LONG); } public Response zcount(String key, double min, double max) { - getClient(key).zcount(key, min, max); - return getResponse(BuilderFactory.LONG); + getClient(key).zcount(key, min, max); + return getResponse(BuilderFactory.LONG); } - + public Response zcount(String key, String min, String max) { - getClient(key).zcount(key, min, max); - return getResponse(BuilderFactory.LONG); + getClient(key).zcount(key, min, max); + return getResponse(BuilderFactory.LONG); } public Response zcount(byte[] key, double min, double max) { - getClient(key).zcount(key, toByteArray(min), toByteArray(max)); - return getResponse(BuilderFactory.LONG); + getClient(key).zcount(key, toByteArray(min), toByteArray(max)); + return getResponse(BuilderFactory.LONG); } public Response zincrby(String key, double score, String member) { - getClient(key).zincrby(key, score, member); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).zincrby(key, score, member); + return getResponse(BuilderFactory.DOUBLE); } public Response zincrby(byte[] key, double score, byte[] member) { - getClient(key).zincrby(key, score, member); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).zincrby(key, score, member); + return getResponse(BuilderFactory.DOUBLE); } public Response> zrange(String key, long start, long end) { - getClient(key).zrange(key, start, end); - return getResponse(BuilderFactory.STRING_ZSET); + getClient(key).zrange(key, start, end); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrange(byte[] key, long start, long end) { - getClient(key).zrange(key, start, end); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + getClient(key).zrange(key, start, end); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrangeByScore(String key, double min, - double max) { - getClient(key).zrangeByScore(key, min, max); - return getResponse(BuilderFactory.STRING_ZSET); + double max) { + getClient(key).zrangeByScore(key, min, max); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrangeByScore(byte[] key, double min, - double max) { - return zrangeByScore(key, toByteArray(min), toByteArray(max)); + double max) { + return zrangeByScore(key, toByteArray(min), toByteArray(max)); } public Response> zrangeByScore(String key, String min, - String max) { - getClient(key).zrangeByScore(key, min, max); - return getResponse(BuilderFactory.STRING_ZSET); + String max) { + getClient(key).zrangeByScore(key, min, max); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrangeByScore(byte[] key, byte[] min, - byte[] max) { - getClient(key).zrangeByScore(key, min, max); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + byte[] max) { + getClient(key).zrangeByScore(key, min, max); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrangeByScore(String key, double min, - double max, int offset, int count) { - getClient(key).zrangeByScore(key, min, max, offset, count); - return getResponse(BuilderFactory.STRING_ZSET); + double max, int offset, int count) { + getClient(key).zrangeByScore(key, min, max, offset, count); + return getResponse(BuilderFactory.STRING_ZSET); + } + + public Response> zrangeByScore(String key, String min, + String max, int offset, int count) { + getClient(key).zrangeByScore(key, min, max, offset, count); + return getResponse(BuilderFactory.STRING_ZSET); } - - public Response> zrangeByScore(String key, String min, String max, int offset, int count) { - getClient(key).zrangeByScore(key, min, max, offset, count); - return getResponse(BuilderFactory.STRING_ZSET); - } public Response> zrangeByScore(byte[] key, double min, - double max, int offset, int count) { - return zrangeByScore(key, toByteArray(min), toByteArray(max), offset, count); + double max, int offset, int count) { + return zrangeByScore(key, toByteArray(min), toByteArray(max), offset, + count); } public Response> zrangeByScore(byte[] key, byte[] min, - byte[] max, int offset, int count) { - getClient(key).zrangeByScore(key, min, max, offset, count); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + byte[] max, int offset, int count) { + getClient(key).zrangeByScore(key, min, max, offset, count); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrangeByScoreWithScores(String key, double min, - double max) { - getClient(key).zrangeByScoreWithScores(key, min, max); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - - public Response> zrangeByScoreWithScores(String key, String min, - String max) { - getClient(key).zrangeByScoreWithScores(key, min, max); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - - public Response> zrangeByScoreWithScores(byte[] key, double min, - double max) { - return zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max)); + double max) { + getClient(key).zrangeByScoreWithScores(key, min, max); + return getResponse(BuilderFactory.TUPLE_ZSET); } - public Response> zrangeByScoreWithScores(byte[] key, byte[] min, - byte[] max) { - getClient(key).zrangeByScoreWithScores(key, min, max); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); - } - - public Response> zrangeByScoreWithScores(String key, double min, - double max, int offset, int count) { - getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - public Response> zrangeByScoreWithScores(String key, String min, - String max, int offset, int count) { - getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET); + String max) { + getClient(key).zrangeByScoreWithScores(key, min, max); + return getResponse(BuilderFactory.TUPLE_ZSET); } public Response> zrangeByScoreWithScores(byte[] key, double min, - double max, int offset, int count) { - getClient(key).zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max), offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + double max) { + return zrangeByScoreWithScores(key, toByteArray(min), toByteArray(max)); } public Response> zrangeByScoreWithScores(byte[] key, byte[] min, - byte[] max, int offset, int count) { - getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + byte[] max) { + getClient(key).zrangeByScoreWithScores(key, min, max); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + } + + public Response> zrangeByScoreWithScores(String key, double min, + double max, int offset, int count) { + getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET); + } + + public Response> zrangeByScoreWithScores(String key, String min, + String max, int offset, int count) { + getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET); + } + + public Response> zrangeByScoreWithScores(byte[] key, double min, + double max, int offset, int count) { + getClient(key).zrangeByScoreWithScores(key, toByteArray(min), + toByteArray(max), offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + } + + public Response> zrangeByScoreWithScores(byte[] key, byte[] min, + byte[] max, int offset, int count) { + getClient(key).zrangeByScoreWithScores(key, min, max, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } public Response> zrevrangeByScore(String key, double max, - double min) { - getClient(key).zrevrangeByScore(key, max, min); - return getResponse(BuilderFactory.STRING_ZSET); + double min) { + getClient(key).zrevrangeByScore(key, max, min); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrevrangeByScore(byte[] key, double max, - double min) { - getClient(key).zrevrangeByScore(key, toByteArray(max), toByteArray(min)); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + double min) { + getClient(key) + .zrevrangeByScore(key, toByteArray(max), toByteArray(min)); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrevrangeByScore(String key, String max, - String min) { - getClient(key).zrevrangeByScore(key, max, min); - return getResponse(BuilderFactory.STRING_ZSET); + String min) { + getClient(key).zrevrangeByScore(key, max, min); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrevrangeByScore(byte[] key, byte[] max, - byte[] min) { - getClient(key).zrevrangeByScore(key, max, min); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + byte[] min) { + getClient(key).zrevrangeByScore(key, max, min); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrevrangeByScore(String key, double max, - double min, int offset, int count) { - getClient(key).zrevrangeByScore(key, max, min, offset, count); - return getResponse(BuilderFactory.STRING_ZSET); + double min, int offset, int count) { + getClient(key).zrevrangeByScore(key, max, min, offset, count); + return getResponse(BuilderFactory.STRING_ZSET); + } + + public Response> zrevrangeByScore(String key, String max, + String min, int offset, int count) { + getClient(key).zrevrangeByScore(key, max, min, offset, count); + return getResponse(BuilderFactory.STRING_ZSET); } - - public Response> zrevrangeByScore(String key, String max, - String min, int offset, int count) { - getClient(key).zrevrangeByScore(key, max, min, offset, count); - return getResponse(BuilderFactory.STRING_ZSET); - } public Response> zrevrangeByScore(byte[] key, double max, - double min, int offset, int count) { - getClient(key).zrevrangeByScore(key, toByteArray(max), toByteArray(min), offset, count); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + double min, int offset, int count) { + getClient(key).zrevrangeByScore(key, toByteArray(max), + toByteArray(min), offset, count); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrevrangeByScore(byte[] key, byte[] max, - byte[] min, int offset, int count) { - getClient(key).zrevrangeByScore(key, max, min, offset, count); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + byte[] min, int offset, int count) { + getClient(key).zrevrangeByScore(key, max, min, offset, count); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrevrangeByScoreWithScores(String key, - double max, double min) { - getClient(key).zrevrangeByScoreWithScores(key, max, min); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - - public Response> zrevrangeByScoreWithScores(String key, - String max, String min) { - getClient(key).zrevrangeByScoreWithScores(key, max, min); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - - public Response> zrevrangeByScoreWithScores(byte[] key, - double max, double min) { - getClient(key).zrevrangeByScoreWithScores(key, toByteArray(max), toByteArray(min)); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); - } - - public Response> zrevrangeByScoreWithScores(byte[] key, - byte[] max, byte[] min) { - getClient(key).zrevrangeByScoreWithScores(key, max, min); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); - } - - public Response> zrevrangeByScoreWithScores(String key, - double max, double min, int offset, int count) { - getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET); - } - - public Response> zrevrangeByScoreWithScores(String key, - String max, String min, int offset, int count) { - getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); + double max, double min) { + getClient(key).zrevrangeByScoreWithScores(key, max, min); return getResponse(BuilderFactory.TUPLE_ZSET); - } + } - public Response> zrevrangeByScoreWithScores(byte[] key, - double max, double min, int offset, int count) { - getClient(key).zrevrangeByScoreWithScores(key, toByteArray(max), toByteArray(min), offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + public Response> zrevrangeByScoreWithScores(String key, + String max, String min) { + getClient(key).zrevrangeByScoreWithScores(key, max, min); + return getResponse(BuilderFactory.TUPLE_ZSET); } public Response> zrevrangeByScoreWithScores(byte[] key, - byte[] max, byte[] min, int offset, int count) { - getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + double max, double min) { + getClient(key).zrevrangeByScoreWithScores(key, toByteArray(max), + toByteArray(min)); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } - public Response> zrangeWithScores(String key, long start, long end) { - getClient(key).zrangeWithScores(key, start, end); - return getResponse(BuilderFactory.TUPLE_ZSET); + public Response> zrevrangeByScoreWithScores(byte[] key, + byte[] max, byte[] min) { + getClient(key).zrevrangeByScoreWithScores(key, max, min); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } - public Response> zrangeWithScores(byte[] key, long start, long end) { - getClient(key).zrangeWithScores(key, start, end); - return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + public Response> zrevrangeByScoreWithScores(String key, + double max, double min, int offset, int count) { + getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET); + } + + public Response> zrevrangeByScoreWithScores(String key, + String max, String min, int offset, int count) { + getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET); + } + + public Response> zrevrangeByScoreWithScores(byte[] key, + double max, double min, int offset, int count) { + getClient(key).zrevrangeByScoreWithScores(key, toByteArray(max), + toByteArray(min), offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + } + + public Response> zrevrangeByScoreWithScores(byte[] key, + byte[] max, byte[] min, int offset, int count) { + getClient(key).zrevrangeByScoreWithScores(key, max, min, offset, count); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); + } + + public Response> zrangeWithScores(String key, long start, + long end) { + getClient(key).zrangeWithScores(key, start, end); + return getResponse(BuilderFactory.TUPLE_ZSET); + } + + public Response> zrangeWithScores(byte[] key, long start, + long end) { + getClient(key).zrangeWithScores(key, start, end); + return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } public Response zrank(String key, String member) { - getClient(key).zrank(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrank(key, member); + return getResponse(BuilderFactory.LONG); } public Response zrank(byte[] key, byte[] member) { - getClient(key).zrank(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrank(key, member); + return getResponse(BuilderFactory.LONG); } public Response zrem(String key, String... member) { - getClient(key).zrem(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrem(key, member); + return getResponse(BuilderFactory.LONG); } public Response zrem(byte[] key, byte[]... member) { - getClient(key).zrem(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrem(key, member); + return getResponse(BuilderFactory.LONG); } public Response zremrangeByRank(String key, long start, long end) { - getClient(key).zremrangeByRank(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByRank(key, start, end); + return getResponse(BuilderFactory.LONG); } public Response zremrangeByRank(byte[] key, long start, long end) { - getClient(key).zremrangeByRank(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByRank(key, start, end); + return getResponse(BuilderFactory.LONG); } public Response zremrangeByScore(String key, double start, double end) { - getClient(key).zremrangeByScore(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByScore(key, start, end); + return getResponse(BuilderFactory.LONG); } - + public Response zremrangeByScore(String key, String start, String end) { - getClient(key).zremrangeByScore(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByScore(key, start, end); + return getResponse(BuilderFactory.LONG); } public Response zremrangeByScore(byte[] key, double start, double end) { - getClient(key).zremrangeByScore(key, toByteArray(start), toByteArray(end)); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByScore(key, toByteArray(start), + toByteArray(end)); + return getResponse(BuilderFactory.LONG); } public Response zremrangeByScore(byte[] key, byte[] start, byte[] end) { - getClient(key).zremrangeByScore(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).zremrangeByScore(key, start, end); + return getResponse(BuilderFactory.LONG); } public Response> zrevrange(String key, long start, long end) { - getClient(key).zrevrange(key, start, end); - return getResponse(BuilderFactory.STRING_ZSET); + getClient(key).zrevrange(key, start, end); + return getResponse(BuilderFactory.STRING_ZSET); } public Response> zrevrange(byte[] key, long start, long end) { - getClient(key).zrevrange(key, start, end); - return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); + getClient(key).zrevrange(key, start, end); + return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } public Response> zrevrangeWithScores(String key, long start, - long end) { - getClient(key).zrevrangeWithScores(key, start, end); - return getResponse(BuilderFactory.TUPLE_ZSET); + long end) { + getClient(key).zrevrangeWithScores(key, start, end); + return getResponse(BuilderFactory.TUPLE_ZSET); } public Response> zrevrangeWithScores(byte[] key, long start, - long end) { - getClient(key).zrevrangeWithScores(key, start, end); - return getResponse(BuilderFactory.TUPLE_ZSET); + long end) { + getClient(key).zrevrangeWithScores(key, start, end); + return getResponse(BuilderFactory.TUPLE_ZSET); } public Response zrevrank(String key, String member) { - getClient(key).zrevrank(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrevrank(key, member); + return getResponse(BuilderFactory.LONG); } public Response zrevrank(byte[] key, byte[] member) { - getClient(key).zrevrank(key, member); - return getResponse(BuilderFactory.LONG); + getClient(key).zrevrank(key, member); + return getResponse(BuilderFactory.LONG); } public Response zscore(String key, String member) { - getClient(key).zscore(key, member); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).zscore(key, member); + return getResponse(BuilderFactory.DOUBLE); } public Response zscore(byte[] key, byte[] member) { - getClient(key).zscore(key, member); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).zscore(key, member); + return getResponse(BuilderFactory.DOUBLE); } public Response bitcount(String key) { - getClient(key).bitcount(key); - return getResponse(BuilderFactory.LONG); + getClient(key).bitcount(key); + return getResponse(BuilderFactory.LONG); } public Response bitcount(String key, long start, long end) { - getClient(key).bitcount(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).bitcount(key, start, end); + return getResponse(BuilderFactory.LONG); } public Response bitcount(byte[] key) { - getClient(key).bitcount(key); - return getResponse(BuilderFactory.LONG); + getClient(key).bitcount(key); + return getResponse(BuilderFactory.LONG); } public Response bitcount(byte[] key, long start, long end) { - getClient(key).bitcount(key, start, end); - return getResponse(BuilderFactory.LONG); + getClient(key).bitcount(key, start, end); + return getResponse(BuilderFactory.LONG); } - + public Response dump(String key) { - getClient(key).dump(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).dump(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } - + public Response dump(byte[] key) { - getClient(key).dump(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).dump(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } - - public Response migrate(String host, int port, String key, int destinationDb, int timeout) { - getClient(key).migrate(host, port, key, destinationDb, timeout); - return getResponse(BuilderFactory.STRING); + + public Response migrate(String host, int port, String key, + int destinationDb, int timeout) { + getClient(key).migrate(host, port, key, destinationDb, timeout); + return getResponse(BuilderFactory.STRING); } - - public Response migrate(byte[] host, int port, byte[] key, int destinationDb, int timeout) { - getClient(key).migrate(host, port, key, destinationDb, timeout); - return getResponse(BuilderFactory.STRING); + + public Response migrate(byte[] host, int port, byte[] key, + int destinationDb, int timeout) { + getClient(key).migrate(host, port, key, destinationDb, timeout); + return getResponse(BuilderFactory.STRING); } - + public Response objectRefcount(String key) { - getClient(key).objectRefcount(key); - return getResponse(BuilderFactory.LONG); + getClient(key).objectRefcount(key); + return getResponse(BuilderFactory.LONG); } - + public Response objectRefcount(byte[] key) { - getClient(key).objectRefcount(key); - return getResponse(BuilderFactory.LONG); + getClient(key).objectRefcount(key); + return getResponse(BuilderFactory.LONG); } - + public Response objectEncoding(String key) { - getClient(key).objectEncoding(key); - return getResponse(BuilderFactory.STRING); + getClient(key).objectEncoding(key); + return getResponse(BuilderFactory.STRING); } - + public Response objectEncoding(byte[] key) { - getClient(key).objectEncoding(key); - return getResponse(BuilderFactory.BYTE_ARRAY); + getClient(key).objectEncoding(key); + return getResponse(BuilderFactory.BYTE_ARRAY); } - + public Response objectIdletime(String key) { - getClient(key).objectIdletime(key); - return getResponse(BuilderFactory.LONG); + getClient(key).objectIdletime(key); + return getResponse(BuilderFactory.LONG); } - + public Response objectIdletime(byte[] key) { - getClient(key).objectIdletime(key); - return getResponse(BuilderFactory.LONG); + getClient(key).objectIdletime(key); + return getResponse(BuilderFactory.LONG); } - + public Response pexpire(String key, int milliseconds) { - getClient(key).pexpire(key, milliseconds); - return getResponse(BuilderFactory.LONG); + getClient(key).pexpire(key, milliseconds); + return getResponse(BuilderFactory.LONG); } - + public Response pexpire(byte[] key, int milliseconds) { - getClient(key).pexpire(key, milliseconds); - return getResponse(BuilderFactory.LONG); + getClient(key).pexpire(key, milliseconds); + return getResponse(BuilderFactory.LONG); } - + public Response pexpireAt(String key, long millisecondsTimestamp) { - getClient(key).pexpireAt(key, millisecondsTimestamp); - return getResponse(BuilderFactory.LONG); + getClient(key).pexpireAt(key, millisecondsTimestamp); + return getResponse(BuilderFactory.LONG); } - + public Response pexpireAt(byte[] key, long millisecondsTimestamp) { - getClient(key).pexpireAt(key, millisecondsTimestamp); - return getResponse(BuilderFactory.LONG); + getClient(key).pexpireAt(key, millisecondsTimestamp); + return getResponse(BuilderFactory.LONG); } - + public Response pttl(String key) { - getClient(key).pttl(key); - return getResponse(BuilderFactory.LONG); + getClient(key).pttl(key); + return getResponse(BuilderFactory.LONG); } - + public Response pttl(byte[] key) { - getClient(key).pttl(key); - return getResponse(BuilderFactory.LONG); + getClient(key).pttl(key); + return getResponse(BuilderFactory.LONG); } - + public Response restore(String key, int ttl, byte[] serializedValue) { - getClient(key).restore(key, ttl, serializedValue); - return getResponse(BuilderFactory.STRING); + getClient(key).restore(key, ttl, serializedValue); + return getResponse(BuilderFactory.STRING); } - + public Response restore(byte[] key, int ttl, byte[] serializedValue) { - getClient(key).restore(key, ttl, serializedValue); - return getResponse(BuilderFactory.STRING); + getClient(key).restore(key, ttl, serializedValue); + return getResponse(BuilderFactory.STRING); } - + public Response incrByFloat(String key, double increment) { - getClient(key).incrByFloat(key, increment); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).incrByFloat(key, increment); + return getResponse(BuilderFactory.DOUBLE); } - + public Response incrByFloat(byte[] key, double increment) { - getClient(key).incrByFloat(key, increment); - return getResponse(BuilderFactory.DOUBLE); + getClient(key).incrByFloat(key, increment); + return getResponse(BuilderFactory.DOUBLE); } - + public Response psetex(String key, int milliseconds, String value) { - getClient(key).psetex(key, milliseconds, value); - return getResponse(BuilderFactory.STRING); + getClient(key).psetex(key, milliseconds, value); + return getResponse(BuilderFactory.STRING); } - + public Response psetex(byte[] key, int milliseconds, byte[] value) { - getClient(key).psetex(key, milliseconds, value); - return getResponse(BuilderFactory.STRING); + getClient(key).psetex(key, milliseconds, value); + return getResponse(BuilderFactory.STRING); } - + public Response set(String key, String value, String nxxx) { - getClient(key).set(key, value, nxxx); - return getResponse(BuilderFactory.STRING); + getClient(key).set(key, value, nxxx); + return getResponse(BuilderFactory.STRING); } - + public Response set(byte[] key, byte[] value, byte[] nxxx) { - getClient(key).set(key, value, nxxx); - return getResponse(BuilderFactory.STRING); + getClient(key).set(key, value, nxxx); + return getResponse(BuilderFactory.STRING); } - - public Response set(String key, String value, String nxxx, String expx, int time) { - getClient(key).set(key, value, nxxx, expx, time); - return getResponse(BuilderFactory.STRING); + + public Response set(String key, String value, String nxxx, + String expx, int time) { + getClient(key).set(key, value, nxxx, expx, time); + return getResponse(BuilderFactory.STRING); } - - public Response set(byte[] key, byte[] value, byte[] nxxx, byte[] expx, int time) { - getClient(key).set(key, value, nxxx, expx, time); - return getResponse(BuilderFactory.STRING); + + public Response set(byte[] key, byte[] value, byte[] nxxx, + byte[] expx, int time) { + getClient(key).set(key, value, nxxx, expx, time); + return getResponse(BuilderFactory.STRING); } - - public Response hincrByFloat(String key, String field, double increment) { - getClient(key).hincrByFloat(key, field, increment); - return getResponse(BuilderFactory.DOUBLE); + + public Response hincrByFloat(String key, String field, + double increment) { + getClient(key).hincrByFloat(key, field, increment); + return getResponse(BuilderFactory.DOUBLE); } - - public Response hincrByFloat(byte[] key, byte[] field, double increment) { - getClient(key).hincrByFloat(key, field, increment); - return getResponse(BuilderFactory.DOUBLE); + + public Response hincrByFloat(byte[] key, byte[] field, + double increment) { + getClient(key).hincrByFloat(key, field, increment); + return getResponse(BuilderFactory.DOUBLE); } public Response eval(String script) { - return this.eval(script, 0, new String[0]); + return this.eval(script, 0, new String[0]); } - - public Response eval(String script, List keys, List args) { - String[] argv = Jedis.getParams(keys, args); - return this.eval(script, keys.size(), argv); + + public Response eval(String script, List keys, + List args) { + String[] argv = Jedis.getParams(keys, args); + return this.eval(script, keys.size(), argv); } - + public Response eval(String script, int numKeys, String[] argv) { - getClient(script).eval(script, numKeys, argv); - return getResponse(BuilderFactory.STRING); + getClient(script).eval(script, numKeys, argv); + return getResponse(BuilderFactory.STRING); } - + public Response evalsha(String script) { - return this.evalsha(script, 0, new String[0]); + return this.evalsha(script, 0, new String[0]); } - - public Response evalsha(String sha1, List keys, List args) { - String[] argv = Jedis.getParams(keys, args); - return this.evalsha(sha1, keys.size(), argv); + + public Response evalsha(String sha1, List keys, + List args) { + String[] argv = Jedis.getParams(keys, args); + return this.evalsha(sha1, keys.size(), argv); } - + public Response evalsha(String sha1, int numKeys, String[] argv) { - getClient(sha1).evalsha(sha1, numKeys, argv); - return getResponse(BuilderFactory.STRING); + getClient(sha1).evalsha(sha1, numKeys, argv); + return getResponse(BuilderFactory.STRING); } - - + } diff --git a/src/main/java/redis/clients/jedis/PipelineBlock.java b/src/main/java/redis/clients/jedis/PipelineBlock.java index 9afc391..9cf2f7e 100644 --- a/src/main/java/redis/clients/jedis/PipelineBlock.java +++ b/src/main/java/redis/clients/jedis/PipelineBlock.java @@ -1,6 +1,5 @@ package redis.clients.jedis; - public abstract class PipelineBlock extends Pipeline { public abstract void execute(); } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index a5e08c6..2ba157c 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -16,7 +16,7 @@ public final class Protocol { private static final String ASK_RESPONSE = "ASK"; private static final String MOVED_RESPONSE = "MOVED"; - public static final int DEFAULT_PORT = 6379; + public static final int DEFAULT_PORT = 6379; public static final int DEFAULT_SENTINEL_PORT = 26379; public static final int DEFAULT_TIMEOUT = 2000; public static final int DEFAULT_DATABASE = 0; @@ -44,7 +44,7 @@ public final class Protocol { public static final String CLUSTER_SETSLOT_NODE = "node"; public static final String CLUSTER_SETSLOT_MIGRATING = "migrating"; public static final String CLUSTER_SETSLOT_IMPORTING = "importing"; - + private Protocol() { // this prevent the class from instantiation } @@ -76,27 +76,32 @@ public final class Protocol { } private static void processError(final RedisInputStream is) { - String message = is.readLine(); - //TODO: I'm not sure if this is the best way to do this. - //Maybe Read only first 5 bytes instead? - if (message.startsWith(MOVED_RESPONSE)) { - String[] movedInfo = parseTargetHostAndSlot(message); - throw new JedisMovedDataException(message, new HostAndPort(movedInfo[1], Integer.valueOf(movedInfo[2])), Integer.valueOf(movedInfo[0])); - } else if (message.startsWith(ASK_RESPONSE)) { - String[] askInfo = parseTargetHostAndSlot(message); - throw new JedisAskDataException(message, new HostAndPort(askInfo[1], Integer.valueOf(askInfo[2])), Integer.valueOf(askInfo[0])); - } - throw new JedisDataException(message); + String message = is.readLine(); + // TODO: I'm not sure if this is the best way to do this. + // Maybe Read only first 5 bytes instead? + if (message.startsWith(MOVED_RESPONSE)) { + String[] movedInfo = parseTargetHostAndSlot(message); + throw new JedisMovedDataException(message, new HostAndPort( + movedInfo[1], Integer.valueOf(movedInfo[2])), + Integer.valueOf(movedInfo[0])); + } else if (message.startsWith(ASK_RESPONSE)) { + String[] askInfo = parseTargetHostAndSlot(message); + throw new JedisAskDataException(message, new HostAndPort( + askInfo[1], Integer.valueOf(askInfo[2])), + Integer.valueOf(askInfo[0])); + } + throw new JedisDataException(message); } - - private static String[] parseTargetHostAndSlot(String clusterRedirectResponse) { - String[] response = new String[3]; - String[] messageInfo = clusterRedirectResponse.split(" "); - String[] targetHostAndPort = messageInfo[2].split(":"); - response[0] = messageInfo[1]; - response[1] = targetHostAndPort[0]; - response[2] = targetHostAndPort[1]; - return response; + + private static String[] parseTargetHostAndSlot( + String clusterRedirectResponse) { + String[] response = new String[3]; + String[] messageInfo = clusterRedirectResponse.split(" "); + String[] targetHostAndPort = messageInfo[2].split(":"); + response[0] = messageInfo[1]; + response[1] = targetHostAndPort[0]; + response[2] = targetHostAndPort[1]; + return response; } private static Object process(final RedisInputStream is) { @@ -134,10 +139,11 @@ public final class Protocol { int offset = 0; try { while (offset < len) { - int size = is.read(read, offset, (len - offset)); - if (size == -1) - throw new JedisConnectionException("It seems like server has closed the connection."); - offset += size; + int size = is.read(read, offset, (len - offset)); + if (size == -1) + throw new JedisConnectionException( + "It seems like server has closed the connection."); + offset += size; } // read 2 more bytes for the command delimiter is.readByte(); @@ -175,7 +181,7 @@ public final class Protocol { } public static final byte[] toByteArray(final boolean value) { - return toByteArray(value ? 1 : 0); + return toByteArray(value ? 1 : 0); } public static final byte[] toByteArray(final int value) { @@ -201,8 +207,7 @@ public final class Protocol { } public static enum Keyword { - AGGREGATE, ALPHA, ASC, BY, DESC, GET, LIMIT, MESSAGE, NO, NOSORT, PMESSAGE, PSUBSCRIBE, PUNSUBSCRIBE, OK, ONE, QUEUED, SET, STORE, SUBSCRIBE, UNSUBSCRIBE, WEIGHTS, WITHSCORES, RESETSTAT, RESET, FLUSH, EXISTS, LOAD, KILL, LEN, REFCOUNT, ENCODING, IDLETIME, AND, OR, XOR, NOT, - GETNAME, SETNAME,LIST, MATCH, COUNT; + AGGREGATE, ALPHA, ASC, BY, DESC, GET, LIMIT, MESSAGE, NO, NOSORT, PMESSAGE, PSUBSCRIBE, PUNSUBSCRIBE, OK, ONE, QUEUED, SET, STORE, SUBSCRIBE, UNSUBSCRIBE, WEIGHTS, WITHSCORES, RESETSTAT, RESET, FLUSH, EXISTS, LOAD, KILL, LEN, REFCOUNT, ENCODING, IDLETIME, AND, OR, XOR, NOT, GETNAME, SETNAME, LIST, MATCH, COUNT; public final byte[] raw; Keyword() { diff --git a/src/main/java/redis/clients/jedis/Queable.java b/src/main/java/redis/clients/jedis/Queable.java index b8ff0e5..769bf16 100644 --- a/src/main/java/redis/clients/jedis/Queable.java +++ b/src/main/java/redis/clients/jedis/Queable.java @@ -7,21 +7,21 @@ public class Queable { private Queue> pipelinedResponses = new LinkedList>(); protected void clean() { - pipelinedResponses.clear(); + pipelinedResponses.clear(); } protected Response generateResponse(Object data) { - Response response = pipelinedResponses.poll(); - if (response != null) { - response.set(data); - } - return response; + Response response = pipelinedResponses.poll(); + if (response != null) { + response.set(data); + } + return response; } protected Response getResponse(Builder builder) { - Response lr = new Response(builder); - pipelinedResponses.add(lr); - return lr; + Response lr = new Response(builder); + pipelinedResponses.add(lr); + return lr; } } diff --git a/src/main/java/redis/clients/jedis/RedisPipeline.java b/src/main/java/redis/clients/jedis/RedisPipeline.java index ff9e862..bb5226c 100644 --- a/src/main/java/redis/clients/jedis/RedisPipeline.java +++ b/src/main/java/redis/clients/jedis/RedisPipeline.java @@ -32,10 +32,7 @@ public interface RedisPipeline { Response getbit(String key, long offset); - - - Response getrange(String key, long startOffset, - long endOffset); + Response getrange(String key, long startOffset, long endOffset); Response getSet(String key, String value); @@ -70,7 +67,7 @@ public interface RedisPipeline { Response lindex(String key, long index); Response linsert(String key, BinaryClient.LIST_POSITION where, - String pivot, String value); + String pivot, String value); Response llen(String key); @@ -118,8 +115,7 @@ public interface RedisPipeline { Response> sort(String key); - Response> sort(String key, - SortingParams sortingParameters); + Response> sort(String key, SortingParams sortingParameters); Response spop(String key); @@ -145,35 +141,31 @@ public interface RedisPipeline { Response> zrange(String key, long start, long end); - Response> zrangeByScore(String key, double min, - double max); + Response> zrangeByScore(String key, double min, double max); - Response> zrangeByScore(String key, String min, - String max); + Response> zrangeByScore(String key, String min, String max); - Response> zrangeByScore(String key, double min, - double max, int offset, int count); + Response> zrangeByScore(String key, double min, double max, + int offset, int count); Response> zrangeByScoreWithScores(String key, double min, - double max); + double max); Response> zrangeByScoreWithScores(String key, double min, - double max, int offset, int count); + double max, int offset, int count); - Response> zrevrangeByScore(String key, double max, - double min); + Response> zrevrangeByScore(String key, double max, double min); - Response> zrevrangeByScore(String key, String max, - String min); + Response> zrevrangeByScore(String key, String max, String min); - Response> zrevrangeByScore(String key, double max, - double min, int offset, int count); + Response> zrevrangeByScore(String key, double max, double min, + int offset, int count); - Response> zrevrangeByScoreWithScores(String key, - double max, double min); + Response> zrevrangeByScoreWithScores(String key, double max, + double min); - Response> zrevrangeByScoreWithScores(String key, - double max, double min, int offset, int count); + Response> zrevrangeByScoreWithScores(String key, double max, + double min, int offset, int count); Response> zrangeWithScores(String key, long start, long end); @@ -187,8 +179,7 @@ public interface RedisPipeline { Response> zrevrange(String key, long start, long end); - Response> zrevrangeWithScores(String key, long start, - long end); + Response> zrevrangeWithScores(String key, long start, long end); Response zrevrank(String key, String member); diff --git a/src/main/java/redis/clients/jedis/Response.java b/src/main/java/redis/clients/jedis/Response.java index 058985f..b17f314 100644 --- a/src/main/java/redis/clients/jedis/Response.java +++ b/src/main/java/redis/clients/jedis/Response.java @@ -10,34 +10,34 @@ public class Response { private Object data; public Response(Builder b) { - this.builder = b; + this.builder = b; } public void set(Object data) { - this.data = data; - set = true; + this.data = data; + set = true; } public T get() { - if (!set) { - throw new JedisDataException( - "Please close pipeline or multi block before calling this method."); - } - if (!built) { - if(data != null ){ - if (data instanceof JedisDataException){ - throw new JedisDataException((JedisDataException)data); - } - response = builder.build(data); - } - this.data = null; - built = true; - } - return response; + if (!set) { + throw new JedisDataException( + "Please close pipeline or multi block before calling this method."); + } + if (!built) { + if (data != null) { + if (data instanceof JedisDataException) { + throw new JedisDataException((JedisDataException) data); + } + response = builder.build(data); + } + this.data = null; + built = true; + } + return response; } public String toString() { - return "Response " + builder.toString(); + return "Response " + builder.toString(); } } diff --git a/src/main/java/redis/clients/jedis/ShardedJedis.java b/src/main/java/redis/clients/jedis/ShardedJedis.java index f3d2f72..02c0e4c 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedis.java +++ b/src/main/java/redis/clients/jedis/ShardedJedis.java @@ -1,14 +1,14 @@ package redis.clients.jedis; -import redis.clients.jedis.BinaryClient.LIST_POSITION; -import redis.clients.util.Hashing; - import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.regex.Pattern; +import redis.clients.jedis.BinaryClient.LIST_POSITION; +import redis.clients.util.Hashing; + public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { public ShardedJedis(List shards) { super(shards); @@ -38,8 +38,8 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { } public String echo(String string) { - Jedis j = getShard(string); - return j.echo(string); + Jedis j = getShard(string); + return j.echo(string); } public Boolean exists(String key) { @@ -73,8 +73,8 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { } public Boolean setbit(String key, long offset, String value) { - Jedis j = getShard(key); - return j.setbit(key, offset, value); + Jedis j = getShard(key); + return j.setbit(key, offset, value); } public Boolean getbit(String key, long offset) { @@ -108,13 +108,13 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { } public List blpop(String arg) { - Jedis j = getShard(arg); - return j.blpop(arg); + Jedis j = getShard(arg); + return j.blpop(arg); } public List brpop(String arg) { - Jedis j = getShard(arg); - return j.brpop(arg); + Jedis j = getShard(arg); + return j.brpop(arg); } public Long decrBy(String key, long integer) { @@ -228,13 +228,13 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { } public Long strlen(final String key) { - Jedis j = getShard(key); - return j.strlen(key); + Jedis j = getShard(key); + return j.strlen(key); } public Long move(String key, int dbIndex) { - Jedis j = getShard(key); - return j.move(key, dbIndex); + Jedis j = getShard(key); + return j.move(key, dbIndex); } public Long rpushx(String key, String... string) { @@ -243,8 +243,8 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { } public Long persist(final String key) { - Jedis j = getShard(key); - return j.persist(key); + Jedis j = getShard(key); + return j.persist(key); } public Long llen(String key) { @@ -326,10 +326,10 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { Jedis j = getShard(key); return j.zadd(key, score, member); } - + public Long zadd(String key, Map scoreMembers) { - Jedis j = getShard(key); - return j.zadd(key, scoreMembers); + Jedis j = getShard(key); + return j.zadd(key, scoreMembers); } public Set zrange(String key, long start, long end) { @@ -527,12 +527,12 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands { Jedis j = getShard(key); return j.hscan(key, cursor); } - + public ScanResult sscan(String key, int cursor) { Jedis j = getShard(key); return j.sscan(key, cursor); } - + public ScanResult zscan(String key, int cursor) { Jedis j = getShard(key); return j.zscan(key, cursor); diff --git a/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java b/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java index be6db92..6b68e95 100644 --- a/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java +++ b/src/main/java/redis/clients/jedis/ShardedJedisPipeline.java @@ -11,27 +11,27 @@ public class ShardedJedisPipeline extends PipelineBase { private Queue clients = new LinkedList(); private static class FutureResult { - private Client client; + private Client client; - public FutureResult(Client client) { - this.client = client; - } + public FutureResult(Client client) { + this.client = client; + } - public Object get() { - return client.getOne(); - } + public Object get() { + return client.getOne(); + } } public void setShardedJedis(BinaryShardedJedis jedis) { - this.jedis = jedis; + this.jedis = jedis; } public List getResults() { - List r = new ArrayList(); - for (FutureResult fr : results) { - r.add(fr.get()); - } - return r; + List r = new ArrayList(); + for (FutureResult fr : results) { + r.add(fr.get()); + } + return r; } /** @@ -40,30 +40,30 @@ public class ShardedJedisPipeline extends PipelineBase { * the different Response<?> of the commands you execute. */ public void sync() { - for (Client client : clients) { - generateResponse(client.getOne()); - } + for (Client client : clients) { + generateResponse(client.getOne()); + } } /** * Syncronize pipeline by reading all responses. This operation closes the * pipeline. Whenever possible try to avoid using this version and use - * ShardedJedisPipeline.sync() as it won't go through all the responses and generate the - * right response type (usually it is a waste of time). - * + * ShardedJedisPipeline.sync() as it won't go through all the responses and + * generate the right response type (usually it is a waste of time). + * * @return A list of all the responses in the order you executed them. */ public List syncAndReturnAll() { - List formatted = new ArrayList(); - for (Client client : clients) { - formatted.add(generateResponse(client.getOne()).get()); - } - return formatted; + List formatted = new ArrayList(); + for (Client client : clients) { + formatted.add(generateResponse(client.getOne()).get()); + } + return formatted; } /** - * This method will be removed in Jedis 3.0. Use the methods that return Response's and call - * sync(). + * This method will be removed in Jedis 3.0. Use the methods that return + * Response's and call sync(). */ @Deprecated public void execute() { @@ -71,17 +71,17 @@ public class ShardedJedisPipeline extends PipelineBase { @Override protected Client getClient(String key) { - Client client = jedis.getShard(key).getClient(); - clients.add(client); - results.add(new FutureResult(client)); - return client; + Client client = jedis.getShard(key).getClient(); + clients.add(client); + results.add(new FutureResult(client)); + return client; } @Override protected Client getClient(byte[] key) { - Client client = jedis.getShard(key).getClient(); - clients.add(client); - results.add(new FutureResult(client)); - return client; + Client client = jedis.getShard(key).getClient(); + clients.add(client); + results.add(new FutureResult(client)); + return client; } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/SortingParams.java b/src/main/java/redis/clients/jedis/SortingParams.java index cfdf03b..ea0bee8 100644 --- a/src/main/java/redis/clients/jedis/SortingParams.java +++ b/src/main/java/redis/clients/jedis/SortingParams.java @@ -36,7 +36,7 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams by(final String pattern) { - return by(SafeEncoder.encode(pattern)); + return by(SafeEncoder.encode(pattern)); } /** @@ -53,9 +53,9 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams by(final byte[] pattern) { - params.add(BY.raw); - params.add(pattern); - return this; + params.add(BY.raw); + params.add(pattern); + return this; } /** @@ -67,13 +67,13 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams nosort() { - params.add(BY.raw); - params.add(NOSORT.raw); - return this; + params.add(BY.raw); + params.add(NOSORT.raw); + return this; } public Collection getParams() { - return Collections.unmodifiableCollection(params); + return Collections.unmodifiableCollection(params); } /** @@ -82,8 +82,8 @@ public class SortingParams { * @return the sortingParams Object */ public SortingParams desc() { - params.add(DESC.raw); - return this; + params.add(DESC.raw); + return this; } /** @@ -92,8 +92,8 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams asc() { - params.add(ASC.raw); - return this; + params.add(ASC.raw); + return this; } /** @@ -105,10 +105,10 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams limit(final int start, final int count) { - params.add(LIMIT.raw); - params.add(Protocol.toByteArray(start)); - params.add(Protocol.toByteArray(count)); - return this; + params.add(LIMIT.raw); + params.add(Protocol.toByteArray(start)); + params.add(Protocol.toByteArray(count)); + return this; } /** @@ -118,8 +118,8 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams alpha() { - params.add(ALPHA.raw); - return this; + params.add(ALPHA.raw); + return this; } /** @@ -138,11 +138,11 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams get(String... patterns) { - for (final String pattern : patterns) { - params.add(GET.raw); - params.add(SafeEncoder.encode(pattern)); - } - return this; + for (final String pattern : patterns) { + params.add(GET.raw); + params.add(SafeEncoder.encode(pattern)); + } + return this; } /** @@ -161,10 +161,10 @@ public class SortingParams { * @return the SortingParams Object */ public SortingParams get(byte[]... patterns) { - for (final byte[] pattern : patterns) { - params.add(GET.raw); - params.add(pattern); - } - return this; + for (final byte[] pattern : patterns) { + params.add(GET.raw); + params.add(pattern); + } + return this; } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/Transaction.java b/src/main/java/redis/clients/jedis/Transaction.java index 949f541..69d50d2 100644 --- a/src/main/java/redis/clients/jedis/Transaction.java +++ b/src/main/java/redis/clients/jedis/Transaction.java @@ -6,70 +6,71 @@ import java.util.List; import redis.clients.jedis.exceptions.JedisDataException; /** - * Transaction is nearly identical to Pipeline, only differences are the multi/discard behaviors + * Transaction is nearly identical to Pipeline, only differences are the + * multi/discard behaviors */ public class Transaction extends MultiKeyPipelineBase { protected boolean inTransaction = true; - protected Transaction(){ - // client will be set later in transaction block + protected Transaction() { + // client will be set later in transaction block } public Transaction(final Client client) { - this.client = client; + this.client = client; } @Override protected Client getClient(String key) { - return client; + return client; } @Override protected Client getClient(byte[] key) { - return client; + return client; } public List exec() { - client.exec(); - client.getAll(1); // Discard all but the last reply + client.exec(); + client.getAll(1); // Discard all but the last reply - List unformatted = client.getObjectMultiBulkReply(); - if (unformatted == null) { - return null; - } - List formatted = new ArrayList(); - for (Object o : unformatted) { - try { - formatted.add(generateResponse(o).get()); - } catch (JedisDataException e) { - formatted.add(e); - } - } - return formatted; + List unformatted = client.getObjectMultiBulkReply(); + if (unformatted == null) { + return null; + } + List formatted = new ArrayList(); + for (Object o : unformatted) { + try { + formatted.add(generateResponse(o).get()); + } catch (JedisDataException e) { + formatted.add(e); + } + } + return formatted; } public List> execGetResponse() { - client.exec(); - client.getAll(1); // Discard all but the last reply + client.exec(); + client.getAll(1); // Discard all but the last reply - List unformatted = client.getObjectMultiBulkReply(); - if (unformatted == null) { - return null; - } - List> response = new ArrayList>(); - for (Object o : unformatted) { - response.add(generateResponse(o)); - } - return response; + List unformatted = client.getObjectMultiBulkReply(); + if (unformatted == null) { + return null; + } + List> response = new ArrayList>(); + for (Object o : unformatted) { + response.add(generateResponse(o)); + } + return response; } public String discard() { - client.discard(); - client.getAll(1); // Discard all but the last reply - inTransaction = false; - clean(); - return client.getStatusCodeReply(); + client.discard(); + client.getAll(1); // Discard all but the last reply + inTransaction = false; + clean(); + return client.getStatusCodeReply(); } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/TransactionBlock.java b/src/main/java/redis/clients/jedis/TransactionBlock.java index e784e19..87df232 100644 --- a/src/main/java/redis/clients/jedis/TransactionBlock.java +++ b/src/main/java/redis/clients/jedis/TransactionBlock.java @@ -13,6 +13,6 @@ public abstract class TransactionBlock extends Transaction { public abstract void execute() throws JedisException; public void setClient(Client client) { - this.client = client; + this.client = client; } } diff --git a/src/main/java/redis/clients/jedis/Tuple.java b/src/main/java/redis/clients/jedis/Tuple.java index 211a9e9..ad8d001 100644 --- a/src/main/java/redis/clients/jedis/Tuple.java +++ b/src/main/java/redis/clients/jedis/Tuple.java @@ -9,72 +9,72 @@ public class Tuple implements Comparable { private Double score; public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result; - if (null != element) { - for (final byte b : element) { - result = prime * result + b; - } - } - long temp; - temp = Double.doubleToLongBits(score); - result = prime * result + (int) (temp ^ (temp >>> 32)); - return result; + final int prime = 31; + int result = 1; + result = prime * result; + if (null != element) { + for (final byte b : element) { + result = prime * result + b; + } + } + long temp; + temp = Double.doubleToLongBits(score); + result = prime * result + (int) (temp ^ (temp >>> 32)); + return result; } public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Tuple other = (Tuple) obj; - if (element == null) { - if (other.element != null) - return false; - } else if (!Arrays.equals(element, other.element)) - return false; - return true; + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Tuple other = (Tuple) obj; + if (element == null) { + if (other.element != null) + return false; + } else if (!Arrays.equals(element, other.element)) + return false; + return true; } public int compareTo(Tuple other) { - if (Arrays.equals(this.element, other.element)) - return 0; - else - return this.score < other.getScore() ? -1 : 1; + if (Arrays.equals(this.element, other.element)) + return 0; + else + return this.score < other.getScore() ? -1 : 1; } public Tuple(String element, Double score) { - super(); - this.element = SafeEncoder.encode(element); - this.score = score; + super(); + this.element = SafeEncoder.encode(element); + this.score = score; } public Tuple(byte[] element, Double score) { - super(); - this.element = element; - this.score = score; + super(); + this.element = element; + this.score = score; } public String getElement() { - if (null != element) { - return SafeEncoder.encode(element); - } else { - return null; - } + if (null != element) { + return SafeEncoder.encode(element); + } else { + return null; + } } public byte[] getBinaryElement() { - return element; + return element; } public double getScore() { - return score; + return score; } public String toString() { - return '[' + Arrays.toString(element) + ',' + score + ']'; + return '[' + Arrays.toString(element) + ',' + score + ']'; } } \ No newline at end of file diff --git a/src/main/java/redis/clients/jedis/ZParams.java b/src/main/java/redis/clients/jedis/ZParams.java index daa6f8e..7b585f3 100644 --- a/src/main/java/redis/clients/jedis/ZParams.java +++ b/src/main/java/redis/clients/jedis/ZParams.java @@ -12,33 +12,33 @@ import redis.clients.util.SafeEncoder; public class ZParams { public enum Aggregate { - SUM, MIN, MAX; + SUM, MIN, MAX; - public final byte[] raw; + public final byte[] raw; - Aggregate() { - raw = SafeEncoder.encode(name()); - } + Aggregate() { + raw = SafeEncoder.encode(name()); + } } private List params = new ArrayList(); public ZParams weights(final int... weights) { - params.add(WEIGHTS.raw); - for (final int weight : weights) { - params.add(Protocol.toByteArray(weight)); - } + params.add(WEIGHTS.raw); + for (final int weight : weights) { + params.add(Protocol.toByteArray(weight)); + } - return this; + return this; } public Collection getParams() { - return Collections.unmodifiableCollection(params); + return Collections.unmodifiableCollection(params); } public ZParams aggregate(final Aggregate aggregate) { - params.add(AGGREGATE.raw); - params.add(aggregate.raw); - return this; + params.add(AGGREGATE.raw); + params.add(aggregate.raw); + return this; } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisAskDataException.java b/src/main/java/redis/clients/jedis/exceptions/JedisAskDataException.java index 599a779..0544109 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisAskDataException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisAskDataException.java @@ -4,17 +4,20 @@ import redis.clients.jedis.HostAndPort; public class JedisAskDataException extends JedisRedirectionException { private static final long serialVersionUID = 3878126572474819403L; - - public JedisAskDataException(Throwable cause, HostAndPort targetHost, int slot) { - super(cause, targetHost, slot); + + public JedisAskDataException(Throwable cause, HostAndPort targetHost, + int slot) { + super(cause, targetHost, slot); } - public JedisAskDataException(String message, Throwable cause, HostAndPort targetHost, int slot) { - super(message, cause, targetHost, slot); + public JedisAskDataException(String message, Throwable cause, + HostAndPort targetHost, int slot) { + super(message, cause, targetHost, slot); } - public JedisAskDataException(String message, HostAndPort targetHost, int slot) { - super(message, targetHost, slot); - } + public JedisAskDataException(String message, HostAndPort targetHost, + int slot) { + super(message, targetHost, slot); + } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisClusterException.java b/src/main/java/redis/clients/jedis/exceptions/JedisClusterException.java index e20d5a7..7e93b26 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisClusterException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisClusterException.java @@ -1,18 +1,17 @@ package redis.clients.jedis.exceptions; - public class JedisClusterException extends JedisDataException { private static final long serialVersionUID = 3878126572474819403L; - + public JedisClusterException(Throwable cause) { - super(cause); + super(cause); } public JedisClusterException(String message, Throwable cause) { - super(message, cause); + super(message, cause); } - public JedisClusterException(String message) { - super(message); - } + public JedisClusterException(String message) { + super(message); + } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisClusterMaxRedirectionsException.java b/src/main/java/redis/clients/jedis/exceptions/JedisClusterMaxRedirectionsException.java index 519188b..29c289b 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisClusterMaxRedirectionsException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisClusterMaxRedirectionsException.java @@ -1,18 +1,17 @@ package redis.clients.jedis.exceptions; - public class JedisClusterMaxRedirectionsException extends JedisDataException { private static final long serialVersionUID = 3878126572474819403L; - + public JedisClusterMaxRedirectionsException(Throwable cause) { - super(cause); + super(cause); } public JedisClusterMaxRedirectionsException(String message, Throwable cause) { - super(message, cause); + super(message, cause); } - public JedisClusterMaxRedirectionsException(String message) { - super(message); - } + public JedisClusterMaxRedirectionsException(String message) { + super(message); + } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java b/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java index 6e25718..f20c53a 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisConnectionException.java @@ -4,14 +4,14 @@ public class JedisConnectionException extends JedisException { private static final long serialVersionUID = 3878126572474819403L; public JedisConnectionException(String message) { - super(message); + super(message); } public JedisConnectionException(Throwable cause) { - super(cause); + super(cause); } public JedisConnectionException(String message, Throwable cause) { - super(message, cause); + super(message, cause); } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java b/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java index 1a7de9b..9872377 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisDataException.java @@ -4,14 +4,14 @@ public class JedisDataException extends JedisException { private static final long serialVersionUID = 3878126572474819403L; public JedisDataException(String message) { - super(message); + super(message); } public JedisDataException(Throwable cause) { - super(cause); + super(cause); } public JedisDataException(String message, Throwable cause) { - super(message, cause); + super(message, cause); } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisException.java b/src/main/java/redis/clients/jedis/exceptions/JedisException.java index f983bf6..f4abb71 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisException.java @@ -1,18 +1,17 @@ package redis.clients.jedis.exceptions; - public class JedisException extends RuntimeException { private static final long serialVersionUID = -2946266495682282677L; public JedisException(String message) { - super(message); + super(message); } public JedisException(Throwable e) { - super(e); + super(e); } public JedisException(String message, Throwable cause) { - super(message, cause); + super(message, cause); } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisMovedDataException.java b/src/main/java/redis/clients/jedis/exceptions/JedisMovedDataException.java index c7a0873..123f5e3 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisMovedDataException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisMovedDataException.java @@ -2,20 +2,21 @@ package redis.clients.jedis.exceptions; import redis.clients.jedis.HostAndPort; - public class JedisMovedDataException extends JedisRedirectionException { private static final long serialVersionUID = 3878126572474819403L; - - public JedisMovedDataException(String message, HostAndPort targetNode, int slot) { - super(message, targetNode, slot); + public JedisMovedDataException(String message, HostAndPort targetNode, + int slot) { + super(message, targetNode, slot); } - public JedisMovedDataException(Throwable cause, HostAndPort targetNode, int slot) { - super(cause, targetNode, slot); + public JedisMovedDataException(Throwable cause, HostAndPort targetNode, + int slot) { + super(cause, targetNode, slot); } - public JedisMovedDataException(String message, Throwable cause, HostAndPort targetNode, int slot) { - super(message, cause, targetNode, slot); + public JedisMovedDataException(String message, Throwable cause, + HostAndPort targetNode, int slot) { + super(message, cause, targetNode, slot); } } diff --git a/src/main/java/redis/clients/jedis/exceptions/JedisRedirectionException.java b/src/main/java/redis/clients/jedis/exceptions/JedisRedirectionException.java index 65969f3..ab96287 100644 --- a/src/main/java/redis/clients/jedis/exceptions/JedisRedirectionException.java +++ b/src/main/java/redis/clients/jedis/exceptions/JedisRedirectionException.java @@ -2,36 +2,38 @@ package redis.clients.jedis.exceptions; import redis.clients.jedis.HostAndPort; - public class JedisRedirectionException extends JedisDataException { private static final long serialVersionUID = 3878126572474819403L; - + private HostAndPort targetNode; private int slot; - public JedisRedirectionException(String message, HostAndPort targetNode, int slot) { - super(message); - this.targetNode = targetNode; - this.slot = slot; + public JedisRedirectionException(String message, HostAndPort targetNode, + int slot) { + super(message); + this.targetNode = targetNode; + this.slot = slot; } - public JedisRedirectionException(Throwable cause, HostAndPort targetNode, int slot) { - super(cause); - this.targetNode = targetNode; - this.slot = slot; + public JedisRedirectionException(Throwable cause, HostAndPort targetNode, + int slot) { + super(cause); + this.targetNode = targetNode; + this.slot = slot; } - public JedisRedirectionException(String message, Throwable cause, HostAndPort targetNode, int slot) { - super(message, cause); - this.targetNode = targetNode; - this.slot = slot; + public JedisRedirectionException(String message, Throwable cause, + HostAndPort targetNode, int slot) { + super(message, cause); + this.targetNode = targetNode; + this.slot = slot; } - public HostAndPort getTargetNode() { - return targetNode; - } + public HostAndPort getTargetNode() { + return targetNode; + } - public int getSlot() { - return slot; - } + public int getSlot() { + return slot; + } } diff --git a/src/main/java/redis/clients/util/Hashing.java b/src/main/java/redis/clients/util/Hashing.java index 1460f03..b15a199 100644 --- a/src/main/java/redis/clients/util/Hashing.java +++ b/src/main/java/redis/clients/util/Hashing.java @@ -8,28 +8,28 @@ public interface Hashing { public ThreadLocal md5Holder = new ThreadLocal(); public static final Hashing MD5 = new Hashing() { - public long hash(String key) { - return hash(SafeEncoder.encode(key)); - } + public long hash(String key) { + return hash(SafeEncoder.encode(key)); + } - public long hash(byte[] key) { - try { - if (md5Holder.get() == null) { - md5Holder.set(MessageDigest.getInstance("MD5")); - } - } catch (NoSuchAlgorithmException e) { - throw new IllegalStateException("++++ no md5 algorythm found"); - } - MessageDigest md5 = md5Holder.get(); + public long hash(byte[] key) { + try { + if (md5Holder.get() == null) { + md5Holder.set(MessageDigest.getInstance("MD5")); + } + } catch (NoSuchAlgorithmException e) { + throw new IllegalStateException("++++ no md5 algorythm found"); + } + MessageDigest md5 = md5Holder.get(); - md5.reset(); - md5.update(key); - byte[] bKey = md5.digest(); - long res = ((long) (bKey[3] & 0xFF) << 24) - | ((long) (bKey[2] & 0xFF) << 16) - | ((long) (bKey[1] & 0xFF) << 8) | (long) (bKey[0] & 0xFF); - return res; - } + md5.reset(); + md5.update(key); + byte[] bKey = md5.digest(); + long res = ((long) (bKey[3] & 0xFF) << 24) + | ((long) (bKey[2] & 0xFF) << 16) + | ((long) (bKey[1] & 0xFF) << 8) | (long) (bKey[0] & 0xFF); + return res; + } }; public long hash(String key); diff --git a/src/main/java/redis/clients/util/JedisByteHashMap.java b/src/main/java/redis/clients/util/JedisByteHashMap.java index e13f3b0..cdef172 100644 --- a/src/main/java/redis/clients/util/JedisByteHashMap.java +++ b/src/main/java/redis/clients/util/JedisByteHashMap.java @@ -10,127 +10,127 @@ import java.util.Map; import java.util.Set; public class JedisByteHashMap implements Map, Cloneable, - Serializable { + Serializable { private static final long serialVersionUID = -6971431362627219416L; private Map internalMap = new HashMap(); public void clear() { - internalMap.clear(); + internalMap.clear(); } public boolean containsKey(Object key) { - if (key instanceof byte[]) - return internalMap.containsKey(new ByteArrayWrapper((byte[]) key)); - return internalMap.containsKey(key); + if (key instanceof byte[]) + return internalMap.containsKey(new ByteArrayWrapper((byte[]) key)); + return internalMap.containsKey(key); } public boolean containsValue(Object value) { - return internalMap.containsValue(value); + return internalMap.containsValue(value); } public Set> entrySet() { - Iterator> iterator = internalMap - .entrySet().iterator(); - HashSet> hashSet = new HashSet>(); - while (iterator.hasNext()) { - Entry entry = iterator.next(); - hashSet.add(new JedisByteEntry(entry.getKey().data, entry - .getValue())); - } - return hashSet; + Iterator> iterator = internalMap + .entrySet().iterator(); + HashSet> hashSet = new HashSet>(); + while (iterator.hasNext()) { + Entry entry = iterator.next(); + hashSet.add(new JedisByteEntry(entry.getKey().data, entry + .getValue())); + } + return hashSet; } public byte[] get(Object key) { - if (key instanceof byte[]) - return internalMap.get(new ByteArrayWrapper((byte[]) key)); - return internalMap.get(key); + if (key instanceof byte[]) + return internalMap.get(new ByteArrayWrapper((byte[]) key)); + return internalMap.get(key); } public boolean isEmpty() { - return internalMap.isEmpty(); + return internalMap.isEmpty(); } public Set keySet() { - Set keySet = new HashSet(); - Iterator iterator = internalMap.keySet().iterator(); - while (iterator.hasNext()) { - keySet.add(iterator.next().data); - } - return keySet; + Set keySet = new HashSet(); + Iterator iterator = internalMap.keySet().iterator(); + while (iterator.hasNext()) { + keySet.add(iterator.next().data); + } + return keySet; } public byte[] put(byte[] key, byte[] value) { - return internalMap.put(new ByteArrayWrapper(key), value); + return internalMap.put(new ByteArrayWrapper(key), value); } @SuppressWarnings("unchecked") public void putAll(Map m) { - Iterator iterator = m.entrySet().iterator(); - while (iterator.hasNext()) { - Entry next = (Entry) iterator - .next(); - internalMap.put(new ByteArrayWrapper(next.getKey()), next - .getValue()); - } + Iterator iterator = m.entrySet().iterator(); + while (iterator.hasNext()) { + Entry next = (Entry) iterator + .next(); + internalMap.put(new ByteArrayWrapper(next.getKey()), + next.getValue()); + } } public byte[] remove(Object key) { - if (key instanceof byte[]) - return internalMap.remove(new ByteArrayWrapper((byte[]) key)); - return internalMap.remove(key); + if (key instanceof byte[]) + return internalMap.remove(new ByteArrayWrapper((byte[]) key)); + return internalMap.remove(key); } public int size() { - return internalMap.size(); + return internalMap.size(); } public Collection values() { - return internalMap.values(); + return internalMap.values(); } private static final class ByteArrayWrapper { - private final byte[] data; + private final byte[] data; - public ByteArrayWrapper(byte[] data) { - if (data == null) { - throw new NullPointerException(); - } - this.data = data; - } + public ByteArrayWrapper(byte[] data) { + if (data == null) { + throw new NullPointerException(); + } + this.data = data; + } - public boolean equals(Object other) { - if (!(other instanceof ByteArrayWrapper)) { - return false; - } - return Arrays.equals(data, ((ByteArrayWrapper) other).data); - } + public boolean equals(Object other) { + if (!(other instanceof ByteArrayWrapper)) { + return false; + } + return Arrays.equals(data, ((ByteArrayWrapper) other).data); + } - public int hashCode() { - return Arrays.hashCode(data); - } + public int hashCode() { + return Arrays.hashCode(data); + } } private static final class JedisByteEntry implements Entry { - private byte[] value; - private byte[] key; + private byte[] value; + private byte[] key; - public JedisByteEntry(byte[] key, byte[] value) { - this.key = key; - this.value = value; - } + public JedisByteEntry(byte[] key, byte[] value) { + this.key = key; + this.value = value; + } - public byte[] getKey() { - return this.key; - } + public byte[] getKey() { + return this.key; + } - public byte[] getValue() { - return this.value; - } + public byte[] getValue() { + return this.value; + } - public byte[] setValue(byte[] value) { - this.value = value; - return value; - } + public byte[] setValue(byte[] value) { + this.value = value; + return value; + } } } \ No newline at end of file diff --git a/src/main/java/redis/clients/util/JedisClusterCRC16.java b/src/main/java/redis/clients/util/JedisClusterCRC16.java index 044e003..c0d4afb 100644 --- a/src/main/java/redis/clients/util/JedisClusterCRC16.java +++ b/src/main/java/redis/clients/util/JedisClusterCRC16.java @@ -1,21 +1,23 @@ package redis.clients.util; public class JedisClusterCRC16 { - public final static int polynomial = 0x1021; // Represents x^16+x^12+x^5+1 - static int crc; - - public static int getSlot(String key) { - crc = 0x0000; - for (byte b : key.getBytes()) { - for (int i = 0; i < 8; i++) { - boolean bit = ((b >> (7-i) & 1) == 1); - boolean c15 = ((crc >> 15 & 1) == 1); - crc <<= 1; - // If coefficient of bit and remainder polynomial = 1 xor crc with polynomial - if (c15 ^ bit) crc ^= polynomial; - } - } + public final static int polynomial = 0x1021; // Represents x^16+x^12+x^5+1 + static int crc; - return crc &= 0xffff % 16384; - } + public static int getSlot(String key) { + crc = 0x0000; + for (byte b : key.getBytes()) { + for (int i = 0; i < 8; i++) { + boolean bit = ((b >> (7 - i) & 1) == 1); + boolean c15 = ((crc >> 15 & 1) == 1); + crc <<= 1; + // If coefficient of bit and remainder polynomial = 1 xor crc + // with polynomial + if (c15 ^ bit) + crc ^= polynomial; + } + } + + return crc &= 0xffff % 16384; + } } \ No newline at end of file diff --git a/src/main/java/redis/clients/util/MurmurHash.java b/src/main/java/redis/clients/util/MurmurHash.java index e9327da..7f6aecd 100644 --- a/src/main/java/redis/clients/util/MurmurHash.java +++ b/src/main/java/redis/clients/util/MurmurHash.java @@ -40,7 +40,7 @@ public class MurmurHash implements Hashing { * @return The 32 bit hash of the bytes in question. */ public static int hash(byte[] data, int seed) { - return hash(ByteBuffer.wrap(data), seed); + return hash(ByteBuffer.wrap(data), seed); } /** @@ -57,7 +57,7 @@ public class MurmurHash implements Hashing { * @return The 32-bit hash of the data in question. */ public static int hash(byte[] data, int offset, int length, int seed) { - return hash(ByteBuffer.wrap(data, offset, length), seed); + return hash(ByteBuffer.wrap(data, offset, length), seed); } /** @@ -70,97 +70,97 @@ public class MurmurHash implements Hashing { * @return The 32 bit murmur hash of the bytes in the buffer. */ public static int hash(ByteBuffer buf, int seed) { - // save byte order for later restoration - ByteOrder byteOrder = buf.order(); - buf.order(ByteOrder.LITTLE_ENDIAN); + // save byte order for later restoration + ByteOrder byteOrder = buf.order(); + buf.order(ByteOrder.LITTLE_ENDIAN); - int m = 0x5bd1e995; - int r = 24; + int m = 0x5bd1e995; + int r = 24; - int h = seed ^ buf.remaining(); + int h = seed ^ buf.remaining(); - int k; - while (buf.remaining() >= 4) { - k = buf.getInt(); + int k; + while (buf.remaining() >= 4) { + k = buf.getInt(); - k *= m; - k ^= k >>> r; - k *= m; + k *= m; + k ^= k >>> r; + k *= m; - h *= m; - h ^= k; - } + h *= m; + h ^= k; + } - if (buf.remaining() > 0) { - ByteBuffer finish = ByteBuffer.allocate(4).order( - ByteOrder.LITTLE_ENDIAN); - // for big-endian version, use this first: - // finish.position(4-buf.remaining()); - finish.put(buf).rewind(); - h ^= finish.getInt(); - h *= m; - } + if (buf.remaining() > 0) { + ByteBuffer finish = ByteBuffer.allocate(4).order( + ByteOrder.LITTLE_ENDIAN); + // for big-endian version, use this first: + // finish.position(4-buf.remaining()); + finish.put(buf).rewind(); + h ^= finish.getInt(); + h *= m; + } - h ^= h >>> 13; - h *= m; - h ^= h >>> 15; + h ^= h >>> 13; + h *= m; + h ^= h >>> 15; - buf.order(byteOrder); - return h; + buf.order(byteOrder); + return h; } public static long hash64A(byte[] data, int seed) { - return hash64A(ByteBuffer.wrap(data), seed); + return hash64A(ByteBuffer.wrap(data), seed); } public static long hash64A(byte[] data, int offset, int length, int seed) { - return hash64A(ByteBuffer.wrap(data, offset, length), seed); + return hash64A(ByteBuffer.wrap(data, offset, length), seed); } public static long hash64A(ByteBuffer buf, int seed) { - ByteOrder byteOrder = buf.order(); - buf.order(ByteOrder.LITTLE_ENDIAN); + ByteOrder byteOrder = buf.order(); + buf.order(ByteOrder.LITTLE_ENDIAN); - long m = 0xc6a4a7935bd1e995L; - int r = 47; + long m = 0xc6a4a7935bd1e995L; + int r = 47; - long h = seed ^ (buf.remaining() * m); + long h = seed ^ (buf.remaining() * m); - long k; - while (buf.remaining() >= 8) { - k = buf.getLong(); + long k; + while (buf.remaining() >= 8) { + k = buf.getLong(); - k *= m; - k ^= k >>> r; - k *= m; + k *= m; + k ^= k >>> r; + k *= m; - h ^= k; - h *= m; - } + h ^= k; + h *= m; + } - if (buf.remaining() > 0) { - ByteBuffer finish = ByteBuffer.allocate(8).order( - ByteOrder.LITTLE_ENDIAN); - // for big-endian version, do this first: - // finish.position(8-buf.remaining()); - finish.put(buf).rewind(); - h ^= finish.getLong(); - h *= m; - } + if (buf.remaining() > 0) { + ByteBuffer finish = ByteBuffer.allocate(8).order( + ByteOrder.LITTLE_ENDIAN); + // for big-endian version, do this first: + // finish.position(8-buf.remaining()); + finish.put(buf).rewind(); + h ^= finish.getLong(); + h *= m; + } - h ^= h >>> r; - h *= m; - h ^= h >>> r; + h ^= h >>> r; + h *= m; + h ^= h >>> r; - buf.order(byteOrder); - return h; + buf.order(byteOrder); + return h; } public long hash(byte[] key) { - return hash64A(key, 0x1234ABCD); + return hash64A(key, 0x1234ABCD); } public long hash(String key) { - return hash(SafeEncoder.encode(key)); + return hash(SafeEncoder.encode(key)); } } \ No newline at end of file diff --git a/src/main/java/redis/clients/util/RedisInputStream.java b/src/main/java/redis/clients/util/RedisInputStream.java index 221e756..5ac8c94 100644 --- a/src/main/java/redis/clients/util/RedisInputStream.java +++ b/src/main/java/redis/clients/util/RedisInputStream.java @@ -29,84 +29,84 @@ public class RedisInputStream extends FilterInputStream { protected int count, limit; public RedisInputStream(InputStream in, int size) { - super(in); - if (size <= 0) { - throw new IllegalArgumentException("Buffer size <= 0"); - } - buf = new byte[size]; + super(in); + if (size <= 0) { + throw new IllegalArgumentException("Buffer size <= 0"); + } + buf = new byte[size]; } public RedisInputStream(InputStream in) { - this(in, 8192); + this(in, 8192); } public byte readByte() throws IOException { - if (count == limit) { - fill(); - } + if (count == limit) { + fill(); + } - return buf[count++]; + return buf[count++]; } public String readLine() { - int b; - byte c; - StringBuilder sb = new StringBuilder(); + int b; + byte c; + StringBuilder sb = new StringBuilder(); - try { - while (true) { - if (count == limit) { - fill(); - } - if (limit == -1) - break; + try { + while (true) { + if (count == limit) { + fill(); + } + if (limit == -1) + break; - b = buf[count++]; - if (b == '\r') { - if (count == limit) { - fill(); - } + b = buf[count++]; + if (b == '\r') { + if (count == limit) { + fill(); + } - if (limit == -1) { - sb.append((char) b); - break; - } + if (limit == -1) { + sb.append((char) b); + break; + } - c = buf[count++]; - if (c == '\n') { - break; - } - sb.append((char) b); - sb.append((char) c); - } else { - sb.append((char) b); - } - } - } catch (IOException e) { - throw new JedisConnectionException(e); - } - String reply = sb.toString(); - if (reply.length() == 0) { - throw new JedisConnectionException( - "It seems like server has closed the connection."); - } - return reply; + c = buf[count++]; + if (c == '\n') { + break; + } + sb.append((char) b); + sb.append((char) c); + } else { + sb.append((char) b); + } + } + } catch (IOException e) { + throw new JedisConnectionException(e); + } + String reply = sb.toString(); + if (reply.length() == 0) { + throw new JedisConnectionException( + "It seems like server has closed the connection."); + } + return reply; } public int read(byte[] b, int off, int len) throws IOException { - if (count == limit) { - fill(); - if (limit == -1) - return -1; - } - final int length = Math.min(limit - count, len); - System.arraycopy(buf, count, b, off, length); - count += length; - return length; + if (count == limit) { + fill(); + if (limit == -1) + return -1; + } + final int length = Math.min(limit - count, len); + System.arraycopy(buf, count, b, off, length); + count += length; + return length; } private void fill() throws IOException { - limit = in.read(buf); - count = 0; + limit = in.read(buf); + count = 0; } } diff --git a/src/main/java/redis/clients/util/RedisOutputStream.java b/src/main/java/redis/clients/util/RedisOutputStream.java index 5398f36..4dba859 100644 --- a/src/main/java/redis/clients/util/RedisOutputStream.java +++ b/src/main/java/redis/clients/util/RedisOutputStream.java @@ -1,11 +1,13 @@ package redis.clients.util; -import java.io.*; +import java.io.FilterOutputStream; +import java.io.IOException; +import java.io.OutputStream; /** - * The class implements a buffered output stream without synchronization - * There are also special operations like in-place string encoding. - * This stream fully ignore mark/reset and should not be used outside Jedis + * The class implements a buffered output stream without synchronization There + * are also special operations like in-place string encoding. This stream fully + * ignore mark/reset and should not be used outside Jedis */ public final class RedisOutputStream extends FilterOutputStream { protected final byte buf[]; @@ -13,218 +15,212 @@ public final class RedisOutputStream extends FilterOutputStream { protected int count; public RedisOutputStream(final OutputStream out) { - this(out, 8192); + this(out, 8192); } public RedisOutputStream(final OutputStream out, final int size) { - super(out); - if (size <= 0) { - throw new IllegalArgumentException("Buffer size <= 0"); - } - buf = new byte[size]; + super(out); + if (size <= 0) { + throw new IllegalArgumentException("Buffer size <= 0"); + } + buf = new byte[size]; } private void flushBuffer() throws IOException { - if (count > 0) { - out.write(buf, 0, count); - count = 0; - } + if (count > 0) { + out.write(buf, 0, count); + count = 0; + } } public void write(final byte b) throws IOException { - buf[count++] = b; - if (count == buf.length) { - flushBuffer(); - } + buf[count++] = b; + if (count == buf.length) { + flushBuffer(); + } } - + public void write(final byte[] b) throws IOException { - write(b, 0, b.length); + write(b, 0, b.length); } - public void write(final byte b[], final int off, final int len) throws IOException { - if (len >= buf.length) { - flushBuffer(); - out.write(b, off, len); - } else { - if (len >= buf.length - count) { - flushBuffer(); - } + public void write(final byte b[], final int off, final int len) + throws IOException { + if (len >= buf.length) { + flushBuffer(); + out.write(b, off, len); + } else { + if (len >= buf.length - count) { + flushBuffer(); + } - System.arraycopy(b, off, buf, count, len); - count += len; - } + System.arraycopy(b, off, buf, count, len); + count += len; + } } public void writeAsciiCrLf(final String in) throws IOException { - final int size = in.length(); + final int size = in.length(); - for (int i = 0; i != size; ++i) { - buf[count++] = (byte) in.charAt(i); - if (count == buf.length) { - flushBuffer(); - } - } + for (int i = 0; i != size; ++i) { + buf[count++] = (byte) in.charAt(i); + if (count == buf.length) { + flushBuffer(); + } + } - writeCrLf(); + writeCrLf(); } public static boolean isSurrogate(final char ch) { - return ch >= Character.MIN_SURROGATE && ch <= Character.MAX_SURROGATE; + return ch >= Character.MIN_SURROGATE && ch <= Character.MAX_SURROGATE; } - public static int utf8Length (final String str) { - int strLen = str.length(), utfLen = 0; - for(int i = 0; i != strLen; ++i) { - char c = str.charAt(i); - if (c < 0x80) { - utfLen++; - } else if (c < 0x800) { - utfLen += 2; - } else if (isSurrogate(c)) { - i++; - utfLen += 4; - } else { - utfLen += 3; - } - } - return utfLen; + public static int utf8Length(final String str) { + int strLen = str.length(), utfLen = 0; + for (int i = 0; i != strLen; ++i) { + char c = str.charAt(i); + if (c < 0x80) { + utfLen++; + } else if (c < 0x800) { + utfLen += 2; + } else if (isSurrogate(c)) { + i++; + utfLen += 4; + } else { + utfLen += 3; + } + } + return utfLen; } public void writeCrLf() throws IOException { - if (2 >= buf.length - count) { - flushBuffer(); - } + if (2 >= buf.length - count) { + flushBuffer(); + } - buf[count++] = '\r'; - buf[count++] = '\n'; + buf[count++] = '\r'; + buf[count++] = '\n'; } public void writeUtf8CrLf(final String str) throws IOException { - int strLen = str.length(); + int strLen = str.length(); - int i; - for (i = 0; i < strLen; i++) { - char c = str.charAt(i); - if (!(c < 0x80)) break; - buf[count++] = (byte) c; - if(count == buf.length) { - flushBuffer(); - } - } + int i; + for (i = 0; i < strLen; i++) { + char c = str.charAt(i); + if (!(c < 0x80)) + break; + buf[count++] = (byte) c; + if (count == buf.length) { + flushBuffer(); + } + } - for (; i < strLen; i++) { - char c = str.charAt(i); - if (c < 0x80) { - buf[count++] = (byte) c; - if(count == buf.length) { - flushBuffer(); - } - } else if (c < 0x800) { - if(2 >= buf.length - count) { - flushBuffer(); - } - buf[count++] = (byte)(0xc0 | (c >> 6)); - buf[count++] = (byte)(0x80 | (c & 0x3f)); - } else if (isSurrogate(c)) { - if(4 >= buf.length - count) { - flushBuffer(); - } - int uc = Character.toCodePoint(c, str.charAt(i++)); - buf[count++] = ((byte)(0xf0 | ((uc >> 18)))); - buf[count++] = ((byte)(0x80 | ((uc >> 12) & 0x3f))); - buf[count++] = ((byte)(0x80 | ((uc >> 6) & 0x3f))); - buf[count++] = ((byte)(0x80 | (uc & 0x3f))); - } else { - if(3 >= buf.length - count) { - flushBuffer(); - } - buf[count++] =((byte)(0xe0 | ((c >> 12)))); - buf[count++] =((byte)(0x80 | ((c >> 6) & 0x3f))); - buf[count++] =((byte)(0x80 | (c & 0x3f))); - } - } + for (; i < strLen; i++) { + char c = str.charAt(i); + if (c < 0x80) { + buf[count++] = (byte) c; + if (count == buf.length) { + flushBuffer(); + } + } else if (c < 0x800) { + if (2 >= buf.length - count) { + flushBuffer(); + } + buf[count++] = (byte) (0xc0 | (c >> 6)); + buf[count++] = (byte) (0x80 | (c & 0x3f)); + } else if (isSurrogate(c)) { + if (4 >= buf.length - count) { + flushBuffer(); + } + int uc = Character.toCodePoint(c, str.charAt(i++)); + buf[count++] = ((byte) (0xf0 | ((uc >> 18)))); + buf[count++] = ((byte) (0x80 | ((uc >> 12) & 0x3f))); + buf[count++] = ((byte) (0x80 | ((uc >> 6) & 0x3f))); + buf[count++] = ((byte) (0x80 | (uc & 0x3f))); + } else { + if (3 >= buf.length - count) { + flushBuffer(); + } + buf[count++] = ((byte) (0xe0 | ((c >> 12)))); + buf[count++] = ((byte) (0x80 | ((c >> 6) & 0x3f))); + buf[count++] = ((byte) (0x80 | (c & 0x3f))); + } + } - writeCrLf(); + writeCrLf(); } - private final static int[] sizeTable = {9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE}; + private final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, + 9999999, 99999999, 999999999, Integer.MAX_VALUE }; - private final static byte[] DigitTens = { - '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', - '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', - '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', - '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', - '4', '4', '4', '4', '4', '4', '4', '4', '4', '4', - '5', '5', '5', '5', '5', '5', '5', '5', '5', '5', - '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', - '7', '7', '7', '7', '7', '7', '7', '7', '7', '7', - '8', '8', '8', '8', '8', '8', '8', '8', '8', '8', - '9', '9', '9', '9', '9', '9', '9', '9', '9', '9', - }; + private final static byte[] DigitTens = { '0', '0', '0', '0', '0', '0', + '0', '0', '0', '0', '1', '1', '1', '1', '1', '1', '1', '1', '1', + '1', '2', '2', '2', '2', '2', '2', '2', '2', '2', '2', '3', '3', + '3', '3', '3', '3', '3', '3', '3', '3', '4', '4', '4', '4', '4', + '4', '4', '4', '4', '4', '5', '5', '5', '5', '5', '5', '5', '5', + '5', '5', '6', '6', '6', '6', '6', '6', '6', '6', '6', '6', '7', + '7', '7', '7', '7', '7', '7', '7', '7', '7', '8', '8', '8', '8', + '8', '8', '8', '8', '8', '8', '9', '9', '9', '9', '9', '9', '9', + '9', '9', '9', }; - private final static byte[] DigitOnes = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - }; + private final static byte[] DigitOnes = { '0', '1', '2', '3', '4', '5', + '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', + '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', + '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', + '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', + '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', + '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', + '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', + '7', '8', '9', }; - private final static byte[] digits = { - '0', '1', '2', '3', '4', '5', - '6', '7', '8', '9', 'a', 'b', - 'c', 'd', 'e', 'f', 'g', 'h', - 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', - 'u', 'v', 'w', 'x', 'y', 'z' - }; + private final static byte[] digits = { '0', '1', '2', '3', '4', '5', '6', + '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', + 'x', 'y', 'z' }; public void writeIntCrLf(int value) throws IOException { - if (value < 0) { - write((byte)'-'); - value = -value; - } + if (value < 0) { + write((byte) '-'); + value = -value; + } - int size = 0; - while (value > sizeTable[size]) - size++; + int size = 0; + while (value > sizeTable[size]) + size++; - size++; - if (size >= buf.length - count) { - flushBuffer(); - } + size++; + if (size >= buf.length - count) { + flushBuffer(); + } - int q, r; - int charPos = count + size; + int q, r; + int charPos = count + size; - while (value >= 65536) { - q = value / 100; - r = value - ((q << 6) + (q << 5) + (q << 2)); - value = q; - buf[--charPos] = DigitOnes[r]; - buf[--charPos] = DigitTens[r]; - } + while (value >= 65536) { + q = value / 100; + r = value - ((q << 6) + (q << 5) + (q << 2)); + value = q; + buf[--charPos] = DigitOnes[r]; + buf[--charPos] = DigitTens[r]; + } - for (; ;) { - q = (value * 52429) >>> (16 + 3); - r = value - ((q << 3) + (q << 1)); - buf[--charPos] = digits[r]; - value = q; - if (value == 0) break; - } - count += size; + for (;;) { + q = (value * 52429) >>> (16 + 3); + r = value - ((q << 3) + (q << 1)); + buf[--charPos] = digits[r]; + value = q; + if (value == 0) + break; + } + count += size; - writeCrLf(); + writeCrLf(); } public void flush() throws IOException { - flushBuffer(); - out.flush(); + flushBuffer(); + out.flush(); } } diff --git a/src/main/java/redis/clients/util/SafeEncoder.java b/src/main/java/redis/clients/util/SafeEncoder.java index a00e6c4..9ec0a7c 100644 --- a/src/main/java/redis/clients/util/SafeEncoder.java +++ b/src/main/java/redis/clients/util/SafeEncoder.java @@ -11,31 +11,31 @@ import redis.clients.jedis.exceptions.JedisException; * */ public class SafeEncoder { - public static byte[][] encodeMany(final String... strs){ - byte[][] many = new byte[strs.length][]; - for(int i=0;i { } public ShardInfo(int weight) { - this.weight = weight; + this.weight = weight; } public int getWeight() { - return this.weight; + return this.weight; } protected abstract T createResource(); - + public abstract String getName(); } diff --git a/src/main/java/redis/clients/util/Sharded.java b/src/main/java/redis/clients/util/Sharded.java index 5448fcd..98c74de 100644 --- a/src/main/java/redis/clients/util/Sharded.java +++ b/src/main/java/redis/clients/util/Sharded.java @@ -26,91 +26,93 @@ public class Sharded> { private Pattern tagPattern = null; // the tag is anything between {} public static final Pattern DEFAULT_KEY_TAG_PATTERN = Pattern - .compile("\\{(.+?)\\}"); + .compile("\\{(.+?)\\}"); public Sharded(List shards) { - this(shards, Hashing.MURMUR_HASH); // MD5 is really not good as we works - // with 64-bits not 128 + this(shards, Hashing.MURMUR_HASH); // MD5 is really not good as we works + // with 64-bits not 128 } public Sharded(List shards, Hashing algo) { - this.algo = algo; - initialize(shards); + this.algo = algo; + initialize(shards); } public Sharded(List shards, Pattern tagPattern) { - this(shards, Hashing.MURMUR_HASH, tagPattern); // MD5 is really not good - // as we works with - // 64-bits not 128 + this(shards, Hashing.MURMUR_HASH, tagPattern); // MD5 is really not good + // as we works with + // 64-bits not 128 } public Sharded(List shards, Hashing algo, Pattern tagPattern) { - this.algo = algo; - this.tagPattern = tagPattern; - initialize(shards); + this.algo = algo; + this.tagPattern = tagPattern; + initialize(shards); } private void initialize(List shards) { - nodes = new TreeMap(); + nodes = new TreeMap(); - for (int i = 0; i != shards.size(); ++i) { - final S shardInfo = shards.get(i); - if (shardInfo.getName() == null) - for (int n = 0; n < 160 * shardInfo.getWeight(); n++) { - nodes.put(this.algo.hash("SHARD-" + i + "-NODE-" + n), shardInfo); - } - else - for (int n = 0; n < 160 * shardInfo.getWeight(); n++) { - nodes.put(this.algo.hash(shardInfo.getName() + "*" + shardInfo.getWeight() + n), shardInfo); - } - resources.put(shardInfo, shardInfo.createResource()); - } + for (int i = 0; i != shards.size(); ++i) { + final S shardInfo = shards.get(i); + if (shardInfo.getName() == null) + for (int n = 0; n < 160 * shardInfo.getWeight(); n++) { + nodes.put(this.algo.hash("SHARD-" + i + "-NODE-" + n), + shardInfo); + } + else + for (int n = 0; n < 160 * shardInfo.getWeight(); n++) { + nodes.put( + this.algo.hash(shardInfo.getName() + "*" + + shardInfo.getWeight() + n), shardInfo); + } + resources.put(shardInfo, shardInfo.createResource()); + } } public R getShard(byte[] key) { - return resources.get(getShardInfo(key)); + return resources.get(getShardInfo(key)); } public R getShard(String key) { - return resources.get(getShardInfo(key)); + return resources.get(getShardInfo(key)); } public S getShardInfo(byte[] key) { - SortedMap tail = nodes.tailMap(algo.hash(key)); - if (tail.isEmpty()) { - return nodes.get(nodes.firstKey()); - } - return tail.get(tail.firstKey()); + SortedMap tail = nodes.tailMap(algo.hash(key)); + if (tail.isEmpty()) { + return nodes.get(nodes.firstKey()); + } + return tail.get(tail.firstKey()); } public S getShardInfo(String key) { - return getShardInfo(SafeEncoder.encode(getKeyTag(key))); + return getShardInfo(SafeEncoder.encode(getKeyTag(key))); } /** * A key tag is a special pattern inside a key that, if preset, is the only * part of the key hashed in order to select the server for this key. - * + * * @see http://code.google.com/p/redis/wiki/FAQ#I * 'm_using_some_form_of_key_hashing_for_partitioning,_but_wh * @param key * @return The tag if it exists, or the original key */ public String getKeyTag(String key) { - if (tagPattern != null) { - Matcher m = tagPattern.matcher(key); - if (m.find()) - return m.group(1); - } - return key; + if (tagPattern != null) { + Matcher m = tagPattern.matcher(key); + if (m.find()) + return m.group(1); + } + return key; } public Collection getAllShardInfo() { - return Collections.unmodifiableCollection(nodes.values()); + return Collections.unmodifiableCollection(nodes.values()); } public Collection getAllShards() { - return Collections.unmodifiableCollection(resources.values()); + return Collections.unmodifiableCollection(resources.values()); } } - diff --git a/src/main/java/redis/clients/util/Slowlog.java b/src/main/java/redis/clients/util/Slowlog.java index 0a0e7be..6e286d9 100644 --- a/src/main/java/redis/clients/util/Slowlog.java +++ b/src/main/java/redis/clients/util/Slowlog.java @@ -4,50 +4,50 @@ import java.util.ArrayList; import java.util.List; public class Slowlog { - private final long id; - private final long timeStamp; - private final long executionTime; - private final List args; - - @SuppressWarnings("unchecked") - public static List from(List nestedMultiBulkReply){ - List logs = new ArrayList(nestedMultiBulkReply.size()); - for(Object obj : nestedMultiBulkReply){ - List properties = (List)obj; - logs.add(new Slowlog(properties)); - } - - return logs; - } - - @SuppressWarnings("unchecked") - private Slowlog(List properties) { - super(); - this.id = (Long)properties.get(0); - this.timeStamp = (Long)properties.get(1); - this.executionTime = (Long)properties.get(2); - - List bargs = (List)properties.get(3); - this.args = new ArrayList(bargs.size()); - - for(byte[] barg:bargs){ - this.args.add(SafeEncoder.encode(barg)); - } + private final long id; + private final long timeStamp; + private final long executionTime; + private final List args; + + @SuppressWarnings("unchecked") + public static List from(List nestedMultiBulkReply) { + List logs = new ArrayList(nestedMultiBulkReply.size()); + for (Object obj : nestedMultiBulkReply) { + List properties = (List) obj; + logs.add(new Slowlog(properties)); } - public long getId() { - return id; - } + return logs; + } - public long getTimeStamp() { - return timeStamp; - } + @SuppressWarnings("unchecked") + private Slowlog(List properties) { + super(); + this.id = (Long) properties.get(0); + this.timeStamp = (Long) properties.get(1); + this.executionTime = (Long) properties.get(2); - public long getExecutionTime() { - return executionTime; - } + List bargs = (List) properties.get(3); + this.args = new ArrayList(bargs.size()); - public List getArgs() { - return args; + for (byte[] barg : bargs) { + this.args.add(SafeEncoder.encode(barg)); } + } + + public long getId() { + return id; + } + + public long getTimeStamp() { + return timeStamp; + } + + public long getExecutionTime() { + return executionTime; + } + + public List getArgs() { + return args; + } } diff --git a/src/test/java/redis/clients/jedis/tests/BuilderFactoryTest.java b/src/test/java/redis/clients/jedis/tests/BuilderFactoryTest.java index b759134..4521112 100644 --- a/src/test/java/redis/clients/jedis/tests/BuilderFactoryTest.java +++ b/src/test/java/redis/clients/jedis/tests/BuilderFactoryTest.java @@ -8,7 +8,7 @@ import redis.clients.jedis.BuilderFactory; public class BuilderFactoryTest extends Assert { @Test public void buildDouble() { - Double build = BuilderFactory.DOUBLE.build("1.0".getBytes()); - assertEquals(new Double(1.0), build); + Double build = BuilderFactory.DOUBLE.build("1.0".getBytes()); + assertEquals(new Double(1.0), build); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/ConnectionTest.java b/src/test/java/redis/clients/jedis/tests/ConnectionTest.java index eee7ac9..9cbaa12 100644 --- a/src/test/java/redis/clients/jedis/tests/ConnectionTest.java +++ b/src/test/java/redis/clients/jedis/tests/ConnectionTest.java @@ -13,31 +13,31 @@ public class ConnectionTest extends Assert { @Before public void setUp() throws Exception { - client = new Connection(); + client = new Connection(); } @After public void tearDown() throws Exception { - client.disconnect(); + client.disconnect(); } @Test(expected = JedisConnectionException.class) public void checkUnkownHost() { - client.setHost("someunknownhost"); - client.connect(); + client.setHost("someunknownhost"); + client.connect(); } @Test(expected = JedisConnectionException.class) public void checkWrongPort() { - client.setHost("localhost"); - client.setPort(55665); - client.connect(); + client.setHost("localhost"); + client.setPort(55665); + client.connect(); } - + @Test public void connectIfNotConnectedWhenSettingTimeoutInfinite() { client.setHost("localhost"); - client.setPort(6379); + client.setPort(6379); client.setTimeoutInfinite(); } diff --git a/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java b/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java index 37d7d82..fdf8d13 100644 --- a/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java +++ b/src/test/java/redis/clients/jedis/tests/FragmentedByteArrayInputStream.java @@ -9,22 +9,22 @@ public class FragmentedByteArrayInputStream extends ByteArrayInputStream { private int readMethodCallCount = 0; public FragmentedByteArrayInputStream(final byte[] buf) { - super(buf); + super(buf); } public synchronized int read(final byte[] b, final int off, final int len) { - readMethodCallCount++; - if (len <= 10) { - // if the len <= 10, return as usual .. - return super.read(b, off, len); - } else { - // else return the first half .. - return super.read(b, off, len / 2); - } + readMethodCallCount++; + if (len <= 10) { + // if the len <= 10, return as usual .. + return super.read(b, off, len); + } else { + // else return the first half .. + return super.read(b, off, len / 2); + } } public int getReadMethodCallCount() { - return readMethodCallCount; + return readMethodCallCount; } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java index c62e3bd..a501024 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisPoolTest.java @@ -19,59 +19,59 @@ public class JedisPoolTest extends Assert { @Test public void checkConnections() { - JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), - hnp.getPort(), 2000); - Jedis jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.set("foo", "bar"); - assertEquals("bar", jedis.get("foo")); - pool.returnResource(jedis); - pool.destroy(); + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), + hnp.getPort(), 2000); + Jedis jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.set("foo", "bar"); + assertEquals("bar", jedis.get("foo")); + pool.returnResource(jedis); + pool.destroy(); } @Test public void checkConnectionWithDefaultPort() { - JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), - hnp.getPort()); - Jedis jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.set("foo", "bar"); - assertEquals("bar", jedis.get("foo")); - pool.returnResource(jedis); - pool.destroy(); + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), + hnp.getPort()); + Jedis jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.set("foo", "bar"); + assertEquals("bar", jedis.get("foo")); + pool.returnResource(jedis); + pool.destroy(); } @Test public void checkJedisIsReusedWhenReturned() { - JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), - hnp.getPort()); - Jedis jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.set("foo", "0"); - pool.returnResource(jedis); + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), + hnp.getPort()); + Jedis jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.set("foo", "0"); + pool.returnResource(jedis); - jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.incr("foo"); - pool.returnResource(jedis); - pool.destroy(); + jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.incr("foo"); + pool.returnResource(jedis); + pool.destroy(); } @Test public void checkPoolRepairedWhenJedisIsBroken() { - JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), - hnp.getPort()); - Jedis jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.quit(); - pool.returnBrokenResource(jedis); + JedisPool pool = new JedisPool(new JedisPoolConfig(), hnp.getHost(), + hnp.getPort()); + Jedis jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.quit(); + pool.returnBrokenResource(jedis); - jedis = pool.getResource(); - jedis.auth("foobared"); - jedis.incr("foo"); - pool.returnResource(jedis); - pool.destroy(); + jedis = pool.getResource(); + jedis.auth("foobared"); + jedis.incr("foo"); + pool.returnResource(jedis); + pool.destroy(); } @Test(expected = JedisConnectionException.class) @@ -93,8 +93,8 @@ public class JedisPoolTest extends Assert { public void securePool() { JedisPoolConfig config = new JedisPoolConfig(); config.setTestOnBorrow(true); - JedisPool pool = new JedisPool(config, hnp.getHost(), hnp.getPort(), 2000, - "foobared"); + JedisPool pool = new JedisPool(config, hnp.getHost(), hnp.getPort(), + 2000, "foobared"); Jedis jedis = pool.getResource(); jedis.set("foo", "bar"); pool.returnResource(jedis); @@ -177,25 +177,25 @@ public class JedisPoolTest extends Assert { pool0.returnResource(jedis); pool0.destroy(); } - + @Test public void returnResourceShouldResetState() { - GenericObjectPoolConfig config = new GenericObjectPoolConfig(); - config.setMaxTotal(1); - config.setBlockWhenExhausted(false); - JedisPool pool = new JedisPool(config, hnp.getHost(), hnp.getPort(), - 2000, "foobared"); - - Jedis jedis = pool.getResource(); - jedis.set("hello", "jedis"); - Transaction t = jedis.multi(); - t.set("hello", "world"); - pool.returnResource(jedis); - - Jedis jedis2 = pool.getResource(); - assertTrue(jedis == jedis2); - assertEquals("jedis", jedis2.get("hello")); - pool.returnResource(jedis2); - pool.destroy(); + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisPool pool = new JedisPool(config, hnp.getHost(), hnp.getPort(), + 2000, "foobared"); + + Jedis jedis = pool.getResource(); + jedis.set("hello", "jedis"); + Transaction t = jedis.multi(); + t.set("hello", "world"); + pool.returnResource(jedis); + + Jedis jedis2 = pool.getResource(); + assertTrue(jedis == jedis2); + assertEquals("jedis", jedis2.get("hello")); + pool.returnResource(jedis2); + pool.destroy(); } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java index 9d7fc46..f8a3ee2 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java +++ b/src/test/java/redis/clients/jedis/tests/JedisSentinelPoolTest.java @@ -11,7 +11,6 @@ import org.junit.Test; import redis.clients.jedis.DebugParams; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; -import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.JedisSentinelPool; import redis.clients.jedis.Transaction; @@ -154,22 +153,22 @@ public class JedisSentinelPoolTest extends JedisTestBase { @Test public void returnResourceShouldResetState() { - GenericObjectPoolConfig config = new GenericObjectPoolConfig(); - config.setMaxTotal(1); - config.setBlockWhenExhausted(false); - JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, - config, 1000, "foobared", 2); - - Jedis jedis = pool.getResource(); - jedis.set("hello", "jedis"); - Transaction t = jedis.multi(); - t.set("hello", "world"); - pool.returnResource(jedis); - - Jedis jedis2 = pool.getResource(); - assertTrue(jedis == jedis2); - assertEquals("jedis", jedis2.get("hello")); - pool.returnResource(jedis2); - pool.destroy(); + GenericObjectPoolConfig config = new GenericObjectPoolConfig(); + config.setMaxTotal(1); + config.setBlockWhenExhausted(false); + JedisSentinelPool pool = new JedisSentinelPool(MASTER_NAME, sentinels, + config, 1000, "foobared", 2); + + Jedis jedis = pool.getResource(); + jedis.set("hello", "jedis"); + Transaction t = jedis.multi(); + t.set("hello", "world"); + pool.returnResource(jedis); + + Jedis jedis2 = pool.getResource(); + assertTrue(jedis == jedis2); + assertEquals("jedis", jedis2.get("hello")); + pool.returnResource(jedis2); + pool.destroy(); } } diff --git a/src/test/java/redis/clients/jedis/tests/JedisTestBase.java b/src/test/java/redis/clients/jedis/tests/JedisTestBase.java index 74ce5bd..158e20c 100644 --- a/src/test/java/redis/clients/jedis/tests/JedisTestBase.java +++ b/src/test/java/redis/clients/jedis/tests/JedisTestBase.java @@ -8,18 +8,18 @@ import org.junit.Assert; public abstract class JedisTestBase extends Assert { protected void assertEquals(List expected, List actual) { - assertEquals(expected.size(), actual.size()); - for (int n = 0; n < expected.size(); n++) { - assertArrayEquals(expected.get(n), actual.get(n)); - } + assertEquals(expected.size(), actual.size()); + for (int n = 0; n < expected.size(); n++) { + assertArrayEquals(expected.get(n), actual.get(n)); + } } protected void assertEquals(Set expected, Set actual) { - assertEquals(expected.size(), actual.size()); - Iterator iterator = expected.iterator(); - Iterator iterator2 = actual.iterator(); - while (iterator.hasNext() || iterator2.hasNext()) { - assertArrayEquals(iterator.next(), iterator2.next()); - } + assertEquals(expected.size(), actual.size()); + Iterator iterator = expected.iterator(); + Iterator iterator2 = actual.iterator(); + while (iterator.hasNext() || iterator2.hasNext()) { + assertArrayEquals(iterator.next(), iterator2.next()); + } } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java index 1fe063c..2b3eabe 100755 --- a/src/test/java/redis/clients/jedis/tests/PipeliningTest.java +++ b/src/test/java/redis/clients/jedis/tests/PipeliningTest.java @@ -27,307 +27,321 @@ public class PipeliningTest extends Assert { @Before public void setUp() throws Exception { - jedis = new Jedis(hnp.getHost(), hnp.getPort(), 500); - jedis.connect(); - jedis.auth("foobared"); - jedis.flushAll(); + jedis = new Jedis(hnp.getHost(), hnp.getPort(), 500); + jedis.connect(); + jedis.auth("foobared"); + jedis.flushAll(); } @Test public void pipeline() throws UnsupportedEncodingException { - List results = jedis.pipelined(new PipelineBlock() { - public void execute() { - set("foo", "bar"); - get("foo"); - } - }); + List results = jedis.pipelined(new PipelineBlock() { + public void execute() { + set("foo", "bar"); + get("foo"); + } + }); - assertEquals(2, results.size()); - assertEquals("OK", results.get(0)); - assertEquals("bar", results.get(1)); + assertEquals(2, results.size()); + assertEquals("OK", results.get(0)); + assertEquals("bar", results.get(1)); - Pipeline p = jedis.pipelined(); - p.set("foo", "bar"); - p.get("foo"); - results = p.syncAndReturnAll(); + Pipeline p = jedis.pipelined(); + p.set("foo", "bar"); + p.get("foo"); + results = p.syncAndReturnAll(); - assertEquals(2, results.size()); - assertEquals("OK", results.get(0)); - assertEquals("bar", results.get(1)); + assertEquals(2, results.size()); + assertEquals("OK", results.get(0)); + assertEquals("bar", results.get(1)); } @Test public void pipelineResponse() { - jedis.set("string", "foo"); - jedis.lpush("list", "foo"); - jedis.hset("hash", "foo", "bar"); - jedis.zadd("zset", 1, "foo"); - jedis.sadd("set", "foo"); + jedis.set("string", "foo"); + jedis.lpush("list", "foo"); + jedis.hset("hash", "foo", "bar"); + jedis.zadd("zset", 1, "foo"); + jedis.sadd("set", "foo"); - Pipeline p = jedis.pipelined(); - Response string = p.get("string"); - Response list = p.lpop("list"); - Response hash = p.hget("hash", "foo"); - Response> zset = p.zrange("zset", 0, -1); - Response set = p.spop("set"); - Response blist = p.exists("list"); - Response zincrby = p.zincrby("zset", 1, "foo"); - Response zcard = p.zcard("zset"); - p.lpush("list", "bar"); - Response> lrange = p.lrange("list", 0, -1); - Response> hgetAll = p.hgetAll("hash"); - p.sadd("set", "foo"); - Response> smembers = p.smembers("set"); - Response> zrangeWithScores = p.zrangeWithScores("zset", 0, - -1); - p.sync(); + Pipeline p = jedis.pipelined(); + Response string = p.get("string"); + Response list = p.lpop("list"); + Response hash = p.hget("hash", "foo"); + Response> zset = p.zrange("zset", 0, -1); + Response set = p.spop("set"); + Response blist = p.exists("list"); + Response zincrby = p.zincrby("zset", 1, "foo"); + Response zcard = p.zcard("zset"); + p.lpush("list", "bar"); + Response> lrange = p.lrange("list", 0, -1); + Response> hgetAll = p.hgetAll("hash"); + p.sadd("set", "foo"); + Response> smembers = p.smembers("set"); + Response> zrangeWithScores = p.zrangeWithScores("zset", 0, + -1); + p.sync(); - assertEquals("foo", string.get()); - assertEquals("foo", list.get()); - assertEquals("bar", hash.get()); - assertEquals("foo", zset.get().iterator().next()); - assertEquals("foo", set.get()); - assertEquals(false, blist.get()); - assertEquals(Double.valueOf(2), zincrby.get()); - assertEquals(Long.valueOf(1), zcard.get()); - assertEquals(1, lrange.get().size()); - assertNotNull(hgetAll.get().get("foo")); - assertEquals(1, smembers.get().size()); - assertEquals(1, zrangeWithScores.get().size()); + assertEquals("foo", string.get()); + assertEquals("foo", list.get()); + assertEquals("bar", hash.get()); + assertEquals("foo", zset.get().iterator().next()); + assertEquals("foo", set.get()); + assertEquals(false, blist.get()); + assertEquals(Double.valueOf(2), zincrby.get()); + assertEquals(Long.valueOf(1), zcard.get()); + assertEquals(1, lrange.get().size()); + assertNotNull(hgetAll.get().get("foo")); + assertEquals(1, smembers.get().size()); + assertEquals(1, zrangeWithScores.get().size()); } - + @Test public void pipelineResponseWithData() { - jedis.zadd("zset", 1, "foo"); - - Pipeline p = jedis.pipelined(); - Response score = p.zscore("zset", "foo"); - p.sync(); + jedis.zadd("zset", 1, "foo"); - assertNotNull(score.get()); + Pipeline p = jedis.pipelined(); + Response score = p.zscore("zset", "foo"); + p.sync(); + + assertNotNull(score.get()); } @Test public void pipelineBinarySafeHashCommands() { - jedis.hset("key".getBytes(), "f1".getBytes(), "v111".getBytes()); - jedis.hset("key".getBytes(), "f22".getBytes(), "v2222".getBytes()); + jedis.hset("key".getBytes(), "f1".getBytes(), "v111".getBytes()); + jedis.hset("key".getBytes(), "f22".getBytes(), "v2222".getBytes()); - Pipeline p = jedis.pipelined(); - Response> fmap = p.hgetAll("key".getBytes()); - Response> fkeys = p.hkeys("key".getBytes()); - Response> fordered = p.hmget("key".getBytes(), "f22".getBytes(), "f1".getBytes()); - Response> fvals = p.hvals("key".getBytes()); - p.sync(); + Pipeline p = jedis.pipelined(); + Response> fmap = p.hgetAll("key".getBytes()); + Response> fkeys = p.hkeys("key".getBytes()); + Response> fordered = p.hmget("key".getBytes(), + "f22".getBytes(), "f1".getBytes()); + Response> fvals = p.hvals("key".getBytes()); + p.sync(); - assertNotNull(fmap.get()); - // we have to do these strange contortions because byte[] is not a very good key - // for a java Map. It only works with equality (you need the exact key object to retrieve - // the value) I recommend we switch to using ByteBuffer or something similar: - // http://stackoverflow.com/questions/1058149/using-a-byte-array-as-hashmap-key-java - Map map = fmap.get(); - Set mapKeys = map.keySet(); - Iterator iterMap = mapKeys.iterator(); - byte[] firstMapKey = iterMap.next(); - byte[] secondMapKey = iterMap.next(); - assertFalse(iterMap.hasNext()); - verifyHasBothValues(firstMapKey, secondMapKey, "f1".getBytes(), "f22".getBytes()); - byte[] firstMapValue = map.get(firstMapKey); - byte[] secondMapValue = map.get(secondMapKey); - verifyHasBothValues(firstMapValue, secondMapValue, "v111".getBytes(), "v2222".getBytes()); + assertNotNull(fmap.get()); + // we have to do these strange contortions because byte[] is not a very + // good key + // for a java Map. It only works with equality (you need the exact key + // object to retrieve + // the value) I recommend we switch to using ByteBuffer or something + // similar: + // http://stackoverflow.com/questions/1058149/using-a-byte-array-as-hashmap-key-java + Map map = fmap.get(); + Set mapKeys = map.keySet(); + Iterator iterMap = mapKeys.iterator(); + byte[] firstMapKey = iterMap.next(); + byte[] secondMapKey = iterMap.next(); + assertFalse(iterMap.hasNext()); + verifyHasBothValues(firstMapKey, secondMapKey, "f1".getBytes(), + "f22".getBytes()); + byte[] firstMapValue = map.get(firstMapKey); + byte[] secondMapValue = map.get(secondMapKey); + verifyHasBothValues(firstMapValue, secondMapValue, "v111".getBytes(), + "v2222".getBytes()); - assertNotNull(fkeys.get()); - Iterator iter = fkeys.get().iterator(); - byte[] firstKey = iter.next(); - byte[] secondKey = iter.next(); - assertFalse(iter.hasNext()); - verifyHasBothValues(firstKey, secondKey, "f1".getBytes(), "f22".getBytes()); + assertNotNull(fkeys.get()); + Iterator iter = fkeys.get().iterator(); + byte[] firstKey = iter.next(); + byte[] secondKey = iter.next(); + assertFalse(iter.hasNext()); + verifyHasBothValues(firstKey, secondKey, "f1".getBytes(), + "f22".getBytes()); - assertNotNull(fordered.get()); - assertArrayEquals("v2222".getBytes(), fordered.get().get(0)); - assertArrayEquals("v111".getBytes(), fordered.get().get(1)); + assertNotNull(fordered.get()); + assertArrayEquals("v2222".getBytes(), fordered.get().get(0)); + assertArrayEquals("v111".getBytes(), fordered.get().get(1)); - assertNotNull(fvals.get()); - assertEquals(2, fvals.get().size()); - byte[] firstValue = fvals.get().get(0); - byte[] secondValue = fvals.get().get(1); - verifyHasBothValues(firstValue, secondValue, "v111".getBytes(), "v2222".getBytes()); + assertNotNull(fvals.get()); + assertEquals(2, fvals.get().size()); + byte[] firstValue = fvals.get().get(0); + byte[] secondValue = fvals.get().get(1); + verifyHasBothValues(firstValue, secondValue, "v111".getBytes(), + "v2222".getBytes()); } - private void verifyHasBothValues(byte[] firstKey, byte[] secondKey, byte[] value1, byte[] value2) { - assertFalse(Arrays.equals(firstKey, secondKey)); - assertTrue(Arrays.equals(firstKey, value1) || Arrays.equals(firstKey, value2)); - assertTrue(Arrays.equals(secondKey, value1) || Arrays.equals(secondKey, value2)); + private void verifyHasBothValues(byte[] firstKey, byte[] secondKey, + byte[] value1, byte[] value2) { + assertFalse(Arrays.equals(firstKey, secondKey)); + assertTrue(Arrays.equals(firstKey, value1) + || Arrays.equals(firstKey, value2)); + assertTrue(Arrays.equals(secondKey, value1) + || Arrays.equals(secondKey, value2)); } @Test public void pipelineSelect() { - Pipeline p = jedis.pipelined(); - p.select(1); - p.sync(); + Pipeline p = jedis.pipelined(); + p.select(1); + p.sync(); } - + @Test public void pipelineResponseWithoutData() { - jedis.zadd("zset", 1, "foo"); - - Pipeline p = jedis.pipelined(); - Response score = p.zscore("zset", "bar"); - p.sync(); + jedis.zadd("zset", 1, "foo"); - assertNull(score.get()); + Pipeline p = jedis.pipelined(); + Response score = p.zscore("zset", "bar"); + p.sync(); + + assertNull(score.get()); } - @Test(expected = JedisDataException.class) public void pipelineResponseWithinPipeline() { - jedis.set("string", "foo"); + jedis.set("string", "foo"); - Pipeline p = jedis.pipelined(); - Response string = p.get("string"); - string.get(); - p.sync(); + Pipeline p = jedis.pipelined(); + Response string = p.get("string"); + string.get(); + p.sync(); } @Test public void pipelineWithPubSub() { - Pipeline pipelined = jedis.pipelined(); - Response p1 = pipelined.publish("foo", "bar"); - Response p2 = pipelined.publish("foo".getBytes(), "bar" - .getBytes()); - pipelined.sync(); - assertEquals(0, p1.get().longValue()); - assertEquals(0, p2.get().longValue()); + Pipeline pipelined = jedis.pipelined(); + Response p1 = pipelined.publish("foo", "bar"); + Response p2 = pipelined.publish("foo".getBytes(), + "bar".getBytes()); + pipelined.sync(); + assertEquals(0, p1.get().longValue()); + assertEquals(0, p2.get().longValue()); } @Test public void canRetrieveUnsetKey() { - Pipeline p = jedis.pipelined(); - Response shouldNotExist = p.get(UUID.randomUUID().toString()); - p.sync(); - assertNull(shouldNotExist.get()); - } - - @Test - public void piplineWithError(){ - Pipeline p = jedis.pipelined(); - p.set("foo", "bar"); - Response> error = p.smembers("foo"); - Response r = p.get("foo"); - p.sync(); - try{ - error.get(); - fail(); - }catch(JedisDataException e){ - //that is fine we should be here - } - assertEquals(r.get(), "bar"); + Pipeline p = jedis.pipelined(); + Response shouldNotExist = p.get(UUID.randomUUID().toString()); + p.sync(); + assertNull(shouldNotExist.get()); } @Test - public void multi(){ - Pipeline p = jedis.pipelined(); - p.multi(); - Response r1 = p.hincrBy("a", "f1", -1); - Response r2 = p.hincrBy("a", "f1", -2); - Response> r3 = p.exec(); - List result = p.syncAndReturnAll(); - - assertEquals(new Long(-1), r1.get()); - assertEquals(new Long(-3), r2.get()); - - assertEquals(4, result.size()); - - assertEquals("OK", result.get(0)); - assertEquals("QUEUED", result.get(1)); - assertEquals("QUEUED", result.get(2)); - - //4th result is a list with the results from the multi - @SuppressWarnings("unchecked") - List multiResult = (List) result.get(3); - assertEquals(new Long(-1), multiResult.get(0)); - assertEquals(new Long(-3), multiResult.get(1)); - - assertEquals(new Long(-1), r3.get().get(0)); - assertEquals(new Long(-3), r3.get().get(1)); + public void piplineWithError() { + Pipeline p = jedis.pipelined(); + p.set("foo", "bar"); + Response> error = p.smembers("foo"); + Response r = p.get("foo"); + p.sync(); + try { + error.get(); + fail(); + } catch (JedisDataException e) { + // that is fine we should be here + } + assertEquals(r.get(), "bar"); + } + + @Test + public void multi() { + Pipeline p = jedis.pipelined(); + p.multi(); + Response r1 = p.hincrBy("a", "f1", -1); + Response r2 = p.hincrBy("a", "f1", -2); + Response> r3 = p.exec(); + List result = p.syncAndReturnAll(); + + assertEquals(new Long(-1), r1.get()); + assertEquals(new Long(-3), r2.get()); + + assertEquals(4, result.size()); + + assertEquals("OK", result.get(0)); + assertEquals("QUEUED", result.get(1)); + assertEquals("QUEUED", result.get(2)); + + // 4th result is a list with the results from the multi + @SuppressWarnings("unchecked") + List multiResult = (List) result.get(3); + assertEquals(new Long(-1), multiResult.get(0)); + assertEquals(new Long(-3), multiResult.get(1)); + + assertEquals(new Long(-1), r3.get().get(0)); + assertEquals(new Long(-3), r3.get().get(1)); } @Test public void testDiscardInPipeline() { - Pipeline pipeline = jedis.pipelined(); - pipeline.multi(); - pipeline.set("foo", "bar"); - Response discard = pipeline.discard(); - Response get = pipeline.get("foo"); - pipeline.sync(); - discard.get(); - get.get(); + Pipeline pipeline = jedis.pipelined(); + pipeline.multi(); + pipeline.set("foo", "bar"); + Response discard = pipeline.discard(); + Response get = pipeline.get("foo"); + pipeline.sync(); + discard.get(); + get.get(); } - - @Test - public void testEval() { - String script = "return 'success!'"; - Pipeline p = jedis.pipelined(); - Response result = p.eval(script); - p.sync(); + @Test + public void testEval() { + String script = "return 'success!'"; - assertEquals("success!", result.get()); - } + Pipeline p = jedis.pipelined(); + Response result = p.eval(script); + p.sync(); - @Test - public void testEvalKeyAndArg() { - String key = "test"; - String arg = "3"; - String script = "redis.call('INCRBY', KEYS[1], ARGV[1]) redis.call('INCRBY', KEYS[1], ARGV[1])"; + assertEquals("success!", result.get()); + } - Pipeline p = jedis.pipelined(); - p.set(key, "0"); - Response result0 = p.eval(script, Arrays.asList(key), Arrays.asList(arg)); - p.incr(key); - Response result1 = p.eval(script, Arrays.asList(key), Arrays.asList(arg)); - Response result2 = p.get(key); - p.sync(); + @Test + public void testEvalKeyAndArg() { + String key = "test"; + String arg = "3"; + String script = "redis.call('INCRBY', KEYS[1], ARGV[1]) redis.call('INCRBY', KEYS[1], ARGV[1])"; - assertNull(result0.get()); - assertNull(result1.get()); - assertEquals("13", result2.get()); - } + Pipeline p = jedis.pipelined(); + p.set(key, "0"); + Response result0 = p.eval(script, Arrays.asList(key), + Arrays.asList(arg)); + p.incr(key); + Response result1 = p.eval(script, Arrays.asList(key), + Arrays.asList(arg)); + Response result2 = p.get(key); + p.sync(); - @Test - public void testEvalsha() { - String script = "return 'success!'"; - String sha1 = jedis.scriptLoad(script); + assertNull(result0.get()); + assertNull(result1.get()); + assertEquals("13", result2.get()); + } - assertTrue(jedis.scriptExists(sha1)); + @Test + public void testEvalsha() { + String script = "return 'success!'"; + String sha1 = jedis.scriptLoad(script); - Pipeline p = jedis.pipelined(); - Response result = p.evalsha(sha1); - p.sync(); + assertTrue(jedis.scriptExists(sha1)); - assertEquals("success!", result.get()); - } + Pipeline p = jedis.pipelined(); + Response result = p.evalsha(sha1); + p.sync(); - @Test - public void testEvalshaKeyAndArg() { - String key = "test"; - String arg = "3"; - String script = "redis.call('INCRBY', KEYS[1], ARGV[1]) redis.call('INCRBY', KEYS[1], ARGV[1])"; - String sha1 = jedis.scriptLoad(script); + assertEquals("success!", result.get()); + } - assertTrue(jedis.scriptExists(sha1)); + @Test + public void testEvalshaKeyAndArg() { + String key = "test"; + String arg = "3"; + String script = "redis.call('INCRBY', KEYS[1], ARGV[1]) redis.call('INCRBY', KEYS[1], ARGV[1])"; + String sha1 = jedis.scriptLoad(script); - Pipeline p = jedis.pipelined(); - p.set(key, "0"); - Response result0 = p.evalsha(sha1, Arrays.asList(key), Arrays.asList(arg)); - p.incr(key); - Response result1 = p.evalsha(sha1, Arrays.asList(key), Arrays.asList(arg)); - Response result2 = p.get(key); - p.sync(); + assertTrue(jedis.scriptExists(sha1)); - assertNull(result0.get()); - assertNull(result1.get()); - assertEquals("13", result2.get()); - } + Pipeline p = jedis.pipelined(); + p.set(key, "0"); + Response result0 = p.evalsha(sha1, Arrays.asList(key), + Arrays.asList(arg)); + p.incr(key); + Response result1 = p.evalsha(sha1, Arrays.asList(key), + Arrays.asList(arg)); + Response result2 = p.get(key); + p.sync(); + + assertNull(result0.get()); + assertNull(result1.get()); + assertEquals("13", result2.get()); + } } diff --git a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java index 60b82aa..504a66a 100644 --- a/src/test/java/redis/clients/jedis/tests/ProtocolTest.java +++ b/src/test/java/redis/clients/jedis/tests/ProtocolTest.java @@ -19,86 +19,86 @@ import redis.clients.util.SafeEncoder; public class ProtocolTest extends JedisTestBase { @Test public void buildACommand() throws IOException { - PipedInputStream pis = new PipedInputStream(); - BufferedInputStream bis = new BufferedInputStream(pis); - PipedOutputStream pos = new PipedOutputStream(pis); - RedisOutputStream ros = new RedisOutputStream(pos); + PipedInputStream pis = new PipedInputStream(); + BufferedInputStream bis = new BufferedInputStream(pis); + PipedOutputStream pos = new PipedOutputStream(pis); + RedisOutputStream ros = new RedisOutputStream(pos); - Protocol.sendCommand(ros, Protocol.Command.GET, - "SOMEKEY".getBytes(Protocol.CHARSET)); - ros.flush(); - pos.close(); - String expectedCommand = "*2\r\n$3\r\nGET\r\n$7\r\nSOMEKEY\r\n"; + Protocol.sendCommand(ros, Protocol.Command.GET, + "SOMEKEY".getBytes(Protocol.CHARSET)); + ros.flush(); + pos.close(); + String expectedCommand = "*2\r\n$3\r\nGET\r\n$7\r\nSOMEKEY\r\n"; - int b; - StringBuilder sb = new StringBuilder(); - while ((b = bis.read()) != -1) { - sb.append((char) b); - } + int b; + StringBuilder sb = new StringBuilder(); + while ((b = bis.read()) != -1) { + sb.append((char) b); + } - assertEquals(expectedCommand, sb.toString()); + assertEquals(expectedCommand, sb.toString()); } @Test public void bulkReply() { - InputStream is = new ByteArrayInputStream("$6\r\nfoobar\r\n".getBytes()); - byte[] response = (byte[]) Protocol.read(new RedisInputStream(is)); - assertArrayEquals(SafeEncoder.encode("foobar"), response); + InputStream is = new ByteArrayInputStream("$6\r\nfoobar\r\n".getBytes()); + byte[] response = (byte[]) Protocol.read(new RedisInputStream(is)); + assertArrayEquals(SafeEncoder.encode("foobar"), response); } @Test public void fragmentedBulkReply() { - FragmentedByteArrayInputStream fis = new FragmentedByteArrayInputStream( - "$30\r\n012345678901234567890123456789\r\n".getBytes()); - byte[] response = (byte[]) Protocol.read(new RedisInputStream(fis)); - assertArrayEquals(SafeEncoder.encode("012345678901234567890123456789"), - response); + FragmentedByteArrayInputStream fis = new FragmentedByteArrayInputStream( + "$30\r\n012345678901234567890123456789\r\n".getBytes()); + byte[] response = (byte[]) Protocol.read(new RedisInputStream(fis)); + assertArrayEquals(SafeEncoder.encode("012345678901234567890123456789"), + response); } @Test public void nullBulkReply() { - InputStream is = new ByteArrayInputStream("$-1\r\n".getBytes()); - String response = (String) Protocol.read(new RedisInputStream(is)); - assertEquals(null, response); + InputStream is = new ByteArrayInputStream("$-1\r\n".getBytes()); + String response = (String) Protocol.read(new RedisInputStream(is)); + assertEquals(null, response); } @Test public void singleLineReply() { - InputStream is = new ByteArrayInputStream("+OK\r\n".getBytes()); - byte[] response = (byte[]) Protocol.read(new RedisInputStream(is)); - assertArrayEquals(SafeEncoder.encode("OK"), response); + InputStream is = new ByteArrayInputStream("+OK\r\n".getBytes()); + byte[] response = (byte[]) Protocol.read(new RedisInputStream(is)); + assertArrayEquals(SafeEncoder.encode("OK"), response); } @Test public void integerReply() { - InputStream is = new ByteArrayInputStream(":123\r\n".getBytes()); - long response = (Long) Protocol.read(new RedisInputStream(is)); - assertEquals(123, response); + InputStream is = new ByteArrayInputStream(":123\r\n".getBytes()); + long response = (Long) Protocol.read(new RedisInputStream(is)); + assertEquals(123, response); } @SuppressWarnings("unchecked") @Test public void multiBulkReply() { - InputStream is = new ByteArrayInputStream( - "*4\r\n$3\r\nfoo\r\n$3\r\nbar\r\n$5\r\nHello\r\n$5\r\nWorld\r\n" - .getBytes()); - List response = (List) Protocol - .read(new RedisInputStream(is)); - List expected = new ArrayList(); - expected.add(SafeEncoder.encode("foo")); - expected.add(SafeEncoder.encode("bar")); - expected.add(SafeEncoder.encode("Hello")); - expected.add(SafeEncoder.encode("World")); + InputStream is = new ByteArrayInputStream( + "*4\r\n$3\r\nfoo\r\n$3\r\nbar\r\n$5\r\nHello\r\n$5\r\nWorld\r\n" + .getBytes()); + List response = (List) Protocol + .read(new RedisInputStream(is)); + List expected = new ArrayList(); + expected.add(SafeEncoder.encode("foo")); + expected.add(SafeEncoder.encode("bar")); + expected.add(SafeEncoder.encode("Hello")); + expected.add(SafeEncoder.encode("World")); - assertEquals(expected, response); + assertEquals(expected, response); } @SuppressWarnings("unchecked") @Test public void nullMultiBulkReply() { - InputStream is = new ByteArrayInputStream("*-1\r\n".getBytes()); - List response = (List) Protocol - .read(new RedisInputStream(is)); - assertNull(response); + InputStream is = new ByteArrayInputStream("*-1\r\n".getBytes()); + List response = (List) Protocol + .read(new RedisInputStream(is)); + assertNull(response); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java index 73532c7..5a71391 100644 --- a/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java +++ b/src/test/java/redis/clients/jedis/tests/ShardedJedisTest.java @@ -18,286 +18,288 @@ import redis.clients.util.Sharded; public class ShardedJedisTest extends Assert { private static HostAndPort redis1 = HostAndPortUtil.getRedisServers() - .get(0); + .get(0); private static HostAndPort redis2 = HostAndPortUtil.getRedisServers() - .get(1); + .get(1); private List getKeysDifferentShard(ShardedJedis jedis) { - List ret = new ArrayList(); - JedisShardInfo first = jedis.getShardInfo("a0"); - ret.add("a0"); - for (int i = 1; i < 100; ++i) { - JedisShardInfo actual = jedis.getShardInfo("a" + i); - if (actual != first) { - ret.add("a" + i); - break; + List ret = new ArrayList(); + JedisShardInfo first = jedis.getShardInfo("a0"); + ret.add("a0"); + for (int i = 1; i < 100; ++i) { + JedisShardInfo actual = jedis.getShardInfo("a" + i); + if (actual != first) { + ret.add("a" + i); + break; - } + } - } - return ret; + } + return ret; } @Test public void checkSharding() { - List shards = new ArrayList(); - shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); - shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); - ShardedJedis jedis = new ShardedJedis(shards); - List keys = getKeysDifferentShard(jedis); - JedisShardInfo s1 = jedis.getShardInfo(keys.get(0)); - JedisShardInfo s2 = jedis.getShardInfo(keys.get(1)); - assertNotSame(s1, s2); + List shards = new ArrayList(); + shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); + shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); + ShardedJedis jedis = new ShardedJedis(shards); + List keys = getKeysDifferentShard(jedis); + JedisShardInfo s1 = jedis.getShardInfo(keys.get(0)); + JedisShardInfo s2 = jedis.getShardInfo(keys.get(1)); + assertNotSame(s1, s2); } @Test public void trySharding() { - List shards = new ArrayList(); - JedisShardInfo si = new JedisShardInfo(redis1.getHost(), redis1.getPort()); - si.setPassword("foobared"); - shards.add(si); - si = new JedisShardInfo(redis2.getHost(), redis2.getPort()); - si.setPassword("foobared"); - shards.add(si); - ShardedJedis jedis = new ShardedJedis(shards); - jedis.set("a", "bar"); - JedisShardInfo s1 = jedis.getShardInfo("a"); - jedis.set("b", "bar1"); - JedisShardInfo s2 = jedis.getShardInfo("b"); - jedis.disconnect(); + List shards = new ArrayList(); + JedisShardInfo si = new JedisShardInfo(redis1.getHost(), + redis1.getPort()); + si.setPassword("foobared"); + shards.add(si); + si = new JedisShardInfo(redis2.getHost(), redis2.getPort()); + si.setPassword("foobared"); + shards.add(si); + ShardedJedis jedis = new ShardedJedis(shards); + jedis.set("a", "bar"); + JedisShardInfo s1 = jedis.getShardInfo("a"); + jedis.set("b", "bar1"); + JedisShardInfo s2 = jedis.getShardInfo("b"); + jedis.disconnect(); - Jedis j = new Jedis(s1.getHost(), s1.getPort()); - j.auth("foobared"); - assertEquals("bar", j.get("a")); - j.disconnect(); + Jedis j = new Jedis(s1.getHost(), s1.getPort()); + j.auth("foobared"); + assertEquals("bar", j.get("a")); + j.disconnect(); - j = new Jedis(s2.getHost(), s2.getPort()); - j.auth("foobared"); - assertEquals("bar1", j.get("b")); - j.disconnect(); + j = new Jedis(s2.getHost(), s2.getPort()); + j.auth("foobared"); + assertEquals("bar1", j.get("b")); + j.disconnect(); } @Test public void tryShardingWithMurmure() { - List shards = new ArrayList(); - JedisShardInfo si = new JedisShardInfo(redis1.getHost(), redis1.getPort()); - si.setPassword("foobared"); - shards.add(si); - si = new JedisShardInfo(redis2.getHost(), redis2.getPort()); - si.setPassword("foobared"); - shards.add(si); - ShardedJedis jedis = new ShardedJedis(shards, Hashing.MURMUR_HASH); - jedis.set("a", "bar"); - JedisShardInfo s1 = jedis.getShardInfo("a"); - jedis.set("b", "bar1"); - JedisShardInfo s2 = jedis.getShardInfo("b"); - jedis.disconnect(); + List shards = new ArrayList(); + JedisShardInfo si = new JedisShardInfo(redis1.getHost(), + redis1.getPort()); + si.setPassword("foobared"); + shards.add(si); + si = new JedisShardInfo(redis2.getHost(), redis2.getPort()); + si.setPassword("foobared"); + shards.add(si); + ShardedJedis jedis = new ShardedJedis(shards, Hashing.MURMUR_HASH); + jedis.set("a", "bar"); + JedisShardInfo s1 = jedis.getShardInfo("a"); + jedis.set("b", "bar1"); + JedisShardInfo s2 = jedis.getShardInfo("b"); + jedis.disconnect(); - Jedis j = new Jedis(s1.getHost(), s1.getPort()); - j.auth("foobared"); - assertEquals("bar", j.get("a")); - j.disconnect(); + Jedis j = new Jedis(s1.getHost(), s1.getPort()); + j.auth("foobared"); + assertEquals("bar", j.get("a")); + j.disconnect(); - j = new Jedis(s2.getHost(), s2.getPort()); - j.auth("foobared"); - assertEquals("bar1", j.get("b")); - j.disconnect(); + j = new Jedis(s2.getHost(), s2.getPort()); + j.auth("foobared"); + assertEquals("bar1", j.get("b")); + j.disconnect(); } @Test public void checkKeyTags() { - List shards = new ArrayList(); - shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); - shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); - ShardedJedis jedis = new ShardedJedis(shards, - ShardedJedis.DEFAULT_KEY_TAG_PATTERN); + List shards = new ArrayList(); + shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); + shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); + ShardedJedis jedis = new ShardedJedis(shards, + ShardedJedis.DEFAULT_KEY_TAG_PATTERN); - assertEquals(jedis.getKeyTag("foo"), "foo"); - assertEquals(jedis.getKeyTag("foo{bar}"), "bar"); - assertEquals(jedis.getKeyTag("foo{bar}}"), "bar"); // default pattern is - // non greedy - assertEquals(jedis.getKeyTag("{bar}foo"), "bar"); // Key tag may appear - // anywhere - assertEquals(jedis.getKeyTag("f{bar}oo"), "bar"); // Key tag may appear - // anywhere + assertEquals(jedis.getKeyTag("foo"), "foo"); + assertEquals(jedis.getKeyTag("foo{bar}"), "bar"); + assertEquals(jedis.getKeyTag("foo{bar}}"), "bar"); // default pattern is + // non greedy + assertEquals(jedis.getKeyTag("{bar}foo"), "bar"); // Key tag may appear + // anywhere + assertEquals(jedis.getKeyTag("f{bar}oo"), "bar"); // Key tag may appear + // anywhere - JedisShardInfo s1 = jedis.getShardInfo("abc{bar}"); - JedisShardInfo s2 = jedis.getShardInfo("foo{bar}"); - assertSame(s1, s2); + JedisShardInfo s1 = jedis.getShardInfo("abc{bar}"); + JedisShardInfo s2 = jedis.getShardInfo("foo{bar}"); + assertSame(s1, s2); - List keys = getKeysDifferentShard(jedis); - JedisShardInfo s3 = jedis.getShardInfo(keys.get(0)); - JedisShardInfo s4 = jedis.getShardInfo(keys.get(1)); - assertNotSame(s3, s4); + List keys = getKeysDifferentShard(jedis); + JedisShardInfo s3 = jedis.getShardInfo(keys.get(0)); + JedisShardInfo s4 = jedis.getShardInfo(keys.get(1)); + assertNotSame(s3, s4); - ShardedJedis jedis2 = new ShardedJedis(shards); + ShardedJedis jedis2 = new ShardedJedis(shards); - assertEquals(jedis2.getKeyTag("foo"), "foo"); - assertNotSame(jedis2.getKeyTag("foo{bar}"), "bar"); + assertEquals(jedis2.getKeyTag("foo"), "foo"); + assertNotSame(jedis2.getKeyTag("foo{bar}"), "bar"); - JedisShardInfo s5 = jedis2.getShardInfo(keys.get(0) + "{bar}"); - JedisShardInfo s6 = jedis2.getShardInfo(keys.get(1) + "{bar}"); - assertNotSame(s5, s6); + JedisShardInfo s5 = jedis2.getShardInfo(keys.get(0) + "{bar}"); + JedisShardInfo s6 = jedis2.getShardInfo(keys.get(1) + "{bar}"); + assertNotSame(s5, s6); } @Test public void shardedPipeline() { - List shards = new ArrayList(); - shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); - shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); - shards.get(0).setPassword("foobared"); - shards.get(1).setPassword("foobared"); - ShardedJedis jedis = new ShardedJedis(shards); + List shards = new ArrayList(); + shards.add(new JedisShardInfo(redis1.getHost(), redis1.getPort())); + shards.add(new JedisShardInfo(redis2.getHost(), redis2.getPort())); + shards.get(0).setPassword("foobared"); + shards.get(1).setPassword("foobared"); + ShardedJedis jedis = new ShardedJedis(shards); - final List keys = getKeysDifferentShard(jedis); - jedis.set(keys.get(0), "a"); - jedis.set(keys.get(1), "b"); + final List keys = getKeysDifferentShard(jedis); + jedis.set(keys.get(0), "a"); + jedis.set(keys.get(1), "b"); - assertNotSame(jedis.getShard(keys.get(0)), jedis.getShard(keys.get(1))); + assertNotSame(jedis.getShard(keys.get(0)), jedis.getShard(keys.get(1))); - List results = jedis.pipelined(new ShardedJedisPipeline() { - public void execute() { - get(keys.get(0)); - get(keys.get(1)); - } - }); + List results = jedis.pipelined(new ShardedJedisPipeline() { + public void execute() { + get(keys.get(0)); + get(keys.get(1)); + } + }); - List expected = new ArrayList(2); - expected.add(SafeEncoder.encode("a")); - expected.add(SafeEncoder.encode("b")); + List expected = new ArrayList(2); + expected.add(SafeEncoder.encode("a")); + expected.add(SafeEncoder.encode("b")); - assertEquals(2, results.size()); - assertArrayEquals(SafeEncoder.encode("a"), (byte[]) results.get(0)); - assertArrayEquals(SafeEncoder.encode("b"), (byte[]) results.get(1)); + assertEquals(2, results.size()); + assertArrayEquals(SafeEncoder.encode("a"), (byte[]) results.get(0)); + assertArrayEquals(SafeEncoder.encode("b"), (byte[]) results.get(1)); } @Test public void testMD5Sharding() { - List shards = new ArrayList(3); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); - Sharded sharded = new Sharded( - shards, Hashing.MD5); - int shard_6379 = 0; - int shard_6380 = 0; - int shard_6381 = 0; - for (int i = 0; i < 1000; i++) { - JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer - .toString(i)); - switch (jedisShardInfo.getPort()) { - case 6379: - shard_6379++; - break; - case 6380: - shard_6380++; - break; - case 6381: - shard_6381++; - break; - default: - fail("Attempting to use a non-defined shard!!:" - + jedisShardInfo); - break; - } - } - assertTrue(shard_6379 > 300 && shard_6379 < 400); - assertTrue(shard_6380 > 300 && shard_6380 < 400); - assertTrue(shard_6381 > 300 && shard_6381 < 400); + List shards = new ArrayList(3); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); + Sharded sharded = new Sharded( + shards, Hashing.MD5); + int shard_6379 = 0; + int shard_6380 = 0; + int shard_6381 = 0; + for (int i = 0; i < 1000; i++) { + JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer + .toString(i)); + switch (jedisShardInfo.getPort()) { + case 6379: + shard_6379++; + break; + case 6380: + shard_6380++; + break; + case 6381: + shard_6381++; + break; + default: + fail("Attempting to use a non-defined shard!!:" + + jedisShardInfo); + break; + } + } + assertTrue(shard_6379 > 300 && shard_6379 < 400); + assertTrue(shard_6380 > 300 && shard_6380 < 400); + assertTrue(shard_6381 > 300 && shard_6381 < 400); } @Test public void testMurmurSharding() { - List shards = new ArrayList(3); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); - Sharded sharded = new Sharded( - shards, Hashing.MURMUR_HASH); - int shard_6379 = 0; - int shard_6380 = 0; - int shard_6381 = 0; - for (int i = 0; i < 1000; i++) { - JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer - .toString(i)); - switch (jedisShardInfo.getPort()) { - case 6379: - shard_6379++; - break; - case 6380: - shard_6380++; - break; - case 6381: - shard_6381++; - break; - default: - fail("Attempting to use a non-defined shard!!:" - + jedisShardInfo); - break; - } - } - assertTrue(shard_6379 > 300 && shard_6379 < 400); - assertTrue(shard_6380 > 300 && shard_6380 < 400); - assertTrue(shard_6381 > 300 && shard_6381 < 400); + List shards = new ArrayList(3); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); + Sharded sharded = new Sharded( + shards, Hashing.MURMUR_HASH); + int shard_6379 = 0; + int shard_6380 = 0; + int shard_6381 = 0; + for (int i = 0; i < 1000; i++) { + JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer + .toString(i)); + switch (jedisShardInfo.getPort()) { + case 6379: + shard_6379++; + break; + case 6380: + shard_6380++; + break; + case 6381: + shard_6381++; + break; + default: + fail("Attempting to use a non-defined shard!!:" + + jedisShardInfo); + break; + } + } + assertTrue(shard_6379 > 300 && shard_6379 < 400); + assertTrue(shard_6380 > 300 && shard_6380 < 400); + assertTrue(shard_6381 > 300 && shard_6381 < 400); } @Test public void testMasterSlaveShardingConsistency() { - List shards = new ArrayList(3); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); - Sharded sharded = new Sharded( - shards, Hashing.MURMUR_HASH); + List shards = new ArrayList(3); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1)); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2)); + Sharded sharded = new Sharded( + shards, Hashing.MURMUR_HASH); - List otherShards = new ArrayList(3); - otherShards.add(new JedisShardInfo("otherhost", Protocol.DEFAULT_PORT)); - otherShards.add(new JedisShardInfo("otherhost", - Protocol.DEFAULT_PORT + 1)); - otherShards.add(new JedisShardInfo("otherhost", - Protocol.DEFAULT_PORT + 2)); - Sharded sharded2 = new Sharded( - otherShards, Hashing.MURMUR_HASH); + List otherShards = new ArrayList(3); + otherShards.add(new JedisShardInfo("otherhost", Protocol.DEFAULT_PORT)); + otherShards.add(new JedisShardInfo("otherhost", + Protocol.DEFAULT_PORT + 1)); + otherShards.add(new JedisShardInfo("otherhost", + Protocol.DEFAULT_PORT + 2)); + Sharded sharded2 = new Sharded( + otherShards, Hashing.MURMUR_HASH); - for (int i = 0; i < 1000; i++) { - JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer - .toString(i)); - JedisShardInfo jedisShardInfo2 = sharded2.getShardInfo(Integer - .toString(i)); - assertEquals(shards.indexOf(jedisShardInfo), otherShards - .indexOf(jedisShardInfo2)); - } + for (int i = 0; i < 1000; i++) { + JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer + .toString(i)); + JedisShardInfo jedisShardInfo2 = sharded2.getShardInfo(Integer + .toString(i)); + assertEquals(shards.indexOf(jedisShardInfo), + otherShards.indexOf(jedisShardInfo2)); + } } @Test public void testMasterSlaveShardingConsistencyWithShardNaming() { - List shards = new ArrayList(3); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT, - "HOST1:1234")); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1, - "HOST2:1234")); - shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2, - "HOST3:1234")); - Sharded sharded = new Sharded( - shards, Hashing.MURMUR_HASH); + List shards = new ArrayList(3); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT, + "HOST1:1234")); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 1, + "HOST2:1234")); + shards.add(new JedisShardInfo("localhost", Protocol.DEFAULT_PORT + 2, + "HOST3:1234")); + Sharded sharded = new Sharded( + shards, Hashing.MURMUR_HASH); - List otherShards = new ArrayList(3); - otherShards.add(new JedisShardInfo("otherhost", Protocol.DEFAULT_PORT, - "HOST2:1234")); - otherShards.add(new JedisShardInfo("otherhost", - Protocol.DEFAULT_PORT + 1, "HOST3:1234")); - otherShards.add(new JedisShardInfo("otherhost", - Protocol.DEFAULT_PORT + 2, "HOST1:1234")); - Sharded sharded2 = new Sharded( - otherShards, Hashing.MURMUR_HASH); + List otherShards = new ArrayList(3); + otherShards.add(new JedisShardInfo("otherhost", Protocol.DEFAULT_PORT, + "HOST2:1234")); + otherShards.add(new JedisShardInfo("otherhost", + Protocol.DEFAULT_PORT + 1, "HOST3:1234")); + otherShards.add(new JedisShardInfo("otherhost", + Protocol.DEFAULT_PORT + 2, "HOST1:1234")); + Sharded sharded2 = new Sharded( + otherShards, Hashing.MURMUR_HASH); - for (int i = 0; i < 1000; i++) { - JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer - .toString(i)); - JedisShardInfo jedisShardInfo2 = sharded2.getShardInfo(Integer - .toString(i)); - assertEquals(jedisShardInfo.getName(), jedisShardInfo2.getName()); - } + for (int i = 0; i < 1000; i++) { + JedisShardInfo jedisShardInfo = sharded.getShardInfo(Integer + .toString(i)); + JedisShardInfo jedisShardInfo2 = sharded2.getShardInfo(Integer + .toString(i)); + assertEquals(jedisShardInfo.getName(), jedisShardInfo2.getName()); + } } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java index 9ce403d..4eaa17b 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/GetSetBenchmark.java @@ -9,7 +9,7 @@ import redis.clients.jedis.Jedis; import redis.clients.jedis.tests.HostAndPortUtil; public class GetSetBenchmark { - private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); + private static HostAndPort hnp = HostAndPortUtil.getRedisServers().get(0); private static final int TOTAL_OPERATIONS = 100000; public static void main(String[] args) throws UnknownHostException, diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/HashingBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/HashingBenchmark.java index 4783754..4c75e5a 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/HashingBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/HashingBenchmark.java @@ -19,32 +19,33 @@ public class HashingBenchmark { private static final int TOTAL_OPERATIONS = 100000; public static void main(String[] args) throws UnknownHostException, - IOException { - List shards = new ArrayList(); - JedisShardInfo shard = new JedisShardInfo(hnp1.getHost(), hnp1.getPort()); - shard.setPassword("foobared"); - shards.add(shard); - shard = new JedisShardInfo(hnp2.getHost(), hnp2.getPort()); - shard.setPassword("foobared"); - shards.add(shard); - ShardedJedis jedis = new ShardedJedis(shards); - Collection allShards = jedis.getAllShards(); - for (Jedis j : allShards) { - j.flushAll(); - } + IOException { + List shards = new ArrayList(); + JedisShardInfo shard = new JedisShardInfo(hnp1.getHost(), + hnp1.getPort()); + shard.setPassword("foobared"); + shards.add(shard); + shard = new JedisShardInfo(hnp2.getHost(), hnp2.getPort()); + shard.setPassword("foobared"); + shards.add(shard); + ShardedJedis jedis = new ShardedJedis(shards); + Collection allShards = jedis.getAllShards(); + for (Jedis j : allShards) { + j.flushAll(); + } - long begin = Calendar.getInstance().getTimeInMillis(); + long begin = Calendar.getInstance().getTimeInMillis(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - String key = "foo" + n; - jedis.set(key, "bar" + n); - jedis.get(key); - } + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + String key = "foo" + n; + jedis.set(key, "bar" + n); + jedis.get(key); + } - long elapsed = Calendar.getInstance().getTimeInMillis() - begin; + long elapsed = Calendar.getInstance().getTimeInMillis() - begin; - jedis.disconnect(); + jedis.disconnect(); - System.out.println(((1000 * 2 * TOTAL_OPERATIONS) / elapsed) + " ops"); + System.out.println(((1000 * 2 * TOTAL_OPERATIONS) / elapsed) + " ops"); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java index f8c41d7..b783ca4 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/PipelinedGetSetBenchmark.java @@ -14,26 +14,26 @@ public class PipelinedGetSetBenchmark { private static final int TOTAL_OPERATIONS = 200000; public static void main(String[] args) throws UnknownHostException, - IOException { - Jedis jedis = new Jedis(hnp.getHost(), hnp.getPort()); - jedis.connect(); - jedis.auth("foobared"); - jedis.flushAll(); + IOException { + Jedis jedis = new Jedis(hnp.getHost(), hnp.getPort()); + jedis.connect(); + jedis.auth("foobared"); + jedis.flushAll(); - long begin = Calendar.getInstance().getTimeInMillis(); + long begin = Calendar.getInstance().getTimeInMillis(); - Pipeline p = jedis.pipelined(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - String key = "foo" + n; - p.set(key, "bar" + n); - p.get(key); - } - p.sync(); + Pipeline p = jedis.pipelined(); + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + String key = "foo" + n; + p.set(key, "bar" + n); + p.get(key); + } + p.sync(); - long elapsed = Calendar.getInstance().getTimeInMillis() - begin; + long elapsed = Calendar.getInstance().getTimeInMillis() - begin; - jedis.disconnect(); + jedis.disconnect(); - System.out.println(((1000 * 2 * TOTAL_OPERATIONS) / elapsed) + " ops"); + System.out.println(((1000 * 2 * TOTAL_OPERATIONS) / elapsed) + " ops"); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/SafeEncoderBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/SafeEncoderBenchmark.java index bfe1fe9..3444687 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/SafeEncoderBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/SafeEncoderBenchmark.java @@ -10,29 +10,29 @@ public class SafeEncoderBenchmark { private static final int TOTAL_OPERATIONS = 10000000; public static void main(String[] args) throws UnknownHostException, - IOException { - long begin = Calendar.getInstance().getTimeInMillis(); + IOException { + long begin = Calendar.getInstance().getTimeInMillis(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - SafeEncoder.encode("foo bar!"); - } + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + SafeEncoder.encode("foo bar!"); + } - long elapsed = Calendar.getInstance().getTimeInMillis() - begin; + long elapsed = Calendar.getInstance().getTimeInMillis() - begin; - System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) - + " ops to build byte[]"); + System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) + + " ops to build byte[]"); - begin = Calendar.getInstance().getTimeInMillis(); + begin = Calendar.getInstance().getTimeInMillis(); - byte[] bytes = "foo bar!".getBytes(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - SafeEncoder.encode(bytes); - } + byte[] bytes = "foo bar!".getBytes(); + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + SafeEncoder.encode(bytes); + } - elapsed = Calendar.getInstance().getTimeInMillis() - begin; + elapsed = Calendar.getInstance().getTimeInMillis() - begin; - System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) - + " ops to build Strings"); + System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) + + " ops to build Strings"); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/benchmark/ShardedBenchmark.java b/src/test/java/redis/clients/jedis/tests/benchmark/ShardedBenchmark.java index 3fb63ff..ec5fed8 100644 --- a/src/test/java/redis/clients/jedis/tests/benchmark/ShardedBenchmark.java +++ b/src/test/java/redis/clients/jedis/tests/benchmark/ShardedBenchmark.java @@ -10,30 +10,30 @@ public class ShardedBenchmark { private static final int TOTAL_OPERATIONS = 10000000; public static void main(String[] args) throws UnknownHostException, - IOException { + IOException { - long begin = Calendar.getInstance().getTimeInMillis(); + long begin = Calendar.getInstance().getTimeInMillis(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - String key = "foo" + n; - Hashing.MD5.hash(key); - } + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + String key = "foo" + n; + Hashing.MD5.hash(key); + } - long elapsed = Calendar.getInstance().getTimeInMillis() - begin; + long elapsed = Calendar.getInstance().getTimeInMillis() - begin; - System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) + " MD5 ops"); + System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) + " MD5 ops"); - begin = Calendar.getInstance().getTimeInMillis(); + begin = Calendar.getInstance().getTimeInMillis(); - for (int n = 0; n <= TOTAL_OPERATIONS; n++) { - String key = "foo" + n; - Hashing.MURMUR_HASH.hash(key); - } + for (int n = 0; n <= TOTAL_OPERATIONS; n++) { + String key = "foo" + n; + Hashing.MURMUR_HASH.hash(key); + } - elapsed = Calendar.getInstance().getTimeInMillis() - begin; + elapsed = Calendar.getInstance().getTimeInMillis() - begin; - System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) - + " Murmur ops"); + System.out.println(((1000 * TOTAL_OPERATIONS) / elapsed) + + " Murmur ops"); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java index c232dbe..2a09268 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/BinaryValuesCommandsTest.java @@ -1,19 +1,20 @@ package redis.clients.jedis.tests.commands; -import org.junit.Before; -import org.junit.Test; -import redis.clients.jedis.Protocol.Keyword; -import redis.clients.jedis.exceptions.JedisDataException; - import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import org.junit.Before; +import org.junit.Test; + +import redis.clients.jedis.Protocol.Keyword; +import redis.clients.jedis.exceptions.JedisDataException; + public class BinaryValuesCommandsTest extends JedisCommandTestBase { byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; byte[] bbar = { 0x05, 0x06, 0x07, 0x08 }; - byte[] bxx = { 0x78, 0x78 }; - byte[] bnx = { 0x6E, 0x78 }; + byte[] bxx = { 0x78, 0x78 }; + byte[] bnx = { 0x6E, 0x78 }; byte[] bex = { 0x65, 0x78 }; byte[] bpx = { 0x70, 0x78 }; long expireSeconds = 2; @@ -22,261 +23,260 @@ public class BinaryValuesCommandsTest extends JedisCommandTestBase { @Before public void startUp() { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); - for (int n = 0; n < 1000; n++) { - sb.append("A"); - } + for (int n = 0; n < 1000; n++) { + sb.append("A"); + } - binaryValue = sb.toString().getBytes(); + binaryValue = sb.toString().getBytes(); } @Test public void setAndGet() { - String status = jedis.set(bfoo, binaryValue); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + String status = jedis.set(bfoo, binaryValue); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - byte[] value = jedis.get(bfoo); - assertTrue(Arrays.equals(binaryValue, value)); + byte[] value = jedis.get(bfoo); + assertTrue(Arrays.equals(binaryValue, value)); - assertNull(jedis.get(bbar)); + assertNull(jedis.get(bbar)); } @Test public void setNxExAndGet() { - String status = jedis.set(bfoo, binaryValue, bnx, bex, expireSeconds); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - byte[] value = jedis.get(bfoo); - assertTrue(Arrays.equals(binaryValue, value)); + String status = jedis.set(bfoo, binaryValue, bnx, bex, expireSeconds); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + byte[] value = jedis.get(bfoo); + assertTrue(Arrays.equals(binaryValue, value)); - assertNull(jedis.get(bbar)); + assertNull(jedis.get(bbar)); } @Test public void setIfNotExistAndGet() { - String status= jedis.set(bfoo, binaryValue); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - // nx should fail if value exists - String statusFail = jedis.set(bfoo, binaryValue, bnx, bex, expireSeconds); - assertNull(statusFail); + String status = jedis.set(bfoo, binaryValue); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + // nx should fail if value exists + String statusFail = jedis.set(bfoo, binaryValue, bnx, bex, + expireSeconds); + assertNull(statusFail); - byte[] value = jedis.get(bfoo); - assertTrue(Arrays.equals(binaryValue, value)); + byte[] value = jedis.get(bfoo); + assertTrue(Arrays.equals(binaryValue, value)); - assertNull(jedis.get(bbar)); + assertNull(jedis.get(bbar)); } @Test public void setIfExistAndGet() { - String status= jedis.set(bfoo, binaryValue); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - // nx should fail if value exists - String statusSuccess = jedis.set(bfoo, binaryValue, bxx, bex, expireSeconds); - assertTrue(Keyword.OK.name().equalsIgnoreCase(statusSuccess)); + String status = jedis.set(bfoo, binaryValue); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + // nx should fail if value exists + String statusSuccess = jedis.set(bfoo, binaryValue, bxx, bex, + expireSeconds); + assertTrue(Keyword.OK.name().equalsIgnoreCase(statusSuccess)); - byte[] value = jedis.get(bfoo); - assertTrue(Arrays.equals(binaryValue, value)); + byte[] value = jedis.get(bfoo); + assertTrue(Arrays.equals(binaryValue, value)); - assertNull(jedis.get(bbar)); + assertNull(jedis.get(bbar)); } @Test public void setFailIfNotExistAndGet() { - // xx should fail if value does NOT exists - String statusFail = jedis.set(bfoo, binaryValue, bxx, bex, expireSeconds); - assertNull(statusFail); + // xx should fail if value does NOT exists + String statusFail = jedis.set(bfoo, binaryValue, bxx, bex, + expireSeconds); + assertNull(statusFail); } @Test public void setAndExpireMillis() { - String status = jedis.set(bfoo, binaryValue, bnx, bpx, expireMillis); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - long ttl = jedis.ttl(bfoo); - assertTrue(ttl > 0 && ttl <= expireSeconds); + String status = jedis.set(bfoo, binaryValue, bnx, bpx, expireMillis); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + long ttl = jedis.ttl(bfoo); + assertTrue(ttl > 0 && ttl <= expireSeconds); } - @Test public void setAndExpire() { - String status = jedis.set(bfoo, binaryValue, bnx, bex, expireSeconds); - assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); - long ttl = jedis.ttl(bfoo); - assertTrue(ttl > 0 && ttl <= expireSeconds); + String status = jedis.set(bfoo, binaryValue, bnx, bex, expireSeconds); + assertTrue(Keyword.OK.name().equalsIgnoreCase(status)); + long ttl = jedis.ttl(bfoo); + assertTrue(ttl > 0 && ttl <= expireSeconds); } - @Test public void getSet() { - byte[] value = jedis.getSet(bfoo, binaryValue); - assertNull(value); - value = jedis.get(bfoo); - assertTrue(Arrays.equals(binaryValue, value)); + byte[] value = jedis.getSet(bfoo, binaryValue); + assertNull(value); + value = jedis.get(bfoo); + assertTrue(Arrays.equals(binaryValue, value)); } @Test public void mget() { - List values = jedis.mget(bfoo, bbar); - List expected = new ArrayList(); - expected.add(null); - expected.add(null); + List values = jedis.mget(bfoo, bbar); + List expected = new ArrayList(); + expected.add(null); + expected.add(null); - assertEquals(expected, values); + assertEquals(expected, values); - jedis.set(bfoo, binaryValue); + jedis.set(bfoo, binaryValue); - expected = new ArrayList(); - expected.add(binaryValue); - expected.add(null); - values = jedis.mget(bfoo, bbar); + expected = new ArrayList(); + expected.add(binaryValue); + expected.add(null); + values = jedis.mget(bfoo, bbar); - assertEquals(expected, values); + assertEquals(expected, values); - jedis.set(bbar, bfoo); + jedis.set(bbar, bfoo); - expected = new ArrayList(); - expected.add(binaryValue); - expected.add(bfoo); - values = jedis.mget(bfoo, bbar); + expected = new ArrayList(); + expected.add(binaryValue); + expected.add(bfoo); + values = jedis.mget(bfoo, bbar); - assertEquals(expected, values); + assertEquals(expected, values); } @Test public void setnx() { - long status = jedis.setnx(bfoo, binaryValue); - assertEquals(1, status); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + long status = jedis.setnx(bfoo, binaryValue); + assertEquals(1, status); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); - status = jedis.setnx(bfoo, bbar); - assertEquals(0, status); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + status = jedis.setnx(bfoo, bbar); + assertEquals(0, status); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); } @Test public void setex() { - String status = jedis.setex(bfoo, 20, binaryValue); - assertEquals(Keyword.OK.name(), status); - long ttl = jedis.ttl(bfoo); - assertTrue(ttl > 0 && ttl <= 20); + String status = jedis.setex(bfoo, 20, binaryValue); + assertEquals(Keyword.OK.name(), status); + long ttl = jedis.ttl(bfoo); + assertTrue(ttl > 0 && ttl <= 20); } @Test public void mset() { - String status = jedis.mset(bfoo, binaryValue, bbar, bfoo); - assertEquals(Keyword.OK.name(), status); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); - assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); + String status = jedis.mset(bfoo, binaryValue, bbar, bfoo); + assertEquals(Keyword.OK.name(), status); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); } @Test public void msetnx() { - long status = jedis.msetnx(bfoo, binaryValue, bbar, bfoo); - assertEquals(1, status); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); - assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); + long status = jedis.msetnx(bfoo, binaryValue, bbar, bfoo); + assertEquals(1, status); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); - status = jedis.msetnx(bfoo, bbar, "bar2".getBytes(), "foo2".getBytes()); - assertEquals(0, status); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); - assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); + status = jedis.msetnx(bfoo, bbar, "bar2".getBytes(), "foo2".getBytes()); + assertEquals(0, status); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + assertTrue(Arrays.equals(bfoo, jedis.get(bbar))); } @Test(expected = JedisDataException.class) public void incrWrongValue() { - jedis.set(bfoo, binaryValue); - jedis.incr(bfoo); + jedis.set(bfoo, binaryValue); + jedis.incr(bfoo); } @Test public void incr() { - long value = jedis.incr(bfoo); - assertEquals(1, value); - value = jedis.incr(bfoo); - assertEquals(2, value); + long value = jedis.incr(bfoo); + assertEquals(1, value); + value = jedis.incr(bfoo); + assertEquals(2, value); } @Test(expected = JedisDataException.class) public void incrByWrongValue() { - jedis.set(bfoo, binaryValue); - jedis.incrBy(bfoo, 2); + jedis.set(bfoo, binaryValue); + jedis.incrBy(bfoo, 2); } @Test public void incrBy() { - long value = jedis.incrBy(bfoo, 2); - assertEquals(2, value); - value = jedis.incrBy(bfoo, 2); - assertEquals(4, value); + long value = jedis.incrBy(bfoo, 2); + assertEquals(2, value); + value = jedis.incrBy(bfoo, 2); + assertEquals(4, value); } @Test(expected = JedisDataException.class) public void decrWrongValue() { - jedis.set(bfoo, binaryValue); - jedis.decr(bfoo); + jedis.set(bfoo, binaryValue); + jedis.decr(bfoo); } @Test public void decr() { - long value = jedis.decr(bfoo); - assertEquals(-1, value); - value = jedis.decr(bfoo); - assertEquals(-2, value); + long value = jedis.decr(bfoo); + assertEquals(-1, value); + value = jedis.decr(bfoo); + assertEquals(-2, value); } @Test(expected = JedisDataException.class) public void decrByWrongValue() { - jedis.set(bfoo, binaryValue); - jedis.decrBy(bfoo, 2); + jedis.set(bfoo, binaryValue); + jedis.decrBy(bfoo, 2); } @Test public void decrBy() { - long value = jedis.decrBy(bfoo, 2); - assertEquals(-2, value); - value = jedis.decrBy(bfoo, 2); - assertEquals(-4, value); + long value = jedis.decrBy(bfoo, 2); + assertEquals(-2, value); + value = jedis.decrBy(bfoo, 2); + assertEquals(-4, value); } @Test public void append() { - byte[] first512 = new byte[512]; - System.arraycopy(binaryValue, 0, first512, 0, 512); - long value = jedis.append(bfoo, first512); - assertEquals(512, value); - assertTrue(Arrays.equals(first512, jedis.get(bfoo))); + byte[] first512 = new byte[512]; + System.arraycopy(binaryValue, 0, first512, 0, 512); + long value = jedis.append(bfoo, first512); + assertEquals(512, value); + assertTrue(Arrays.equals(first512, jedis.get(bfoo))); - byte[] rest = new byte[binaryValue.length - 512]; - System.arraycopy(binaryValue, 512, rest, 0, binaryValue.length - 512); - value = jedis.append(bfoo, rest); - assertEquals(binaryValue.length, value); + byte[] rest = new byte[binaryValue.length - 512]; + System.arraycopy(binaryValue, 512, rest, 0, binaryValue.length - 512); + value = jedis.append(bfoo, rest); + assertEquals(binaryValue.length, value); - assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); + assertTrue(Arrays.equals(binaryValue, jedis.get(bfoo))); } @Test public void substr() { - jedis.set(bfoo, binaryValue); + jedis.set(bfoo, binaryValue); - byte[] first512 = new byte[512]; - System.arraycopy(binaryValue, 0, first512, 0, 512); - byte[] rfirst512 = jedis.substr(bfoo, 0, 511); - assertTrue(Arrays.equals(first512, rfirst512)); + byte[] first512 = new byte[512]; + System.arraycopy(binaryValue, 0, first512, 0, 512); + byte[] rfirst512 = jedis.substr(bfoo, 0, 511); + assertTrue(Arrays.equals(first512, rfirst512)); - byte[] last512 = new byte[512]; - System - .arraycopy(binaryValue, binaryValue.length - 512, last512, 0, - 512); - assertTrue(Arrays.equals(last512, jedis.substr(bfoo, -512, -1))); + byte[] last512 = new byte[512]; + System.arraycopy(binaryValue, binaryValue.length - 512, last512, 0, 512); + assertTrue(Arrays.equals(last512, jedis.substr(bfoo, -512, -1))); - assertTrue(Arrays.equals(binaryValue, jedis.substr(bfoo, 0, -1))); + assertTrue(Arrays.equals(binaryValue, jedis.substr(bfoo, 0, -1))); - assertTrue(Arrays.equals(last512, jedis.substr(bfoo, - binaryValue.length - 512, 100000))); + assertTrue(Arrays.equals(last512, + jedis.substr(bfoo, binaryValue.length - 512, 100000))); } @Test public void strlen() { - jedis.set(bfoo, binaryValue); - assertEquals(binaryValue.length, jedis.strlen(bfoo).intValue()); + jedis.set(bfoo, binaryValue); + assertEquals(binaryValue.length, jedis.strlen(bfoo).intValue()); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java index 87b044f..fb14f21 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/BitCommandsTest.java @@ -7,87 +7,85 @@ import redis.clients.jedis.BitOP; public class BitCommandsTest extends JedisCommandTestBase { @Test public void setAndgetbit() { - boolean bit = jedis.setbit("foo", 0, true); - assertEquals(false, bit); + boolean bit = jedis.setbit("foo", 0, true); + assertEquals(false, bit); - bit = jedis.getbit("foo", 0); - assertEquals(true, bit); + bit = jedis.getbit("foo", 0); + assertEquals(true, bit); - boolean bbit = jedis.setbit("bfoo".getBytes(), 0, "1".getBytes()); - assertFalse(bbit); + boolean bbit = jedis.setbit("bfoo".getBytes(), 0, "1".getBytes()); + assertFalse(bbit); - bbit = jedis.getbit("bfoo".getBytes(), 0); - assertTrue(bbit); + bbit = jedis.getbit("bfoo".getBytes(), 0); + assertTrue(bbit); } @Test public void setAndgetrange() { - jedis.set("key1", "Hello World"); - long reply = jedis.setrange("key1", 6, "Jedis"); - assertEquals(11, reply); + jedis.set("key1", "Hello World"); + long reply = jedis.setrange("key1", 6, "Jedis"); + assertEquals(11, reply); - assertEquals(jedis.get("key1"), "Hello Jedis"); + assertEquals(jedis.get("key1"), "Hello Jedis"); - assertEquals("Hello", jedis.getrange("key1", 0, 4)); - assertEquals("Jedis", jedis.getrange("key1", 6, 11)); + assertEquals("Hello", jedis.getrange("key1", 0, 4)); + assertEquals("Jedis", jedis.getrange("key1", 6, 11)); } @Test public void bitCount() { - jedis.del("foo"); + jedis.del("foo"); - jedis.setbit("foo", 16, true); - jedis.setbit("foo", 24, true); - jedis.setbit("foo", 40, true); - jedis.setbit("foo", 56, true); + jedis.setbit("foo", 16, true); + jedis.setbit("foo", 24, true); + jedis.setbit("foo", 40, true); + jedis.setbit("foo", 56, true); - long c4 = jedis.bitcount("foo"); - assertEquals(4, c4); + long c4 = jedis.bitcount("foo"); + assertEquals(4, c4); - long c3 = jedis.bitcount("foo", 2L, 5L); - assertEquals(3, c3); + long c3 = jedis.bitcount("foo", 2L, 5L); + assertEquals(3, c3); - jedis.del("foo"); + jedis.del("foo"); } @Test - public void bitOp() - { - jedis.set("key1", "\u0060"); - jedis.set("key2", "\u0044"); + public void bitOp() { + jedis.set("key1", "\u0060"); + jedis.set("key2", "\u0044"); - jedis.bitop(BitOP.AND, "resultAnd", "key1", "key2"); - String resultAnd = jedis.get("resultAnd"); - assertEquals("\u0040", resultAnd); + jedis.bitop(BitOP.AND, "resultAnd", "key1", "key2"); + String resultAnd = jedis.get("resultAnd"); + assertEquals("\u0040", resultAnd); - jedis.bitop(BitOP.OR, "resultOr", "key1", "key2"); - String resultOr = jedis.get("resultOr"); - assertEquals("\u0064", resultOr); + jedis.bitop(BitOP.OR, "resultOr", "key1", "key2"); + String resultOr = jedis.get("resultOr"); + assertEquals("\u0064", resultOr); - jedis.bitop(BitOP.XOR, "resultXor", "key1", "key2"); - String resultXor = jedis.get("resultXor"); - assertEquals("\u0024", resultXor); + jedis.bitop(BitOP.XOR, "resultXor", "key1", "key2"); + String resultXor = jedis.get("resultXor"); + assertEquals("\u0024", resultXor); - jedis.del("resultAnd"); - jedis.del("resultOr"); - jedis.del("resultXor"); - jedis.del("key1"); - jedis.del("key2"); + jedis.del("resultAnd"); + jedis.del("resultOr"); + jedis.del("resultXor"); + jedis.del("key1"); + jedis.del("key2"); } @Test - public void bitOpNot() - { - jedis.del("key"); - jedis.setbit("key", 0, true); - jedis.setbit("key", 4, true); + public void bitOpNot() { + jedis.del("key"); + jedis.setbit("key", 0, true); + jedis.setbit("key", 4, true); - jedis.bitop(BitOP.NOT, "resultNot", "key"); + jedis.bitop(BitOP.NOT, "resultNot", "key"); - String resultNot = jedis.get("resultNot"); - assertEquals("\u0077", resultNot); + String resultNot = jedis.get("resultNot"); + assertEquals("\u0077", resultNot); - jedis.del("key"); - jedis.del("resultNot"); + jedis.del("key"); + jedis.del("resultNot"); } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java index a7045a6..d2bc584 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ClusterCommandsTest.java @@ -37,42 +37,45 @@ public class ClusterCommandsTest extends JedisTestBase { node1.disconnect(); node2.disconnect(); } - + @AfterClass public static void removeSlots() throws InterruptedException { - //This is to wait for gossip to replicate data. - waitForEqualClusterSize(); - String[] nodes = node1.clusterNodes().split("\n"); - String node1Id = nodes[0].split(" ")[0]; - node1.clusterDelSlots(1,2,3,4,5,500); - node1.clusterSetSlotNode(5000, node1Id); - node1.clusterDelSlots(5000, 10000); - node1.clusterDelSlots(6000); - node2.clusterDelSlots(6000,1,2,3,4,5,500,5000); - try { - node2.clusterDelSlots(10000); - } catch (JedisDataException jde) { - //Do nothing, slot may or may not be assigned depending on gossip - } + // This is to wait for gossip to replicate data. + waitForEqualClusterSize(); + String[] nodes = node1.clusterNodes().split("\n"); + String node1Id = nodes[0].split(" ")[0]; + node1.clusterDelSlots(1, 2, 3, 4, 5, 500); + node1.clusterSetSlotNode(5000, node1Id); + node1.clusterDelSlots(5000, 10000); + node1.clusterDelSlots(6000); + node2.clusterDelSlots(6000, 1, 2, 3, 4, 5, 500, 5000); + try { + node2.clusterDelSlots(10000); + } catch (JedisDataException jde) { + // Do nothing, slot may or may not be assigned depending on gossip + } } private static void waitForEqualClusterSize() throws InterruptedException { - boolean notEqualSize = true; - while (notEqualSize) { - notEqualSize = getClusterAttribute(node1.clusterInfo(), "cluster_known_nodes") == getClusterAttribute(node2.clusterInfo(), "cluster_size") ? false : true; - } + boolean notEqualSize = true; + while (notEqualSize) { + notEqualSize = getClusterAttribute(node1.clusterInfo(), + "cluster_known_nodes") == getClusterAttribute( + node2.clusterInfo(), "cluster_size") ? false : true; } + } - private static int getClusterAttribute(String clusterInfo, String attributeName) { - for (String infoElement: clusterInfo.split("\n")) { - if (infoElement.contains(attributeName)) { - return Integer.valueOf(infoElement.split(":")[1].trim()); - } - } - return 0; + private static int getClusterAttribute(String clusterInfo, + String attributeName) { + for (String infoElement : clusterInfo.split("\n")) { + if (infoElement.contains(attributeName)) { + return Integer.valueOf(infoElement.split(":")[1].trim()); + } } + return 0; + } - @Test + @Test public void clusterNodes() { String nodes = node1.clusterNodes(); assertTrue(nodes.split("\n").length > 0); diff --git a/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java index c6d91c2..1201e8c 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ConnectionHandlingCommandsTest.java @@ -11,12 +11,12 @@ public class ConnectionHandlingCommandsTest extends JedisCommandTestBase { @Test public void quit() { - assertEquals("OK", jedis.quit()); + assertEquals("OK", jedis.quit()); } @Test public void binary_quit() { - BinaryJedis bj = new BinaryJedis(hnp.getHost()); - assertEquals("OK", bj.quit()); + BinaryJedis bj = new BinaryJedis(hnp.getHost()); + assertEquals("OK", bj.quit()); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java index bba56c1..59ec6bc 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ControlCommandsTest.java @@ -61,11 +61,11 @@ public class ControlCommandsTest extends JedisCommandTestBase { public void monitor() { new Thread(new Runnable() { public void run() { - try { - // sleep 100ms to make sure that monitor thread runs first - Thread.sleep(100); - } catch (InterruptedException e) { - } + try { + // sleep 100ms to make sure that monitor thread runs first + Thread.sleep(100); + } catch (InterruptedException e) { + } Jedis j = new Jedis("localhost"); j.auth("foobared"); for (int i = 0; i < 5; i++) { @@ -117,10 +117,10 @@ public class ControlCommandsTest extends JedisCommandTestBase { resp = jedis.debug(DebugParams.RELOAD()); assertNotNull(resp); } - + @Test public void waitReplicas() { Long replicas = jedis.waitReplicas(1, 100); - assertEquals(1, replicas.longValue()); + assertEquals(1, replicas.longValue()); } } \ No newline at end of file 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 c7ef2c7..1210259 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/HashesCommandsTest.java @@ -309,7 +309,8 @@ public class HashesCommandsTest extends JedisCommandTestBase { jedis.hset("foo", "b", "b"); jedis.hset("foo", "a", "a"); jedis.hset("foo", "aa", "aa"); - ScanResult> result = jedis.hscan("foo", 0, params); + ScanResult> result = jedis.hscan("foo", 0, + params); assertEquals(0, result.getCursor()); assertFalse(result.getResult().isEmpty()); @@ -324,7 +325,8 @@ public class HashesCommandsTest extends JedisCommandTestBase { jedis.hset("foo", "a" + i, "a" + i); } - ScanResult> result = jedis.hscan("foo", 0, params); + ScanResult> result = jedis.hscan("foo", 0, + params); assertFalse(result.getResult().isEmpty()); } diff --git a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java index bf787f9..c6f8d69 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java +++ b/src/test/java/redis/clients/jedis/tests/commands/JedisCommandTestBase.java @@ -20,77 +20,77 @@ public abstract class JedisCommandTestBase extends JedisTestBase { protected Jedis jedis; public JedisCommandTestBase() { - super(); + super(); } @Before public void setUp() throws Exception { - jedis = new Jedis(hnp.getHost(), hnp.getPort(), 500); - jedis.connect(); - jedis.auth("foobared"); - jedis.configSet("timeout", "300"); - jedis.flushAll(); + jedis = new Jedis(hnp.getHost(), hnp.getPort(), 500); + jedis.connect(); + jedis.auth("foobared"); + jedis.configSet("timeout", "300"); + jedis.flushAll(); } @After public void tearDown() { - jedis.disconnect(); + jedis.disconnect(); } protected Jedis createJedis() { - Jedis j = new Jedis(hnp.getHost(), hnp.getPort()); - j.connect(); - j.auth("foobared"); - j.flushAll(); - return j; + Jedis j = new Jedis(hnp.getHost(), hnp.getPort()); + j.connect(); + j.auth("foobared"); + j.flushAll(); + return j; } protected void assertEquals(List expected, List actual) { - assertEquals(expected.size(), actual.size()); - for (int n = 0; n < expected.size(); n++) { - assertArrayEquals(expected.get(n), actual.get(n)); - } + assertEquals(expected.size(), actual.size()); + for (int n = 0; n < expected.size(); n++) { + assertArrayEquals(expected.get(n), actual.get(n)); + } } protected void assertEquals(Set expected, Set actual) { - assertEquals(expected.size(), actual.size()); - Iterator e = expected.iterator(); - while (e.hasNext()) { - byte[] next = e.next(); - boolean contained = false; - for (byte[] element : expected) { - if (Arrays.equals(next, element)) { - contained = true; - } - } - if (!contained) { - throw new ComparisonFailure("element is missing", - Arrays.toString(next), actual.toString()); - } - } + assertEquals(expected.size(), actual.size()); + Iterator e = expected.iterator(); + while (e.hasNext()) { + byte[] next = e.next(); + boolean contained = false; + for (byte[] element : expected) { + if (Arrays.equals(next, element)) { + contained = true; + } + } + if (!contained) { + throw new ComparisonFailure("element is missing", + Arrays.toString(next), actual.toString()); + } + } } protected boolean arrayContains(List array, byte[] expected) { - for (byte[] a : array) { - try { - assertArrayEquals(a, expected); - return true; - } catch (AssertionError e) { + for (byte[] a : array) { + try { + assertArrayEquals(a, expected); + return true; + } catch (AssertionError e) { - } - } - return false; + } + } + return false; } protected boolean setContains(Set set, byte[] expected) { - for (byte[] a : set) { - try { - assertArrayEquals(a, expected); - return true; - } catch (AssertionError e) { + for (byte[] a : set) { + try { + assertArrayEquals(a, expected); + return true; + } catch (AssertionError e) { - } - } - return false; + } + } + return false; } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java index 296877b..ce157d8 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ListCommandsTest.java @@ -26,561 +26,559 @@ public class ListCommandsTest extends JedisCommandTestBase { @Test public void rpush() { - long size = jedis.rpush("foo", "bar"); - assertEquals(1, size); - size = jedis.rpush("foo", "foo"); - assertEquals(2, size); - size = jedis.rpush("foo", "bar", "foo"); - assertEquals(4, size); - + long size = jedis.rpush("foo", "bar"); + assertEquals(1, size); + size = jedis.rpush("foo", "foo"); + assertEquals(2, size); + size = jedis.rpush("foo", "bar", "foo"); + assertEquals(4, size); - // Binary - long bsize = jedis.rpush(bfoo, bbar); - assertEquals(1, bsize); - bsize = jedis.rpush(bfoo, bfoo); - assertEquals(2, bsize); - bsize = jedis.rpush(bfoo, bbar, bfoo); - assertEquals(4, bsize); + // Binary + long bsize = jedis.rpush(bfoo, bbar); + assertEquals(1, bsize); + bsize = jedis.rpush(bfoo, bfoo); + assertEquals(2, bsize); + bsize = jedis.rpush(bfoo, bbar, bfoo); + assertEquals(4, bsize); } @Test public void lpush() { - long size = jedis.lpush("foo", "bar"); - assertEquals(1, size); - size = jedis.lpush("foo", "foo"); - assertEquals(2, size); - size = jedis.lpush("foo", "bar", "foo"); - assertEquals(4, size); + long size = jedis.lpush("foo", "bar"); + assertEquals(1, size); + size = jedis.lpush("foo", "foo"); + assertEquals(2, size); + size = jedis.lpush("foo", "bar", "foo"); + assertEquals(4, size); - // Binary - long bsize = jedis.lpush(bfoo, bbar); - assertEquals(1, bsize); - bsize = jedis.lpush(bfoo, bfoo); - assertEquals(2, bsize); - bsize = jedis.lpush(bfoo, bbar, bfoo); - assertEquals(4, bsize); + // Binary + long bsize = jedis.lpush(bfoo, bbar); + assertEquals(1, bsize); + bsize = jedis.lpush(bfoo, bfoo); + assertEquals(2, bsize); + bsize = jedis.lpush(bfoo, bbar, bfoo); + assertEquals(4, bsize); } @Test public void llen() { - assertEquals(0, jedis.llen("foo").intValue()); - jedis.lpush("foo", "bar"); - jedis.lpush("foo", "car"); - assertEquals(2, jedis.llen("foo").intValue()); + assertEquals(0, jedis.llen("foo").intValue()); + jedis.lpush("foo", "bar"); + jedis.lpush("foo", "car"); + assertEquals(2, jedis.llen("foo").intValue()); - // Binary - assertEquals(0, jedis.llen(bfoo).intValue()); - jedis.lpush(bfoo, bbar); - jedis.lpush(bfoo, bcar); - assertEquals(2, jedis.llen(bfoo).intValue()); + // Binary + assertEquals(0, jedis.llen(bfoo).intValue()); + jedis.lpush(bfoo, bbar); + jedis.lpush(bfoo, bcar); + assertEquals(2, jedis.llen(bfoo).intValue()); } @Test public void llenNotOnList() { - try { - jedis.set("foo", "bar"); - jedis.llen("foo"); - fail("JedisDataException expected"); - } catch (final JedisDataException e) { - } + try { + jedis.set("foo", "bar"); + jedis.llen("foo"); + fail("JedisDataException expected"); + } catch (final JedisDataException e) { + } - // Binary - try { - jedis.set(bfoo, bbar); - jedis.llen(bfoo); - fail("JedisDataException expected"); - } catch (final JedisDataException e) { - } + // Binary + try { + jedis.set(bfoo, bbar); + jedis.llen(bfoo); + fail("JedisDataException expected"); + } catch (final JedisDataException e) { + } } @Test public void lrange() { - jedis.rpush("foo", "a"); - jedis.rpush("foo", "b"); - jedis.rpush("foo", "c"); + jedis.rpush("foo", "a"); + jedis.rpush("foo", "b"); + jedis.rpush("foo", "c"); - List expected = new ArrayList(); - expected.add("a"); - expected.add("b"); - expected.add("c"); + List expected = new ArrayList(); + expected.add("a"); + expected.add("b"); + expected.add("c"); - List range = jedis.lrange("foo", 0, 2); - assertEquals(expected, range); + List range = jedis.lrange("foo", 0, 2); + assertEquals(expected, range); - range = jedis.lrange("foo", 0, 20); - assertEquals(expected, range); + range = jedis.lrange("foo", 0, 20); + assertEquals(expected, range); - expected = new ArrayList(); - expected.add("b"); - expected.add("c"); + expected = new ArrayList(); + expected.add("b"); + expected.add("c"); - range = jedis.lrange("foo", 1, 2); - assertEquals(expected, range); + range = jedis.lrange("foo", 1, 2); + assertEquals(expected, range); - expected = new ArrayList(); - range = jedis.lrange("foo", 2, 1); - assertEquals(expected, range); + expected = new ArrayList(); + range = jedis.lrange("foo", 2, 1); + assertEquals(expected, range); - // Binary - jedis.rpush(bfoo, bA); - jedis.rpush(bfoo, bB); - jedis.rpush(bfoo, bC); + // Binary + jedis.rpush(bfoo, bA); + jedis.rpush(bfoo, bB); + jedis.rpush(bfoo, bC); - List bexpected = new ArrayList(); - bexpected.add(bA); - bexpected.add(bB); - bexpected.add(bC); + List bexpected = new ArrayList(); + bexpected.add(bA); + bexpected.add(bB); + bexpected.add(bC); - List brange = jedis.lrange(bfoo, 0, 2); - assertEquals(bexpected, brange); + List brange = jedis.lrange(bfoo, 0, 2); + assertEquals(bexpected, brange); - brange = jedis.lrange(bfoo, 0, 20); - assertEquals(bexpected, brange); + brange = jedis.lrange(bfoo, 0, 20); + assertEquals(bexpected, brange); - bexpected = new ArrayList(); - bexpected.add(bB); - bexpected.add(bC); + bexpected = new ArrayList(); + bexpected.add(bB); + bexpected.add(bC); - brange = jedis.lrange(bfoo, 1, 2); - assertEquals(bexpected, brange); + brange = jedis.lrange(bfoo, 1, 2); + assertEquals(bexpected, brange); - bexpected = new ArrayList(); - brange = jedis.lrange(bfoo, 2, 1); - assertEquals(bexpected, brange); + bexpected = new ArrayList(); + brange = jedis.lrange(bfoo, 2, 1); + assertEquals(bexpected, brange); } @Test public void ltrim() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "3"); - String status = jedis.ltrim("foo", 0, 1); + jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "3"); + String status = jedis.ltrim("foo", 0, 1); - List expected = new ArrayList(); - expected.add("3"); - expected.add("2"); + List expected = new ArrayList(); + expected.add("3"); + expected.add("2"); - assertEquals("OK", status); - assertEquals(2, jedis.llen("foo").intValue()); - assertEquals(expected, jedis.lrange("foo", 0, 100)); + assertEquals("OK", status); + assertEquals(2, jedis.llen("foo").intValue()); + assertEquals(expected, jedis.lrange("foo", 0, 100)); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b3); - String bstatus = jedis.ltrim(bfoo, 0, 1); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b3); + String bstatus = jedis.ltrim(bfoo, 0, 1); - List bexpected = new ArrayList(); - bexpected.add(b3); - bexpected.add(b2); + List bexpected = new ArrayList(); + bexpected.add(b3); + bexpected.add(b2); - assertEquals("OK", bstatus); - assertEquals(2, jedis.llen(bfoo).intValue()); - assertEquals(bexpected, jedis.lrange(bfoo, 0, 100)); + assertEquals("OK", bstatus); + assertEquals(2, jedis.llen(bfoo).intValue()); + assertEquals(bexpected, jedis.lrange(bfoo, 0, 100)); } @Test public void lindex() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "3"); + jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "3"); - List expected = new ArrayList(); - expected.add("3"); - expected.add("bar"); - expected.add("1"); + List expected = new ArrayList(); + expected.add("3"); + expected.add("bar"); + expected.add("1"); - String status = jedis.lset("foo", 1, "bar"); + String status = jedis.lset("foo", 1, "bar"); - assertEquals("OK", status); - assertEquals(expected, jedis.lrange("foo", 0, 100)); + assertEquals("OK", status); + assertEquals(expected, jedis.lrange("foo", 0, 100)); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b3); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b3); - List bexpected = new ArrayList(); - bexpected.add(b3); - bexpected.add(bbar); - bexpected.add(b1); + List bexpected = new ArrayList(); + bexpected.add(b3); + bexpected.add(bbar); + bexpected.add(b1); - String bstatus = jedis.lset(bfoo, 1, bbar); + String bstatus = jedis.lset(bfoo, 1, bbar); - assertEquals("OK", bstatus); - assertEquals(bexpected, jedis.lrange(bfoo, 0, 100)); + assertEquals("OK", bstatus); + assertEquals(bexpected, jedis.lrange(bfoo, 0, 100)); } @Test public void lset() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "3"); + jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "3"); - assertEquals("3", jedis.lindex("foo", 0)); - assertEquals(null, jedis.lindex("foo", 100)); + assertEquals("3", jedis.lindex("foo", 0)); + assertEquals(null, jedis.lindex("foo", 100)); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b3); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b3); - assertArrayEquals(b3, jedis.lindex(bfoo, 0)); - assertEquals(null, jedis.lindex(bfoo, 100)); + assertArrayEquals(b3, jedis.lindex(bfoo, 0)); + assertEquals(null, jedis.lindex(bfoo, 100)); } @Test public void lrem() { - jedis.lpush("foo", "hello"); - jedis.lpush("foo", "hello"); - jedis.lpush("foo", "x"); - jedis.lpush("foo", "hello"); - jedis.lpush("foo", "c"); - jedis.lpush("foo", "b"); - jedis.lpush("foo", "a"); + jedis.lpush("foo", "hello"); + jedis.lpush("foo", "hello"); + jedis.lpush("foo", "x"); + jedis.lpush("foo", "hello"); + jedis.lpush("foo", "c"); + jedis.lpush("foo", "b"); + jedis.lpush("foo", "a"); - long count = jedis.lrem("foo", -2, "hello"); + long count = jedis.lrem("foo", -2, "hello"); - List expected = new ArrayList(); - expected.add("a"); - expected.add("b"); - expected.add("c"); - expected.add("hello"); - expected.add("x"); + List expected = new ArrayList(); + expected.add("a"); + expected.add("b"); + expected.add("c"); + expected.add("hello"); + expected.add("x"); - assertEquals(2, count); - assertEquals(expected, jedis.lrange("foo", 0, 1000)); - assertEquals(0, jedis.lrem("bar", 100, "foo").intValue()); + assertEquals(2, count); + assertEquals(expected, jedis.lrange("foo", 0, 1000)); + assertEquals(0, jedis.lrem("bar", 100, "foo").intValue()); - // Binary - jedis.lpush(bfoo, bhello); - jedis.lpush(bfoo, bhello); - jedis.lpush(bfoo, bx); - jedis.lpush(bfoo, bhello); - jedis.lpush(bfoo, bC); - jedis.lpush(bfoo, bB); - jedis.lpush(bfoo, bA); + // Binary + jedis.lpush(bfoo, bhello); + jedis.lpush(bfoo, bhello); + jedis.lpush(bfoo, bx); + jedis.lpush(bfoo, bhello); + jedis.lpush(bfoo, bC); + jedis.lpush(bfoo, bB); + jedis.lpush(bfoo, bA); - long bcount = jedis.lrem(bfoo, -2, bhello); + long bcount = jedis.lrem(bfoo, -2, bhello); - List bexpected = new ArrayList(); - bexpected.add(bA); - bexpected.add(bB); - bexpected.add(bC); - bexpected.add(bhello); - bexpected.add(bx); + List bexpected = new ArrayList(); + bexpected.add(bA); + bexpected.add(bB); + bexpected.add(bC); + bexpected.add(bhello); + bexpected.add(bx); - assertEquals(2, bcount); - assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); - assertEquals(0, jedis.lrem(bbar, 100, bfoo).intValue()); + assertEquals(2, bcount); + assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); + assertEquals(0, jedis.lrem(bbar, 100, bfoo).intValue()); } @Test public void lpop() { - jedis.rpush("foo", "a"); - jedis.rpush("foo", "b"); - jedis.rpush("foo", "c"); + jedis.rpush("foo", "a"); + jedis.rpush("foo", "b"); + jedis.rpush("foo", "c"); - String element = jedis.lpop("foo"); - assertEquals("a", element); + String element = jedis.lpop("foo"); + assertEquals("a", element); - List expected = new ArrayList(); - expected.add("b"); - expected.add("c"); + List expected = new ArrayList(); + expected.add("b"); + expected.add("c"); - assertEquals(expected, jedis.lrange("foo", 0, 1000)); - jedis.lpop("foo"); - jedis.lpop("foo"); + assertEquals(expected, jedis.lrange("foo", 0, 1000)); + jedis.lpop("foo"); + jedis.lpop("foo"); - element = jedis.lpop("foo"); - assertEquals(null, element); + element = jedis.lpop("foo"); + assertEquals(null, element); - // Binary - jedis.rpush(bfoo, bA); - jedis.rpush(bfoo, bB); - jedis.rpush(bfoo, bC); + // Binary + jedis.rpush(bfoo, bA); + jedis.rpush(bfoo, bB); + jedis.rpush(bfoo, bC); - byte[] belement = jedis.lpop(bfoo); - assertArrayEquals(bA, belement); + byte[] belement = jedis.lpop(bfoo); + assertArrayEquals(bA, belement); - List bexpected = new ArrayList(); - bexpected.add(bB); - bexpected.add(bC); + List bexpected = new ArrayList(); + bexpected.add(bB); + bexpected.add(bC); - assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); - jedis.lpop(bfoo); - jedis.lpop(bfoo); + assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); + jedis.lpop(bfoo); + jedis.lpop(bfoo); - belement = jedis.lpop(bfoo); - assertEquals(null, belement); + belement = jedis.lpop(bfoo); + assertEquals(null, belement); } @Test public void rpop() { - jedis.rpush("foo", "a"); - jedis.rpush("foo", "b"); - jedis.rpush("foo", "c"); + jedis.rpush("foo", "a"); + jedis.rpush("foo", "b"); + jedis.rpush("foo", "c"); - String element = jedis.rpop("foo"); - assertEquals("c", element); + String element = jedis.rpop("foo"); + assertEquals("c", element); - List expected = new ArrayList(); - expected.add("a"); - expected.add("b"); + List expected = new ArrayList(); + expected.add("a"); + expected.add("b"); - assertEquals(expected, jedis.lrange("foo", 0, 1000)); - jedis.rpop("foo"); - jedis.rpop("foo"); + assertEquals(expected, jedis.lrange("foo", 0, 1000)); + jedis.rpop("foo"); + jedis.rpop("foo"); - element = jedis.rpop("foo"); - assertEquals(null, element); + element = jedis.rpop("foo"); + assertEquals(null, element); - // Binary - jedis.rpush(bfoo, bA); - jedis.rpush(bfoo, bB); - jedis.rpush(bfoo, bC); + // Binary + jedis.rpush(bfoo, bA); + jedis.rpush(bfoo, bB); + jedis.rpush(bfoo, bC); - byte[] belement = jedis.rpop(bfoo); - assertArrayEquals(bC, belement); + byte[] belement = jedis.rpop(bfoo); + assertArrayEquals(bC, belement); - List bexpected = new ArrayList(); - bexpected.add(bA); - bexpected.add(bB); + List bexpected = new ArrayList(); + bexpected.add(bA); + bexpected.add(bB); - assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); - jedis.rpop(bfoo); - jedis.rpop(bfoo); + assertEquals(bexpected, jedis.lrange(bfoo, 0, 1000)); + jedis.rpop(bfoo); + jedis.rpop(bfoo); - belement = jedis.rpop(bfoo); - assertEquals(null, belement); + belement = jedis.rpop(bfoo); + assertEquals(null, belement); } @Test public void rpoplpush() { - jedis.rpush("foo", "a"); - jedis.rpush("foo", "b"); - jedis.rpush("foo", "c"); + jedis.rpush("foo", "a"); + jedis.rpush("foo", "b"); + jedis.rpush("foo", "c"); - jedis.rpush("dst", "foo"); - jedis.rpush("dst", "bar"); + jedis.rpush("dst", "foo"); + jedis.rpush("dst", "bar"); - String element = jedis.rpoplpush("foo", "dst"); + String element = jedis.rpoplpush("foo", "dst"); - assertEquals("c", element); + assertEquals("c", element); - List srcExpected = new ArrayList(); - srcExpected.add("a"); - srcExpected.add("b"); + List srcExpected = new ArrayList(); + srcExpected.add("a"); + srcExpected.add("b"); - List dstExpected = new ArrayList(); - dstExpected.add("c"); - dstExpected.add("foo"); - dstExpected.add("bar"); + List dstExpected = new ArrayList(); + dstExpected.add("c"); + dstExpected.add("foo"); + dstExpected.add("bar"); - assertEquals(srcExpected, jedis.lrange("foo", 0, 1000)); - assertEquals(dstExpected, jedis.lrange("dst", 0, 1000)); + assertEquals(srcExpected, jedis.lrange("foo", 0, 1000)); + assertEquals(dstExpected, jedis.lrange("dst", 0, 1000)); - // Binary - jedis.rpush(bfoo, bA); - jedis.rpush(bfoo, bB); - jedis.rpush(bfoo, bC); + // Binary + jedis.rpush(bfoo, bA); + jedis.rpush(bfoo, bB); + jedis.rpush(bfoo, bC); - jedis.rpush(bdst, bfoo); - jedis.rpush(bdst, bbar); + jedis.rpush(bdst, bfoo); + jedis.rpush(bdst, bbar); - byte[] belement = jedis.rpoplpush(bfoo, bdst); + byte[] belement = jedis.rpoplpush(bfoo, bdst); - assertArrayEquals(bC, belement); + assertArrayEquals(bC, belement); - List bsrcExpected = new ArrayList(); - bsrcExpected.add(bA); - bsrcExpected.add(bB); + List bsrcExpected = new ArrayList(); + bsrcExpected.add(bA); + bsrcExpected.add(bB); - List bdstExpected = new ArrayList(); - bdstExpected.add(bC); - bdstExpected.add(bfoo); - bdstExpected.add(bbar); + List bdstExpected = new ArrayList(); + bdstExpected.add(bC); + bdstExpected.add(bfoo); + bdstExpected.add(bbar); - assertEquals(bsrcExpected, jedis.lrange(bfoo, 0, 1000)); - assertEquals(bdstExpected, jedis.lrange(bdst, 0, 1000)); + assertEquals(bsrcExpected, jedis.lrange(bfoo, 0, 1000)); + assertEquals(bdstExpected, jedis.lrange(bdst, 0, 1000)); } @Test public void blpop() throws InterruptedException { - List result = jedis.blpop(1, "foo"); - assertNull(result); + List result = jedis.blpop(1, "foo"); + assertNull(result); - jedis.lpush("foo", "bar"); - result = jedis.blpop(1, "foo"); + jedis.lpush("foo", "bar"); + result = jedis.blpop(1, "foo"); - assertNotNull(result); - assertEquals(2, result.size()); - assertEquals("foo", result.get(0)); - assertEquals("bar", result.get(1)); + assertNotNull(result); + assertEquals(2, result.size()); + assertEquals("foo", result.get(0)); + assertEquals("bar", result.get(1)); - // Binary - jedis.lpush(bfoo, bbar); - List bresult = jedis.blpop(1, bfoo); + // Binary + jedis.lpush(bfoo, bbar); + List bresult = jedis.blpop(1, bfoo); - assertNotNull(bresult); - assertEquals(2, bresult.size()); - assertArrayEquals(bfoo, bresult.get(0)); - assertArrayEquals(bbar, bresult.get(1)); + assertNotNull(bresult); + assertEquals(2, bresult.size()); + assertArrayEquals(bfoo, bresult.get(0)); + assertArrayEquals(bbar, bresult.get(1)); } @Test public void brpop() throws InterruptedException { - List result = jedis.brpop(1, "foo"); - assertNull(result); + List result = jedis.brpop(1, "foo"); + assertNull(result); + jedis.lpush("foo", "bar"); + result = jedis.brpop(1, "foo"); + assertNotNull(result); + assertEquals(2, result.size()); + assertEquals("foo", result.get(0)); + assertEquals("bar", result.get(1)); - jedis.lpush("foo", "bar"); - result = jedis.brpop(1, "foo"); - assertNotNull(result); - assertEquals(2, result.size()); - assertEquals("foo", result.get(0)); - assertEquals("bar", result.get(1)); + // Binary - // Binary - - jedis.lpush(bfoo, bbar); - List bresult = jedis.brpop(1, bfoo); - assertNotNull(bresult); - assertEquals(2, bresult.size()); - assertArrayEquals(bfoo, bresult.get(0)); - assertArrayEquals(bbar, bresult.get(1)); + jedis.lpush(bfoo, bbar); + List bresult = jedis.brpop(1, bfoo); + assertNotNull(bresult); + assertEquals(2, bresult.size()); + assertArrayEquals(bfoo, bresult.get(0)); + assertArrayEquals(bbar, bresult.get(1)); } @Test public void lpushx() { - long status = jedis.lpushx("foo", "bar"); - assertEquals(0, status); + long status = jedis.lpushx("foo", "bar"); + assertEquals(0, status); - jedis.lpush("foo", "a"); - status = jedis.lpushx("foo", "b"); - assertEquals(2, status); + jedis.lpush("foo", "a"); + status = jedis.lpushx("foo", "b"); + assertEquals(2, status); - // Binary - long bstatus = jedis.lpushx(bfoo, bbar); - assertEquals(0, bstatus); + // Binary + long bstatus = jedis.lpushx(bfoo, bbar); + assertEquals(0, bstatus); - jedis.lpush(bfoo, bA); - bstatus = jedis.lpushx(bfoo, bB); - assertEquals(2, bstatus); + jedis.lpush(bfoo, bA); + bstatus = jedis.lpushx(bfoo, bB); + assertEquals(2, bstatus); } @Test public void rpushx() { - long status = jedis.rpushx("foo", "bar"); - assertEquals(0, status); + long status = jedis.rpushx("foo", "bar"); + assertEquals(0, status); - jedis.lpush("foo", "a"); - status = jedis.rpushx("foo", "b"); - assertEquals(2, status); + jedis.lpush("foo", "a"); + status = jedis.rpushx("foo", "b"); + assertEquals(2, status); - // Binary - long bstatus = jedis.rpushx(bfoo, bbar); - assertEquals(0, bstatus); + // Binary + long bstatus = jedis.rpushx(bfoo, bbar); + assertEquals(0, bstatus); - jedis.lpush(bfoo, bA); - bstatus = jedis.rpushx(bfoo, bB); - assertEquals(2, bstatus); + jedis.lpush(bfoo, bA); + bstatus = jedis.rpushx(bfoo, bB); + assertEquals(2, bstatus); } @Test public void linsert() { - long status = jedis.linsert("foo", Client.LIST_POSITION.BEFORE, "bar", - "car"); - assertEquals(0, status); + long status = jedis.linsert("foo", Client.LIST_POSITION.BEFORE, "bar", + "car"); + assertEquals(0, status); - jedis.lpush("foo", "a"); - status = jedis.linsert("foo", Client.LIST_POSITION.AFTER, "a", "b"); - assertEquals(2, status); + jedis.lpush("foo", "a"); + status = jedis.linsert("foo", Client.LIST_POSITION.AFTER, "a", "b"); + assertEquals(2, status); - List actual = jedis.lrange("foo", 0, 100); - List expected = new ArrayList(); - expected.add("a"); - expected.add("b"); + List actual = jedis.lrange("foo", 0, 100); + List expected = new ArrayList(); + expected.add("a"); + expected.add("b"); - assertEquals(expected, actual); + assertEquals(expected, actual); - status = jedis - .linsert("foo", Client.LIST_POSITION.BEFORE, "bar", "car"); - assertEquals(-1, status); + status = jedis + .linsert("foo", Client.LIST_POSITION.BEFORE, "bar", "car"); + assertEquals(-1, status); - // Binary - long bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.BEFORE, bbar, - bcar); - assertEquals(0, bstatus); + // Binary + long bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.BEFORE, bbar, + bcar); + assertEquals(0, bstatus); - jedis.lpush(bfoo, bA); - bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.AFTER, bA, bB); - assertEquals(2, bstatus); + jedis.lpush(bfoo, bA); + bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.AFTER, bA, bB); + assertEquals(2, bstatus); - List bactual = jedis.lrange(bfoo, 0, 100); - List bexpected = new ArrayList(); - bexpected.add(bA); - bexpected.add(bB); + List bactual = jedis.lrange(bfoo, 0, 100); + List bexpected = new ArrayList(); + bexpected.add(bA); + bexpected.add(bB); - assertEquals(bexpected, bactual); + assertEquals(bexpected, bactual); - bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.BEFORE, bbar, bcar); - assertEquals(-1, bstatus); + bstatus = jedis.linsert(bfoo, Client.LIST_POSITION.BEFORE, bbar, bcar); + assertEquals(-1, bstatus); } @Test public void brpoplpush() { - (new Thread(new Runnable() { - public void run() { - try { - Thread.sleep(100); - Jedis j = createJedis(); - j.lpush("foo", "a"); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - })).start(); + (new Thread(new Runnable() { + public void run() { + try { + Thread.sleep(100); + Jedis j = createJedis(); + j.lpush("foo", "a"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + })).start(); - String element = jedis.brpoplpush("foo", "bar", 0); + String element = jedis.brpoplpush("foo", "bar", 0); - assertEquals("a", element); - assertEquals(1, jedis.llen("bar").longValue()); - assertEquals("a", jedis.lrange("bar", 0, -1).get(0)); + assertEquals("a", element); + assertEquals(1, jedis.llen("bar").longValue()); + assertEquals("a", jedis.lrange("bar", 0, -1).get(0)); - (new Thread(new Runnable() { - public void run() { - try { - Thread.sleep(100); - Jedis j = createJedis(); - j.lpush("foo", "a"); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - })).start(); + (new Thread(new Runnable() { + public void run() { + try { + Thread.sleep(100); + Jedis j = createJedis(); + j.lpush("foo", "a"); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + })).start(); - byte[] brpoplpush = jedis.brpoplpush("foo".getBytes(), - "bar".getBytes(), 0); + byte[] brpoplpush = jedis.brpoplpush("foo".getBytes(), + "bar".getBytes(), 0); - assertTrue(Arrays.equals("a".getBytes(), brpoplpush)); - assertEquals(1, jedis.llen("bar").longValue()); - assertEquals("a", jedis.lrange("bar", 0, -1).get(0)); + assertTrue(Arrays.equals("a".getBytes(), brpoplpush)); + assertEquals(1, jedis.llen("bar").longValue()); + assertEquals("a", jedis.lrange("bar", 0, -1).get(0)); } } diff --git a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java index 3ea14d5..d0d8353 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java @@ -5,14 +5,12 @@ import java.net.UnknownHostException; import java.util.Arrays; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Ignore; import org.junit.Test; import redis.clients.jedis.BinaryJedisPubSub; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.exceptions.JedisConnectionException; -import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.util.SafeEncoder; public class PublishSubscribeCommandsTest extends JedisCommandTestBase { @@ -29,7 +27,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { }); t.start(); } - + @Test public void subscribe() throws InterruptedException { jedis.subscribe(new JedisPubSub() { @@ -42,8 +40,8 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { public void onSubscribe(String channel, int subscribedChannels) { assertEquals("foo", channel); assertEquals(1, subscribedChannels); - - //now that I'm subscribed... publish + + // now that I'm subscribed... publish publishOne("foo", "exit"); } @@ -140,7 +138,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { } public void onPSubscribe(String pattern, int subscribedChannels) { - publishOne(pattern.replace("*", "123"), "exit"); + publishOne(pattern.replace("*", "123"), "exit"); } public void onPUnsubscribe(String pattern, int subscribedChannels) { @@ -264,7 +262,8 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { public void onPSubscribe(byte[] pattern, int subscribedChannels) { assertTrue(Arrays.equals(SafeEncoder.encode("foo.*"), pattern)); assertEquals(1, subscribedChannels); - publishOne(SafeEncoder.encode(pattern).replace("*", "bar"), "exit"); + publishOne(SafeEncoder.encode(pattern).replace("*", "bar"), + "exit"); } public void onPUnsubscribe(byte[] pattern, int subscribedChannels) { @@ -297,7 +296,8 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { } public void onPSubscribe(byte[] pattern, int subscribedChannels) { - publishOne(SafeEncoder.encode(pattern).replace("*", "123"), "exit"); + publishOne(SafeEncoder.encode(pattern).replace("*", "123"), + "exit"); } public void onPUnsubscribe(byte[] pattern, int subscribedChannels) { @@ -320,8 +320,8 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { public void onSubscribe(byte[] channel, int subscribedChannels) { publishOne(SafeEncoder.encode(channel), "exit"); - - if(!SafeEncoder.encode(channel).equals("bar")) { + + if (!SafeEncoder.encode(channel).equals("bar")) { this.subscribe(SafeEncoder.encode("bar")); this.psubscribe(SafeEncoder.encode("bar.*")); } @@ -331,7 +331,8 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { } public void onPSubscribe(byte[] pattern, int subscribedChannels) { - publishOne(SafeEncoder.encode(pattern).replace("*", "123"), "exit"); + publishOne(SafeEncoder.encode(pattern).replace("*", "123"), + "exit"); } public void onPUnsubscribe(byte[] pattern, int subscribedChannels) { diff --git a/src/test/java/redis/clients/jedis/tests/commands/ScriptingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/ScriptingCommandsTest.java index aca4899..83b0d04 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/ScriptingCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/ScriptingCommandsTest.java @@ -33,31 +33,33 @@ public class ScriptingCommandsTest extends JedisCommandTestBase { assertEquals("second", response.get(3)); assertEquals("third", response.get(4)); } - + @SuppressWarnings("unchecked") @Test public void evalMultiBulkWithBinaryJedis() { - String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2],ARGV[3]}"; - List keys = new ArrayList(); - keys.add("key1".getBytes()); - keys.add("key2".getBytes()); + String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2],ARGV[3]}"; + List keys = new ArrayList(); + keys.add("key1".getBytes()); + keys.add("key2".getBytes()); - List args = new ArrayList(); - args.add("first".getBytes()); - args.add("second".getBytes()); - args.add("third".getBytes()); + List args = new ArrayList(); + args.add("first".getBytes()); + args.add("second".getBytes()); + args.add("third".getBytes()); - BinaryJedis binaryJedis = new BinaryJedis(hnp.getHost(), hnp.getPort(), 500); - binaryJedis.connect(); - binaryJedis.auth("foobared"); - - List responses = (List) binaryJedis.eval(script.getBytes(), keys, args); - assertEquals(5, responses.size()); - assertEquals("key1", new String(responses.get(0))); - assertEquals("key2", new String(responses.get(1))); - assertEquals("first", new String(responses.get(2))); - assertEquals("second", new String(responses.get(3))); - assertEquals("third", new String(responses.get(4))); + BinaryJedis binaryJedis = new BinaryJedis(hnp.getHost(), hnp.getPort(), + 500); + binaryJedis.connect(); + binaryJedis.auth("foobared"); + + List responses = (List) binaryJedis.eval( + script.getBytes(), keys, args); + assertEquals(5, responses.size()); + assertEquals("key1", new String(responses.get(0))); + assertEquals("key2", new String(responses.get(1))); + assertEquals("first", new String(responses.get(2))); + assertEquals("second", new String(responses.get(3))); + assertEquals("third", new String(responses.get(4))); } @Test @@ -166,26 +168,27 @@ public class ScriptingCommandsTest extends JedisCommandTestBase { } } - @Test - public void scriptEvalReturnNullValues() { - String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"; - List results = (List) jedis.eval(script, 2, "key1", "key2", "1", "2"); - assertEquals(results.get(0), "key1"); - assertEquals(results.get(1), "key2"); - assertEquals(results.get(2), "1"); - assertEquals(results.get(3), "2"); - } + @Test + public void scriptEvalReturnNullValues() { + String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"; + List results = (List) jedis.eval(script, 2, "key1", + "key2", "1", "2"); + assertEquals(results.get(0), "key1"); + assertEquals(results.get(1), "key2"); + assertEquals(results.get(2), "1"); + assertEquals(results.get(3), "2"); + } - @Test - public void scriptEvalShaReturnNullValues() { - String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"; - String sha = jedis.scriptLoad(script); - List results = (List) jedis.evalsha(sha, 2, "key1", "key2", "1", "2"); - assertEquals(results.get(0), "key1"); - assertEquals(results.get(1), "key2"); - assertEquals(results.get(2), "1"); - assertEquals(results.get(3), "2"); + @Test + public void scriptEvalShaReturnNullValues() { + String script = "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"; + String sha = jedis.scriptLoad(script); + List results = (List) jedis.evalsha(sha, 2, "key1", + "key2", "1", "2"); + assertEquals(results.get(0), "key1"); + assertEquals(results.get(1), "key2"); + assertEquals(results.get(2), "1"); + assertEquals(results.get(3), "2"); - } + } } - diff --git a/src/test/java/redis/clients/jedis/tests/commands/SetCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SetCommandsTest.java index 7d6930b..80e59ad 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SetCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SetCommandsTest.java @@ -2,7 +2,6 @@ package redis.clients.jedis.tests.commands; import java.util.Arrays; import java.util.HashSet; -import java.util.Map; import java.util.Set; import org.junit.Test; @@ -22,443 +21,442 @@ public class SetCommandsTest extends JedisCommandTestBase { @Test public void sadd() { - long status = jedis.sadd("foo", "a"); - assertEquals(1, status); + long status = jedis.sadd("foo", "a"); + assertEquals(1, status); - status = jedis.sadd("foo", "a"); - assertEquals(0, status); + status = jedis.sadd("foo", "a"); + assertEquals(0, status); - long bstatus = jedis.sadd(bfoo, ba); - assertEquals(1, bstatus); + long bstatus = jedis.sadd(bfoo, ba); + assertEquals(1, bstatus); - bstatus = jedis.sadd(bfoo, ba); - assertEquals(0, bstatus); + bstatus = jedis.sadd(bfoo, ba); + assertEquals(0, bstatus); } @Test public void smembers() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - Set expected = new HashSet(); - expected.add("a"); - expected.add("b"); + Set expected = new HashSet(); + expected.add("a"); + expected.add("b"); - Set members = jedis.smembers("foo"); + Set members = jedis.smembers("foo"); - assertEquals(expected, members); + assertEquals(expected, members); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - Set bexpected = new HashSet(); - bexpected.add(bb); - bexpected.add(ba); + Set bexpected = new HashSet(); + bexpected.add(bb); + bexpected.add(ba); - Set bmembers = jedis.smembers(bfoo); + Set bmembers = jedis.smembers(bfoo); - assertEquals(bexpected, bmembers); + assertEquals(bexpected, bmembers); } - + @Test public void srem() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - long status = jedis.srem("foo", "a"); + long status = jedis.srem("foo", "a"); - Set expected = new HashSet(); - expected.add("b"); + Set expected = new HashSet(); + expected.add("b"); - assertEquals(1, status); - assertEquals(expected, jedis.smembers("foo")); + assertEquals(1, status); + assertEquals(expected, jedis.smembers("foo")); - status = jedis.srem("foo", "bar"); + status = jedis.srem("foo", "bar"); - assertEquals(0, status); + assertEquals(0, status); - // Binary + // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - long bstatus = jedis.srem(bfoo, ba); + long bstatus = jedis.srem(bfoo, ba); - Set bexpected = new HashSet(); - bexpected.add(bb); + Set bexpected = new HashSet(); + bexpected.add(bb); - assertEquals(1, bstatus); - assertEquals(bexpected, jedis.smembers(bfoo)); + assertEquals(1, bstatus); + assertEquals(bexpected, jedis.smembers(bfoo)); - bstatus = jedis.srem(bfoo, bbar); + bstatus = jedis.srem(bfoo, bbar); - assertEquals(0, bstatus); + assertEquals(0, bstatus); } @Test public void spop() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - String member = jedis.spop("foo"); + String member = jedis.spop("foo"); - assertTrue("a".equals(member) || "b".equals(member)); - assertEquals(1, jedis.smembers("foo").size()); + assertTrue("a".equals(member) || "b".equals(member)); + assertEquals(1, jedis.smembers("foo").size()); - member = jedis.spop("bar"); - assertNull(member); + member = jedis.spop("bar"); + assertNull(member); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - byte[] bmember = jedis.spop(bfoo); + byte[] bmember = jedis.spop(bfoo); - assertTrue(Arrays.equals(ba, bmember) || Arrays.equals(bb, bmember)); - assertEquals(1, jedis.smembers(bfoo).size()); + assertTrue(Arrays.equals(ba, bmember) || Arrays.equals(bb, bmember)); + assertEquals(1, jedis.smembers(bfoo).size()); - bmember = jedis.spop(bbar); - assertNull(bmember); + bmember = jedis.spop(bbar); + assertNull(bmember); } @Test public void smove() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "c"); - long status = jedis.smove("foo", "bar", "a"); + long status = jedis.smove("foo", "bar", "a"); - Set expectedSrc = new HashSet(); - expectedSrc.add("b"); + Set expectedSrc = new HashSet(); + expectedSrc.add("b"); - Set expectedDst = new HashSet(); - expectedDst.add("c"); - expectedDst.add("a"); + Set expectedDst = new HashSet(); + expectedDst.add("c"); + expectedDst.add("a"); - assertEquals(status, 1); - assertEquals(expectedSrc, jedis.smembers("foo")); - assertEquals(expectedDst, jedis.smembers("bar")); + assertEquals(status, 1); + assertEquals(expectedSrc, jedis.smembers("foo")); + assertEquals(expectedDst, jedis.smembers("bar")); - status = jedis.smove("foo", "bar", "a"); + status = jedis.smove("foo", "bar", "a"); - assertEquals(status, 0); + assertEquals(status, 0); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bc); - long bstatus = jedis.smove(bfoo, bbar, ba); + long bstatus = jedis.smove(bfoo, bbar, ba); - Set bexpectedSrc = new HashSet(); - bexpectedSrc.add(bb); + Set bexpectedSrc = new HashSet(); + bexpectedSrc.add(bb); - Set bexpectedDst = new HashSet(); - bexpectedDst.add(bc); - bexpectedDst.add(ba); + Set bexpectedDst = new HashSet(); + bexpectedDst.add(bc); + bexpectedDst.add(ba); - assertEquals(bstatus, 1); - assertEquals(bexpectedSrc, jedis.smembers(bfoo)); - assertEquals(bexpectedDst, jedis.smembers(bbar)); + assertEquals(bstatus, 1); + assertEquals(bexpectedSrc, jedis.smembers(bfoo)); + assertEquals(bexpectedDst, jedis.smembers(bbar)); - bstatus = jedis.smove(bfoo, bbar, ba); - assertEquals(bstatus, 0); + bstatus = jedis.smove(bfoo, bbar, ba); + assertEquals(bstatus, 0); } @Test public void scard() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - long card = jedis.scard("foo"); + long card = jedis.scard("foo"); - assertEquals(2, card); + assertEquals(2, card); - card = jedis.scard("bar"); - assertEquals(0, card); + card = jedis.scard("bar"); + assertEquals(0, card); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - long bcard = jedis.scard(bfoo); + long bcard = jedis.scard(bfoo); - assertEquals(2, bcard); + assertEquals(2, bcard); - bcard = jedis.scard(bbar); - assertEquals(0, bcard); + bcard = jedis.scard(bbar); + assertEquals(0, bcard); } @Test public void sismember() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - assertTrue(jedis.sismember("foo", "a")); + assertTrue(jedis.sismember("foo", "a")); - assertFalse(jedis.sismember("foo", "c")); + assertFalse(jedis.sismember("foo", "c")); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - assertTrue(jedis.sismember(bfoo, ba)); + assertTrue(jedis.sismember(bfoo, ba)); - assertFalse(jedis.sismember(bfoo, bc)); + assertFalse(jedis.sismember(bfoo, bc)); } @Test public void sinter() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - jedis.sadd("bar", "b"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "b"); + jedis.sadd("bar", "c"); - Set expected = new HashSet(); - expected.add("b"); + Set expected = new HashSet(); + expected.add("b"); - Set intersection = jedis.sinter("foo", "bar"); - assertEquals(expected, intersection); + Set intersection = jedis.sinter("foo", "bar"); + assertEquals(expected, intersection); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - jedis.sadd(bbar, bb); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bb); + jedis.sadd(bbar, bc); - Set bexpected = new HashSet(); - bexpected.add(bb); + Set bexpected = new HashSet(); + bexpected.add(bb); - Set bintersection = jedis.sinter(bfoo, bbar); - assertEquals(bexpected, bintersection); + Set bintersection = jedis.sinter(bfoo, bbar); + assertEquals(bexpected, bintersection); } @Test public void sinterstore() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - jedis.sadd("bar", "b"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "b"); + jedis.sadd("bar", "c"); - Set expected = new HashSet(); - expected.add("b"); + Set expected = new HashSet(); + expected.add("b"); - long status = jedis.sinterstore("car", "foo", "bar"); - assertEquals(1, status); + long status = jedis.sinterstore("car", "foo", "bar"); + assertEquals(1, status); - assertEquals(expected, jedis.smembers("car")); + assertEquals(expected, jedis.smembers("car")); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - jedis.sadd(bbar, bb); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bb); + jedis.sadd(bbar, bc); - Set bexpected = new HashSet(); - bexpected.add(bb); + Set bexpected = new HashSet(); + bexpected.add(bb); - long bstatus = jedis.sinterstore(bcar, bfoo, bbar); - assertEquals(1, bstatus); + long bstatus = jedis.sinterstore(bcar, bfoo, bbar); + assertEquals(1, bstatus); - assertEquals(bexpected, jedis.smembers(bcar)); + assertEquals(bexpected, jedis.smembers(bcar)); } @Test public void sunion() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - jedis.sadd("bar", "b"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "b"); + jedis.sadd("bar", "c"); - Set expected = new HashSet(); - expected.add("a"); - expected.add("b"); - expected.add("c"); + Set expected = new HashSet(); + expected.add("a"); + expected.add("b"); + expected.add("c"); - Set union = jedis.sunion("foo", "bar"); - assertEquals(expected, union); + Set union = jedis.sunion("foo", "bar"); + assertEquals(expected, union); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - jedis.sadd(bbar, bb); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bb); + jedis.sadd(bbar, bc); - Set bexpected = new HashSet(); - bexpected.add(bb); - bexpected.add(bc); - bexpected.add(ba); + Set bexpected = new HashSet(); + bexpected.add(bb); + bexpected.add(bc); + bexpected.add(ba); - Set bunion = jedis.sunion(bfoo, bbar); - assertEquals(bexpected, bunion); + Set bunion = jedis.sunion(bfoo, bbar); + assertEquals(bexpected, bunion); } @Test public void sunionstore() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - jedis.sadd("bar", "b"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "b"); + jedis.sadd("bar", "c"); - Set expected = new HashSet(); - expected.add("a"); - expected.add("b"); - expected.add("c"); + Set expected = new HashSet(); + expected.add("a"); + expected.add("b"); + expected.add("c"); - long status = jedis.sunionstore("car", "foo", "bar"); - assertEquals(3, status); + long status = jedis.sunionstore("car", "foo", "bar"); + assertEquals(3, status); - assertEquals(expected, jedis.smembers("car")); + assertEquals(expected, jedis.smembers("car")); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - jedis.sadd(bbar, bb); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bb); + jedis.sadd(bbar, bc); - Set bexpected = new HashSet(); - bexpected.add(bb); - bexpected.add(bc); - bexpected.add(ba); + Set bexpected = new HashSet(); + bexpected.add(bb); + bexpected.add(bc); + bexpected.add(ba); - long bstatus = jedis.sunionstore(bcar, bfoo, bbar); - assertEquals(3, bstatus); + long bstatus = jedis.sunionstore(bcar, bfoo, bbar); + assertEquals(3, bstatus); - assertEquals(bexpected, jedis.smembers(bcar)); + assertEquals(bexpected, jedis.smembers(bcar)); } @Test public void sdiff() { - jedis.sadd("foo", "x"); - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); - jedis.sadd("foo", "c"); + jedis.sadd("foo", "x"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); + jedis.sadd("foo", "c"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "c"); - jedis.sadd("car", "a"); - jedis.sadd("car", "d"); + jedis.sadd("car", "a"); + jedis.sadd("car", "d"); - Set expected = new HashSet(); - expected.add("x"); - expected.add("b"); + Set expected = new HashSet(); + expected.add("x"); + expected.add("b"); - Set diff = jedis.sdiff("foo", "bar", "car"); - assertEquals(expected, diff); + Set diff = jedis.sdiff("foo", "bar", "car"); + assertEquals(expected, diff); - // Binary - jedis.sadd(bfoo, bx); - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); - jedis.sadd(bfoo, bc); + // Binary + jedis.sadd(bfoo, bx); + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); + jedis.sadd(bfoo, bc); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bc); - jedis.sadd(bcar, ba); - jedis.sadd(bcar, bd); + jedis.sadd(bcar, ba); + jedis.sadd(bcar, bd); - Set bexpected = new HashSet(); - bexpected.add(bb); - bexpected.add(bx); + Set bexpected = new HashSet(); + bexpected.add(bb); + bexpected.add(bx); - Set bdiff = jedis.sdiff(bfoo, bbar, bcar); - assertEquals(bexpected, bdiff); + Set bdiff = jedis.sdiff(bfoo, bbar, bcar); + assertEquals(bexpected, bdiff); } @Test public void sdiffstore() { - jedis.sadd("foo", "x"); - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); - jedis.sadd("foo", "c"); + jedis.sadd("foo", "x"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); + jedis.sadd("foo", "c"); - jedis.sadd("bar", "c"); + jedis.sadd("bar", "c"); - jedis.sadd("car", "a"); - jedis.sadd("car", "d"); + jedis.sadd("car", "a"); + jedis.sadd("car", "d"); - Set expected = new HashSet(); - expected.add("d"); - expected.add("a"); + Set expected = new HashSet(); + expected.add("d"); + expected.add("a"); - long status = jedis.sdiffstore("tar", "foo", "bar", "car"); - assertEquals(2, status); - assertEquals(expected, jedis.smembers("car")); + long status = jedis.sdiffstore("tar", "foo", "bar", "car"); + assertEquals(2, status); + assertEquals(expected, jedis.smembers("car")); - // Binary - jedis.sadd(bfoo, bx); - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); - jedis.sadd(bfoo, bc); + // Binary + jedis.sadd(bfoo, bx); + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); + jedis.sadd(bfoo, bc); - jedis.sadd(bbar, bc); + jedis.sadd(bbar, bc); - jedis.sadd(bcar, ba); - jedis.sadd(bcar, bd); + jedis.sadd(bcar, ba); + jedis.sadd(bcar, bd); - Set bexpected = new HashSet(); - bexpected.add(bd); - bexpected.add(ba); + Set bexpected = new HashSet(); + bexpected.add(bd); + bexpected.add(ba); - long bstatus = jedis.sdiffstore("tar".getBytes(), bfoo, bbar, bcar); - assertEquals(2, bstatus); - assertEquals(bexpected, jedis.smembers(bcar)); + long bstatus = jedis.sdiffstore("tar".getBytes(), bfoo, bbar, bcar); + assertEquals(2, bstatus); + assertEquals(bexpected, jedis.smembers(bcar)); } @Test public void srandmember() { - jedis.sadd("foo", "a"); - jedis.sadd("foo", "b"); + jedis.sadd("foo", "a"); + jedis.sadd("foo", "b"); - String member = jedis.srandmember("foo"); + String member = jedis.srandmember("foo"); - assertTrue("a".equals(member) || "b".equals(member)); - assertEquals(2, jedis.smembers("foo").size()); + assertTrue("a".equals(member) || "b".equals(member)); + assertEquals(2, jedis.smembers("foo").size()); - member = jedis.srandmember("bar"); - assertNull(member); + member = jedis.srandmember("bar"); + assertNull(member); - // Binary - jedis.sadd(bfoo, ba); - jedis.sadd(bfoo, bb); + // Binary + jedis.sadd(bfoo, ba); + jedis.sadd(bfoo, bb); - byte[] bmember = jedis.srandmember(bfoo); + byte[] bmember = jedis.srandmember(bfoo); - assertTrue(Arrays.equals(ba, bmember) || Arrays.equals(bb, bmember)); - assertEquals(2, jedis.smembers(bfoo).size()); + assertTrue(Arrays.equals(ba, bmember) || Arrays.equals(bb, bmember)); + assertEquals(2, jedis.smembers(bfoo).size()); - bmember = jedis.srandmember(bbar); - assertNull(bmember); + bmember = jedis.srandmember(bbar); + assertNull(bmember); } - @Test public void sscan() { jedis.sadd("foo", "a", "b"); - + ScanResult result = jedis.sscan("foo", 0); assertEquals(0, result.getCursor()); diff --git a/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java index b65bfb7..55ba9c9 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SlowlogCommandsTest.java @@ -7,42 +7,42 @@ import org.junit.Test; import redis.clients.util.Slowlog; public class SlowlogCommandsTest extends JedisCommandTestBase { - + @Test public void slowlog() { - //do something + // do something jedis.configSet("slowlog-log-slower-than", "0"); - jedis.set("foo", "bar"); - jedis.set("foo2", "bar2"); - - List reducedLog = jedis.slowlogGet(1); - assertEquals(1, reducedLog.size()); - - Slowlog log = reducedLog.get(0); - assertTrue(log.getId() > 0); - assertTrue(log.getTimeStamp() > 0); - assertTrue(log.getExecutionTime() > 0); - assertNotNull(log.getArgs()); - - List breducedLog = jedis.slowlogGetBinary(1); - assertEquals(1, breducedLog.size()); - - List log1 = jedis.slowlogGet(); - List blog1 = jedis.slowlogGetBinary(); - - assertNotNull(log1); - assertNotNull(blog1); - - long len1 = jedis.slowlogLen(); - - jedis.slowlogReset(); - - List log2 = jedis.slowlogGet(); - List blog2 = jedis.slowlogGetBinary(); - long len2 = jedis.slowlogLen(); - - assertTrue(len1 > len2); - assertTrue(log1.size() > log2.size()); - assertTrue(blog1.size() > blog2.size()); + jedis.set("foo", "bar"); + jedis.set("foo2", "bar2"); + + List reducedLog = jedis.slowlogGet(1); + assertEquals(1, reducedLog.size()); + + Slowlog log = reducedLog.get(0); + assertTrue(log.getId() > 0); + assertTrue(log.getTimeStamp() > 0); + assertTrue(log.getExecutionTime() > 0); + assertNotNull(log.getArgs()); + + List breducedLog = jedis.slowlogGetBinary(1); + assertEquals(1, breducedLog.size()); + + List log1 = jedis.slowlogGet(); + List blog1 = jedis.slowlogGetBinary(); + + assertNotNull(log1); + assertNotNull(blog1); + + long len1 = jedis.slowlogLen(); + + jedis.slowlogReset(); + + List log2 = jedis.slowlogGet(); + List blog2 = jedis.slowlogGetBinary(); + long len2 = jedis.slowlogLen(); + + assertTrue(len1 > len2); + assertTrue(log1.size() > log2.size()); + assertTrue(blog1.size() > blog2.size()); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java index c7d652e..b4fd3b6 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SortedSetCommandsTest.java @@ -21,879 +21,879 @@ public class SortedSetCommandsTest extends JedisCommandTestBase { @Test public void zadd() { - long status = jedis.zadd("foo", 1d, "a"); - assertEquals(1, status); + long status = jedis.zadd("foo", 1d, "a"); + assertEquals(1, status); - status = jedis.zadd("foo", 10d, "b"); - assertEquals(1, status); + status = jedis.zadd("foo", 10d, "b"); + assertEquals(1, status); - status = jedis.zadd("foo", 0.1d, "c"); - assertEquals(1, status); + status = jedis.zadd("foo", 0.1d, "c"); + assertEquals(1, status); - status = jedis.zadd("foo", 2d, "a"); - assertEquals(0, status); + status = jedis.zadd("foo", 2d, "a"); + assertEquals(0, status); - // Binary - long bstatus = jedis.zadd(bfoo, 1d, ba); - assertEquals(1, bstatus); + // Binary + long bstatus = jedis.zadd(bfoo, 1d, ba); + assertEquals(1, bstatus); - bstatus = jedis.zadd(bfoo, 10d, bb); - assertEquals(1, bstatus); + bstatus = jedis.zadd(bfoo, 10d, bb); + assertEquals(1, bstatus); - bstatus = jedis.zadd(bfoo, 0.1d, bc); - assertEquals(1, bstatus); + bstatus = jedis.zadd(bfoo, 0.1d, bc); + assertEquals(1, bstatus); - bstatus = jedis.zadd(bfoo, 2d, ba); - assertEquals(0, bstatus); + bstatus = jedis.zadd(bfoo, 2d, ba); + assertEquals(0, bstatus); } @Test public void zrange() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set expected = new LinkedHashSet(); - expected.add("c"); - expected.add("a"); + Set expected = new LinkedHashSet(); + expected.add("c"); + expected.add("a"); - Set range = jedis.zrange("foo", 0, 1); - assertEquals(expected, range); + Set range = jedis.zrange("foo", 0, 1); + assertEquals(expected, range); - expected.add("b"); - range = jedis.zrange("foo", 0, 100); - assertEquals(expected, range); + expected.add("b"); + range = jedis.zrange("foo", 0, 100); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(bc); - bexpected.add(ba); + Set bexpected = new LinkedHashSet(); + bexpected.add(bc); + bexpected.add(ba); - Set brange = jedis.zrange(bfoo, 0, 1); - assertEquals(bexpected, brange); + Set brange = jedis.zrange(bfoo, 0, 1); + assertEquals(bexpected, brange); - bexpected.add(bb); - brange = jedis.zrange(bfoo, 0, 100); - assertEquals(bexpected, brange); + bexpected.add(bb); + brange = jedis.zrange(bfoo, 0, 100); + assertEquals(bexpected, brange); } @Test public void zrevrange() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set expected = new LinkedHashSet(); - expected.add("b"); - expected.add("a"); + Set expected = new LinkedHashSet(); + expected.add("b"); + expected.add("a"); - Set range = jedis.zrevrange("foo", 0, 1); - assertEquals(expected, range); + Set range = jedis.zrevrange("foo", 0, 1); + assertEquals(expected, range); - expected.add("c"); - range = jedis.zrevrange("foo", 0, 100); - assertEquals(expected, range); + expected.add("c"); + range = jedis.zrevrange("foo", 0, 100); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(bb); - bexpected.add(ba); + Set bexpected = new LinkedHashSet(); + bexpected.add(bb); + bexpected.add(ba); - Set brange = jedis.zrevrange(bfoo, 0, 1); - assertEquals(bexpected, brange); + Set brange = jedis.zrevrange(bfoo, 0, 1); + assertEquals(bexpected, brange); - bexpected.add(bc); - brange = jedis.zrevrange(bfoo, 0, 100); - assertEquals(bexpected, brange); + bexpected.add(bc); + brange = jedis.zrevrange(bfoo, 0, 100); + assertEquals(bexpected, brange); } @Test public void zrem() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 2d, "b"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 2d, "b"); - long status = jedis.zrem("foo", "a"); + long status = jedis.zrem("foo", "a"); - Set expected = new LinkedHashSet(); - expected.add("b"); + Set expected = new LinkedHashSet(); + expected.add("b"); - assertEquals(1, status); - assertEquals(expected, jedis.zrange("foo", 0, 100)); + assertEquals(1, status); + assertEquals(expected, jedis.zrange("foo", 0, 100)); - status = jedis.zrem("foo", "bar"); + status = jedis.zrem("foo", "bar"); - assertEquals(0, status); + assertEquals(0, status); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 2d, bb); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 2d, bb); - long bstatus = jedis.zrem(bfoo, ba); + long bstatus = jedis.zrem(bfoo, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(bb); + Set bexpected = new LinkedHashSet(); + bexpected.add(bb); - assertEquals(1, bstatus); - assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + assertEquals(1, bstatus); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); - bstatus = jedis.zrem(bfoo, bbar); + bstatus = jedis.zrem(bfoo, bbar); - assertEquals(0, bstatus); + assertEquals(0, bstatus); } @Test public void zincrby() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 2d, "b"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 2d, "b"); - double score = jedis.zincrby("foo", 2d, "a"); + double score = jedis.zincrby("foo", 2d, "a"); - Set expected = new LinkedHashSet(); - expected.add("a"); - expected.add("b"); + Set expected = new LinkedHashSet(); + expected.add("a"); + expected.add("b"); - assertEquals(3d, score, 0); - assertEquals(expected, jedis.zrange("foo", 0, 100)); + assertEquals(3d, score, 0); + assertEquals(expected, jedis.zrange("foo", 0, 100)); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 2d, bb); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 2d, bb); - double bscore = jedis.zincrby(bfoo, 2d, ba); + double bscore = jedis.zincrby(bfoo, 2d, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(bb); - bexpected.add(ba); + Set bexpected = new LinkedHashSet(); + bexpected.add(bb); + bexpected.add(ba); - assertEquals(3d, bscore, 0); - assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + assertEquals(3d, bscore, 0); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); } @Test public void zrank() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 2d, "b"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 2d, "b"); - long rank = jedis.zrank("foo", "a"); - assertEquals(0, rank); + long rank = jedis.zrank("foo", "a"); + assertEquals(0, rank); - rank = jedis.zrank("foo", "b"); - assertEquals(1, rank); + rank = jedis.zrank("foo", "b"); + assertEquals(1, rank); - assertNull(jedis.zrank("car", "b")); + assertNull(jedis.zrank("car", "b")); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 2d, bb); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 2d, bb); - long brank = jedis.zrank(bfoo, ba); - assertEquals(0, brank); + long brank = jedis.zrank(bfoo, ba); + assertEquals(0, brank); - brank = jedis.zrank(bfoo, bb); - assertEquals(1, brank); + brank = jedis.zrank(bfoo, bb); + assertEquals(1, brank); - assertNull(jedis.zrank(bcar, bb)); + assertNull(jedis.zrank(bcar, bb)); } @Test public void zrevrank() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 2d, "b"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 2d, "b"); - long rank = jedis.zrevrank("foo", "a"); - assertEquals(1, rank); + long rank = jedis.zrevrank("foo", "a"); + assertEquals(1, rank); - rank = jedis.zrevrank("foo", "b"); - assertEquals(0, rank); + rank = jedis.zrevrank("foo", "b"); + assertEquals(0, rank); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 2d, bb); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 2d, bb); - long brank = jedis.zrevrank(bfoo, ba); - assertEquals(1, brank); + long brank = jedis.zrevrank(bfoo, ba); + assertEquals(1, brank); - brank = jedis.zrevrank(bfoo, bb); - assertEquals(0, brank); + brank = jedis.zrevrank(bfoo, bb); + assertEquals(0, brank); } @Test public void zrangeWithScores() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("c", 0.1d)); - expected.add(new Tuple("a", 2d)); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("c", 0.1d)); + expected.add(new Tuple("a", 2d)); - Set range = jedis.zrangeWithScores("foo", 0, 1); - assertEquals(expected, range); + Set range = jedis.zrangeWithScores("foo", 0, 1); + assertEquals(expected, range); - expected.add(new Tuple("b", 10d)); - range = jedis.zrangeWithScores("foo", 0, 100); - assertEquals(expected, range); + expected.add(new Tuple("b", 10d)); + range = jedis.zrangeWithScores("foo", 0, 100); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bc, 0.1d)); - bexpected.add(new Tuple(ba, 2d)); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bc, 0.1d)); + bexpected.add(new Tuple(ba, 2d)); - Set brange = jedis.zrangeWithScores(bfoo, 0, 1); - assertEquals(bexpected, brange); + Set brange = jedis.zrangeWithScores(bfoo, 0, 1); + assertEquals(bexpected, brange); - bexpected.add(new Tuple(bb, 10d)); - brange = jedis.zrangeWithScores(bfoo, 0, 100); - assertEquals(bexpected, brange); + bexpected.add(new Tuple(bb, 10d)); + brange = jedis.zrangeWithScores(bfoo, 0, 100); + assertEquals(bexpected, brange); } @Test public void zrevrangeWithScores() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("b", 10d)); - expected.add(new Tuple("a", 2d)); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("b", 10d)); + expected.add(new Tuple("a", 2d)); - Set range = jedis.zrevrangeWithScores("foo", 0, 1); - assertEquals(expected, range); + Set range = jedis.zrevrangeWithScores("foo", 0, 1); + assertEquals(expected, range); - expected.add(new Tuple("c", 0.1d)); - range = jedis.zrevrangeWithScores("foo", 0, 100); - assertEquals(expected, range); + expected.add(new Tuple("c", 0.1d)); + range = jedis.zrevrangeWithScores("foo", 0, 100); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bb, 10d)); - bexpected.add(new Tuple(ba, 2d)); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bb, 10d)); + bexpected.add(new Tuple(ba, 2d)); - Set brange = jedis.zrevrangeWithScores(bfoo, 0, 1); - assertEquals(bexpected, brange); + Set brange = jedis.zrevrangeWithScores(bfoo, 0, 1); + assertEquals(bexpected, brange); - bexpected.add(new Tuple(bc, 0.1d)); - brange = jedis.zrevrangeWithScores(bfoo, 0, 100); - assertEquals(bexpected, brange); + bexpected.add(new Tuple(bc, 0.1d)); + brange = jedis.zrevrangeWithScores(bfoo, 0, 100); + assertEquals(bexpected, brange); } @Test public void zcard() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - long size = jedis.zcard("foo"); - assertEquals(3, size); + long size = jedis.zcard("foo"); + assertEquals(3, size); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - long bsize = jedis.zcard(bfoo); - assertEquals(3, bsize); + long bsize = jedis.zcard(bfoo); + assertEquals(3, bsize); } @Test public void zscore() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Double score = jedis.zscore("foo", "b"); - assertEquals((Double) 10d, score); + Double score = jedis.zscore("foo", "b"); + assertEquals((Double) 10d, score); - score = jedis.zscore("foo", "c"); - assertEquals((Double) 0.1d, score); + score = jedis.zscore("foo", "c"); + assertEquals((Double) 0.1d, score); - score = jedis.zscore("foo", "s"); - assertNull(score); + score = jedis.zscore("foo", "s"); + assertNull(score); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Double bscore = jedis.zscore(bfoo, bb); - assertEquals((Double) 10d, bscore); + Double bscore = jedis.zscore(bfoo, bb); + assertEquals((Double) 10d, bscore); - bscore = jedis.zscore(bfoo, bc); - assertEquals((Double) 0.1d, bscore); + bscore = jedis.zscore(bfoo, bc); + assertEquals((Double) 0.1d, bscore); - bscore = jedis.zscore(bfoo, SafeEncoder.encode("s")); - assertNull(bscore); + bscore = jedis.zscore(bfoo, SafeEncoder.encode("s")); + assertNull(bscore); } @Test public void zcount() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - long result = jedis.zcount("foo", 0.01d, 2.1d); + long result = jedis.zcount("foo", 0.01d, 2.1d); - assertEquals(2, result); + assertEquals(2, result); - result = jedis.zcount("foo", "(0.01", "+inf"); + result = jedis.zcount("foo", "(0.01", "+inf"); - assertEquals(3, result); - - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + assertEquals(3, result); - long bresult = jedis.zcount(bfoo, 0.01d, 2.1d); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - assertEquals(2, bresult); + long bresult = jedis.zcount(bfoo, 0.01d, 2.1d); - bresult = jedis.zcount(bfoo, SafeEncoder.encode("(0.01"), SafeEncoder.encode("+inf")); + assertEquals(2, bresult); - assertEquals(3, bresult); + bresult = jedis.zcount(bfoo, SafeEncoder.encode("(0.01"), + SafeEncoder.encode("+inf")); + + assertEquals(3, bresult); } @Test public void zrangebyscore() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set range = jedis.zrangeByScore("foo", 0d, 2d); + Set range = jedis.zrangeByScore("foo", 0d, 2d); - Set expected = new LinkedHashSet(); - expected.add("c"); - expected.add("a"); + Set expected = new LinkedHashSet(); + expected.add("c"); + expected.add("a"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrangeByScore("foo", 0d, 2d, 0, 1); + range = jedis.zrangeByScore("foo", 0d, 2d, 0, 1); - expected = new LinkedHashSet(); - expected.add("c"); + expected = new LinkedHashSet(); + expected.add("c"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrangeByScore("foo", 0d, 2d, 1, 1); - Set range2 = jedis.zrangeByScore("foo", "-inf", "(2"); - assertEquals(expected, range2); + range = jedis.zrangeByScore("foo", 0d, 2d, 1, 1); + Set range2 = jedis.zrangeByScore("foo", "-inf", "(2"); + assertEquals(expected, range2); - expected = new LinkedHashSet(); - expected.add("a"); + expected = new LinkedHashSet(); + expected.add("a"); - assertEquals(expected, range); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set brange = jedis.zrangeByScore(bfoo, 0d, 2d); + Set brange = jedis.zrangeByScore(bfoo, 0d, 2d); - Set bexpected = new LinkedHashSet(); - bexpected.add(bc); - bexpected.add(ba); + Set bexpected = new LinkedHashSet(); + bexpected.add(bc); + bexpected.add(ba); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrangeByScore(bfoo, 0d, 2d, 0, 1); + brange = jedis.zrangeByScore(bfoo, 0d, 2d, 0, 1); - bexpected = new LinkedHashSet(); - bexpected.add(bc); + bexpected = new LinkedHashSet(); + bexpected.add(bc); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrangeByScore(bfoo, 0d, 2d, 1, 1); - Set brange2 = jedis.zrangeByScore(bfoo, SafeEncoder - .encode("-inf"), SafeEncoder.encode("(2")); - assertEquals(bexpected, brange2); + brange = jedis.zrangeByScore(bfoo, 0d, 2d, 1, 1); + Set brange2 = jedis.zrangeByScore(bfoo, + SafeEncoder.encode("-inf"), SafeEncoder.encode("(2")); + assertEquals(bexpected, brange2); - bexpected = new LinkedHashSet(); - bexpected.add(ba); + bexpected = new LinkedHashSet(); + bexpected.add(ba); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); } @Test public void zrevrangebyscore() { - jedis.zadd("foo", 1.0d, "a"); - jedis.zadd("foo", 2.0d, "b"); - jedis.zadd("foo", 3.0d, "c"); - jedis.zadd("foo", 4.0d, "d"); - jedis.zadd("foo", 5.0d, "e"); + jedis.zadd("foo", 1.0d, "a"); + jedis.zadd("foo", 2.0d, "b"); + jedis.zadd("foo", 3.0d, "c"); + jedis.zadd("foo", 4.0d, "d"); + jedis.zadd("foo", 5.0d, "e"); - Set range = jedis.zrevrangeByScore("foo", 3d, - Double.NEGATIVE_INFINITY, 0, 1); - Set expected = new LinkedHashSet(); - expected.add("c"); + Set range = jedis.zrevrangeByScore("foo", 3d, + Double.NEGATIVE_INFINITY, 0, 1); + Set expected = new LinkedHashSet(); + expected.add("c"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScore("foo", 3.5d, Double.NEGATIVE_INFINITY, - 0, 2); - expected = new LinkedHashSet(); - expected.add("c"); - expected.add("b"); + range = jedis.zrevrangeByScore("foo", 3.5d, Double.NEGATIVE_INFINITY, + 0, 2); + expected = new LinkedHashSet(); + expected.add("c"); + expected.add("b"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScore("foo", 3.5d, Double.NEGATIVE_INFINITY, - 1, 1); - expected = new LinkedHashSet(); - expected.add("b"); + range = jedis.zrevrangeByScore("foo", 3.5d, Double.NEGATIVE_INFINITY, + 1, 1); + expected = new LinkedHashSet(); + expected.add("b"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScore("foo", 4d, 2d); - expected = new LinkedHashSet(); - expected.add("d"); - expected.add("c"); - expected.add("b"); + range = jedis.zrevrangeByScore("foo", 4d, 2d); + expected = new LinkedHashSet(); + expected.add("d"); + expected.add("c"); + expected.add("b"); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScore("foo", "+inf", "(4"); - expected = new LinkedHashSet(); - expected.add("e"); + range = jedis.zrevrangeByScore("foo", "+inf", "(4"); + expected = new LinkedHashSet(); + expected.add("e"); - assertEquals(expected, range); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set brange = jedis.zrevrangeByScore(bfoo, 2d, 0d); + Set brange = jedis.zrevrangeByScore(bfoo, 2d, 0d); - Set bexpected = new LinkedHashSet(); - bexpected.add(bc); - bexpected.add(ba); + Set bexpected = new LinkedHashSet(); + bexpected.add(bc); + bexpected.add(ba); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrevrangeByScore(bfoo, 2d, 0d, 0, 1); + brange = jedis.zrevrangeByScore(bfoo, 2d, 0d, 0, 1); - bexpected = new LinkedHashSet(); - bexpected.add(ba); + bexpected = new LinkedHashSet(); + bexpected.add(ba); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - Set brange2 = jedis.zrevrangeByScore(bfoo, SafeEncoder - .encode("+inf"), SafeEncoder.encode("(2")); + Set brange2 = jedis.zrevrangeByScore(bfoo, + SafeEncoder.encode("+inf"), SafeEncoder.encode("(2")); - bexpected = new LinkedHashSet(); - bexpected.add(bb); + bexpected = new LinkedHashSet(); + bexpected.add(bb); - assertEquals(bexpected, brange2); + assertEquals(bexpected, brange2); - brange = jedis.zrevrangeByScore(bfoo, 2d, 0d, 1, 1); - bexpected = new LinkedHashSet(); - bexpected.add(bc); + brange = jedis.zrevrangeByScore(bfoo, 2d, 0d, 1, 1); + bexpected = new LinkedHashSet(); + bexpected.add(bc); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); } @Test public void zrangebyscoreWithScores() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - Set range = jedis.zrangeByScoreWithScores("foo", 0d, 2d); + Set range = jedis.zrangeByScoreWithScores("foo", 0d, 2d); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("c", 0.1d)); - expected.add(new Tuple("a", 2d)); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("c", 0.1d)); + expected.add(new Tuple("a", 2d)); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrangeByScoreWithScores("foo", 0d, 2d, 0, 1); + range = jedis.zrangeByScoreWithScores("foo", 0d, 2d, 0, 1); - expected = new LinkedHashSet(); - expected.add(new Tuple("c", 0.1d)); + expected = new LinkedHashSet(); + expected.add(new Tuple("c", 0.1d)); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrangeByScoreWithScores("foo", 0d, 2d, 1, 1); + range = jedis.zrangeByScoreWithScores("foo", 0d, 2d, 1, 1); - expected = new LinkedHashSet(); - expected.add(new Tuple("a", 2d)); + expected = new LinkedHashSet(); + expected.add(new Tuple("a", 2d)); - assertEquals(expected, range); + assertEquals(expected, range); - // Binary + // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d); + Set brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bc, 0.1d)); - bexpected.add(new Tuple(ba, 2d)); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bc, 0.1d)); + bexpected.add(new Tuple(ba, 2d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 0, 1); + brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 0, 1); - bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bc, 0.1d)); + bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bc, 0.1d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 1, 1); + brange = jedis.zrangeByScoreWithScores(bfoo, 0d, 2d, 1, 1); - bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(ba, 2d)); + bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(ba, 2d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); } @Test public void zrevrangebyscoreWithScores() { - jedis.zadd("foo", 1.0d, "a"); - jedis.zadd("foo", 2.0d, "b"); - jedis.zadd("foo", 3.0d, "c"); - jedis.zadd("foo", 4.0d, "d"); - jedis.zadd("foo", 5.0d, "e"); + jedis.zadd("foo", 1.0d, "a"); + jedis.zadd("foo", 2.0d, "b"); + jedis.zadd("foo", 3.0d, "c"); + jedis.zadd("foo", 4.0d, "d"); + jedis.zadd("foo", 5.0d, "e"); - Set range = jedis.zrevrangeByScoreWithScores("foo", 3d, - Double.NEGATIVE_INFINITY, 0, 1); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("c", 3.0d)); + Set range = jedis.zrevrangeByScoreWithScores("foo", 3d, + Double.NEGATIVE_INFINITY, 0, 1); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("c", 3.0d)); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScoreWithScores("foo", 3.5d, - Double.NEGATIVE_INFINITY, 0, 2); - expected = new LinkedHashSet(); - expected.add(new Tuple("c", 3.0d)); - expected.add(new Tuple("b", 2.0d)); + range = jedis.zrevrangeByScoreWithScores("foo", 3.5d, + Double.NEGATIVE_INFINITY, 0, 2); + expected = new LinkedHashSet(); + expected.add(new Tuple("c", 3.0d)); + expected.add(new Tuple("b", 2.0d)); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScoreWithScores("foo", 3.5d, - Double.NEGATIVE_INFINITY, 1, 1); - expected = new LinkedHashSet(); - expected.add(new Tuple("b", 2.0d)); + range = jedis.zrevrangeByScoreWithScores("foo", 3.5d, + Double.NEGATIVE_INFINITY, 1, 1); + expected = new LinkedHashSet(); + expected.add(new Tuple("b", 2.0d)); - assertEquals(expected, range); + assertEquals(expected, range); - range = jedis.zrevrangeByScoreWithScores("foo", 4d, 2d); - expected = new LinkedHashSet(); - expected.add(new Tuple("d", 4.0d)); - expected.add(new Tuple("c", 3.0d)); - expected.add(new Tuple("b", 2.0d)); + range = jedis.zrevrangeByScoreWithScores("foo", 4d, 2d); + expected = new LinkedHashSet(); + expected.add(new Tuple("d", 4.0d)); + expected.add(new Tuple("c", 3.0d)); + expected.add(new Tuple("b", 2.0d)); - assertEquals(expected, range); + assertEquals(expected, range); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - Set brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d); + Set brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bc, 0.1d)); - bexpected.add(new Tuple(ba, 2d)); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bc, 0.1d)); + bexpected.add(new Tuple(ba, 2d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d, 0, 1); + brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d, 0, 1); - bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(ba, 2d)); + bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(ba, 2d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); - brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d, 1, 1); + brange = jedis.zrevrangeByScoreWithScores(bfoo, 2d, 0d, 1, 1); - bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bc, 0.1d)); + bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bc, 0.1d)); - assertEquals(bexpected, brange); + assertEquals(bexpected, brange); } - + @Test public void zremrangeByRank() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - long result = jedis.zremrangeByRank("foo", 0, 0); + long result = jedis.zremrangeByRank("foo", 0, 0); - assertEquals(1, result); + assertEquals(1, result); - Set expected = new LinkedHashSet(); - expected.add("a"); - expected.add("b"); + Set expected = new LinkedHashSet(); + expected.add("a"); + expected.add("b"); - assertEquals(expected, jedis.zrange("foo", 0, 100)); + assertEquals(expected, jedis.zrange("foo", 0, 100)); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - long bresult = jedis.zremrangeByRank(bfoo, 0, 0); + long bresult = jedis.zremrangeByRank(bfoo, 0, 0); - assertEquals(1, bresult); + assertEquals(1, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(ba); - bexpected.add(bb); + Set bexpected = new LinkedHashSet(); + bexpected.add(ba); + bexpected.add(bb); - assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); } @Test public void zremrangeByScore() { - jedis.zadd("foo", 1d, "a"); - jedis.zadd("foo", 10d, "b"); - jedis.zadd("foo", 0.1d, "c"); - jedis.zadd("foo", 2d, "a"); + jedis.zadd("foo", 1d, "a"); + jedis.zadd("foo", 10d, "b"); + jedis.zadd("foo", 0.1d, "c"); + jedis.zadd("foo", 2d, "a"); - long result = jedis.zremrangeByScore("foo", 0, 2); + long result = jedis.zremrangeByScore("foo", 0, 2); - assertEquals(2, result); + assertEquals(2, result); - Set expected = new LinkedHashSet(); - expected.add("b"); + Set expected = new LinkedHashSet(); + expected.add("b"); - assertEquals(expected, jedis.zrange("foo", 0, 100)); + assertEquals(expected, jedis.zrange("foo", 0, 100)); - // Binary - jedis.zadd(bfoo, 1d, ba); - jedis.zadd(bfoo, 10d, bb); - jedis.zadd(bfoo, 0.1d, bc); - jedis.zadd(bfoo, 2d, ba); + // Binary + jedis.zadd(bfoo, 1d, ba); + jedis.zadd(bfoo, 10d, bb); + jedis.zadd(bfoo, 0.1d, bc); + jedis.zadd(bfoo, 2d, ba); - long bresult = jedis.zremrangeByScore(bfoo, 0, 2); + long bresult = jedis.zremrangeByScore(bfoo, 0, 2); - assertEquals(2, bresult); + assertEquals(2, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(bb); + Set bexpected = new LinkedHashSet(); + bexpected.add(bb); - assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); } @Test public void zunionstore() { - jedis.zadd("foo", 1, "a"); - jedis.zadd("foo", 2, "b"); - jedis.zadd("bar", 2, "a"); - jedis.zadd("bar", 2, "b"); + jedis.zadd("foo", 1, "a"); + jedis.zadd("foo", 2, "b"); + jedis.zadd("bar", 2, "a"); + jedis.zadd("bar", 2, "b"); - long result = jedis.zunionstore("dst", "foo", "bar"); + long result = jedis.zunionstore("dst", "foo", "bar"); - assertEquals(2, result); + assertEquals(2, result); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("b", new Double(4))); - expected.add(new Tuple("a", new Double(3))); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("b", new Double(4))); + expected.add(new Tuple("a", new Double(3))); - assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); + assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); - // Binary - jedis.zadd(bfoo, 1, ba); - jedis.zadd(bfoo, 2, bb); - jedis.zadd(bbar, 2, ba); - jedis.zadd(bbar, 2, bb); + // Binary + jedis.zadd(bfoo, 1, ba); + jedis.zadd(bfoo, 2, bb); + jedis.zadd(bbar, 2, ba); + jedis.zadd(bbar, 2, bb); - long bresult = jedis.zunionstore(SafeEncoder.encode("dst"), bfoo, bbar); + long bresult = jedis.zunionstore(SafeEncoder.encode("dst"), bfoo, bbar); - assertEquals(2, bresult); + assertEquals(2, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bb, new Double(4))); - bexpected.add(new Tuple(ba, new Double(3))); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bb, new Double(4))); + bexpected.add(new Tuple(ba, new Double(3))); - assertEquals(bexpected, jedis.zrangeWithScores(SafeEncoder - .encode("dst"), 0, 100)); + assertEquals(bexpected, + jedis.zrangeWithScores(SafeEncoder.encode("dst"), 0, 100)); } @Test public void zunionstoreParams() { - jedis.zadd("foo", 1, "a"); - jedis.zadd("foo", 2, "b"); - jedis.zadd("bar", 2, "a"); - jedis.zadd("bar", 2, "b"); + jedis.zadd("foo", 1, "a"); + jedis.zadd("foo", 2, "b"); + jedis.zadd("bar", 2, "a"); + jedis.zadd("bar", 2, "b"); - ZParams params = new ZParams(); - params.weights(2, 2); - params.aggregate(ZParams.Aggregate.SUM); - long result = jedis.zunionstore("dst", params, "foo", "bar"); + ZParams params = new ZParams(); + params.weights(2, 2); + params.aggregate(ZParams.Aggregate.SUM); + long result = jedis.zunionstore("dst", params, "foo", "bar"); - assertEquals(2, result); + assertEquals(2, result); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("b", new Double(8))); - expected.add(new Tuple("a", new Double(6))); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("b", new Double(8))); + expected.add(new Tuple("a", new Double(6))); - assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); + assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); - // Binary - jedis.zadd(bfoo, 1, ba); - jedis.zadd(bfoo, 2, bb); - jedis.zadd(bbar, 2, ba); - jedis.zadd(bbar, 2, bb); + // Binary + jedis.zadd(bfoo, 1, ba); + jedis.zadd(bfoo, 2, bb); + jedis.zadd(bbar, 2, ba); + jedis.zadd(bbar, 2, bb); - ZParams bparams = new ZParams(); - bparams.weights(2, 2); - bparams.aggregate(ZParams.Aggregate.SUM); - long bresult = jedis.zunionstore(SafeEncoder.encode("dst"), bparams, - bfoo, bbar); + ZParams bparams = new ZParams(); + bparams.weights(2, 2); + bparams.aggregate(ZParams.Aggregate.SUM); + long bresult = jedis.zunionstore(SafeEncoder.encode("dst"), bparams, + bfoo, bbar); - assertEquals(2, bresult); + assertEquals(2, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(bb, new Double(8))); - bexpected.add(new Tuple(ba, new Double(6))); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(bb, new Double(8))); + bexpected.add(new Tuple(ba, new Double(6))); - assertEquals(bexpected, jedis.zrangeWithScores(SafeEncoder - .encode("dst"), 0, 100)); + assertEquals(bexpected, + jedis.zrangeWithScores(SafeEncoder.encode("dst"), 0, 100)); } @Test public void zinterstore() { - jedis.zadd("foo", 1, "a"); - jedis.zadd("foo", 2, "b"); - jedis.zadd("bar", 2, "a"); + jedis.zadd("foo", 1, "a"); + jedis.zadd("foo", 2, "b"); + jedis.zadd("bar", 2, "a"); - long result = jedis.zinterstore("dst", "foo", "bar"); + long result = jedis.zinterstore("dst", "foo", "bar"); - assertEquals(1, result); + assertEquals(1, result); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("a", new Double(3))); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("a", new Double(3))); - assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); + assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); - // Binary - jedis.zadd(bfoo, 1, ba); - jedis.zadd(bfoo, 2, bb); - jedis.zadd(bbar, 2, ba); + // Binary + jedis.zadd(bfoo, 1, ba); + jedis.zadd(bfoo, 2, bb); + jedis.zadd(bbar, 2, ba); - long bresult = jedis.zinterstore(SafeEncoder.encode("dst"), bfoo, bbar); + long bresult = jedis.zinterstore(SafeEncoder.encode("dst"), bfoo, bbar); - assertEquals(1, bresult); + assertEquals(1, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(ba, new Double(3))); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(ba, new Double(3))); - assertEquals(bexpected, jedis.zrangeWithScores(SafeEncoder - .encode("dst"), 0, 100)); + assertEquals(bexpected, + jedis.zrangeWithScores(SafeEncoder.encode("dst"), 0, 100)); } @Test public void zintertoreParams() { - jedis.zadd("foo", 1, "a"); - jedis.zadd("foo", 2, "b"); - jedis.zadd("bar", 2, "a"); + jedis.zadd("foo", 1, "a"); + jedis.zadd("foo", 2, "b"); + jedis.zadd("bar", 2, "a"); - ZParams params = new ZParams(); - params.weights(2, 2); - params.aggregate(ZParams.Aggregate.SUM); - long result = jedis.zinterstore("dst", params, "foo", "bar"); + ZParams params = new ZParams(); + params.weights(2, 2); + params.aggregate(ZParams.Aggregate.SUM); + long result = jedis.zinterstore("dst", params, "foo", "bar"); - assertEquals(1, result); + assertEquals(1, result); - Set expected = new LinkedHashSet(); - expected.add(new Tuple("a", new Double(6))); + Set expected = new LinkedHashSet(); + expected.add(new Tuple("a", new Double(6))); - assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); + assertEquals(expected, jedis.zrangeWithScores("dst", 0, 100)); - // Binary - jedis.zadd(bfoo, 1, ba); - jedis.zadd(bfoo, 2, bb); - jedis.zadd(bbar, 2, ba); + // Binary + jedis.zadd(bfoo, 1, ba); + jedis.zadd(bfoo, 2, bb); + jedis.zadd(bbar, 2, ba); - ZParams bparams = new ZParams(); - bparams.weights(2, 2); - bparams.aggregate(ZParams.Aggregate.SUM); - long bresult = jedis.zinterstore(SafeEncoder.encode("dst"), bparams, - bfoo, bbar); + ZParams bparams = new ZParams(); + bparams.weights(2, 2); + bparams.aggregate(ZParams.Aggregate.SUM); + long bresult = jedis.zinterstore(SafeEncoder.encode("dst"), bparams, + bfoo, bbar); - assertEquals(1, bresult); + assertEquals(1, bresult); - Set bexpected = new LinkedHashSet(); - bexpected.add(new Tuple(ba, new Double(6))); + Set bexpected = new LinkedHashSet(); + bexpected.add(new Tuple(ba, new Double(6))); - assertEquals(bexpected, jedis.zrangeWithScores(SafeEncoder - .encode("dst"), 0, 100)); + assertEquals(bexpected, + jedis.zrangeWithScores(SafeEncoder.encode("dst"), 0, 100)); } @Test public void tupleCompare() { - Tuple t1 = new Tuple("foo", 1d); - Tuple t2 = new Tuple("bar", 2d); + Tuple t1 = new Tuple("foo", 1d); + Tuple t2 = new Tuple("bar", 2d); - assertEquals(-1, t1.compareTo(t2)); - assertEquals(1, t2.compareTo(t1)); - assertEquals(0, t2.compareTo(t2)); + assertEquals(-1, t1.compareTo(t2)); + assertEquals(1, t2.compareTo(t1)); + assertEquals(0, t2.compareTo(t2)); } - @Test public void zscan() { jedis.zadd("foo", 1, "a"); jedis.zadd("foo", 2, "b"); - + ScanResult result = jedis.zscan("foo", 0); assertEquals(0, result.getCursor()); diff --git a/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java index 10d8965..543dacb 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/SortingCommandsTest.java @@ -25,277 +25,277 @@ public class SortingCommandsTest extends JedisCommandTestBase { @Test public void sort() { - jedis.lpush("foo", "3"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "1"); + jedis.lpush("foo", "3"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "1"); - List result = jedis.sort("foo"); + List result = jedis.sort("foo"); - List expected = new ArrayList(); - expected.add("1"); - expected.add("2"); - expected.add("3"); + List expected = new ArrayList(); + expected.add("1"); + expected.add("2"); + expected.add("3"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.lpush(bfoo, b3); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b1); + // Binary + jedis.lpush(bfoo, b3); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b1); - List bresult = jedis.sort(bfoo); + List bresult = jedis.sort(bfoo); - List bexpected = new ArrayList(); - bexpected.add(b1); - bexpected.add(b2); - bexpected.add(b3); + List bexpected = new ArrayList(); + bexpected.add(b1); + bexpected.add(b2); + bexpected.add(b3); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortBy() { - jedis.lpush("foo", "2"); - jedis.lpush("foo", "3"); - jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "3"); + jedis.lpush("foo", "1"); - jedis.set("bar1", "3"); - jedis.set("bar2", "2"); - jedis.set("bar3", "1"); + jedis.set("bar1", "3"); + jedis.set("bar2", "2"); + jedis.set("bar3", "1"); - SortingParams sp = new SortingParams(); - sp.by("bar*"); + SortingParams sp = new SortingParams(); + sp.by("bar*"); - List result = jedis.sort("foo", sp); + List result = jedis.sort("foo", sp); - List expected = new ArrayList(); - expected.add("3"); - expected.add("2"); - expected.add("1"); + List expected = new ArrayList(); + expected.add("3"); + expected.add("2"); + expected.add("1"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b3); - jedis.lpush(bfoo, b1); + // Binary + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b3); + jedis.lpush(bfoo, b1); - jedis.set(bbar1, b3); - jedis.set(bbar2, b2); - jedis.set(bbar3, b1); + jedis.set(bbar1, b3); + jedis.set(bbar2, b2); + jedis.set(bbar3, b1); - SortingParams bsp = new SortingParams(); - bsp.by(bbarstar); + SortingParams bsp = new SortingParams(); + bsp.by(bbarstar); - List bresult = jedis.sort(bfoo, bsp); + List bresult = jedis.sort(bfoo, bsp); - List bexpected = new ArrayList(); - bexpected.add(b3); - bexpected.add(b2); - bexpected.add(b1); + List bexpected = new ArrayList(); + bexpected.add(b3); + bexpected.add(b2); + bexpected.add(b1); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortDesc() { - jedis.lpush("foo", "3"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "1"); + jedis.lpush("foo", "3"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "1"); - SortingParams sp = new SortingParams(); - sp.desc(); + SortingParams sp = new SortingParams(); + sp.desc(); - List result = jedis.sort("foo", sp); + List result = jedis.sort("foo", sp); - List expected = new ArrayList(); - expected.add("3"); - expected.add("2"); - expected.add("1"); + List expected = new ArrayList(); + expected.add("3"); + expected.add("2"); + expected.add("1"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.lpush(bfoo, b3); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b1); + // Binary + jedis.lpush(bfoo, b3); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b1); - SortingParams bsp = new SortingParams(); - bsp.desc(); + SortingParams bsp = new SortingParams(); + bsp.desc(); - List bresult = jedis.sort(bfoo, bsp); + List bresult = jedis.sort(bfoo, bsp); - List bexpected = new ArrayList(); - bexpected.add(b3); - bexpected.add(b2); - bexpected.add(b1); + List bexpected = new ArrayList(); + bexpected.add(b3); + bexpected.add(b2); + bexpected.add(b1); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortLimit() { - for (int n = 10; n > 0; n--) { - jedis.lpush("foo", String.valueOf(n)); - } + for (int n = 10; n > 0; n--) { + jedis.lpush("foo", String.valueOf(n)); + } - SortingParams sp = new SortingParams(); - sp.limit(0, 3); + SortingParams sp = new SortingParams(); + sp.limit(0, 3); - List result = jedis.sort("foo", sp); + List result = jedis.sort("foo", sp); - List expected = new ArrayList(); - expected.add("1"); - expected.add("2"); - expected.add("3"); + List expected = new ArrayList(); + expected.add("1"); + expected.add("2"); + expected.add("3"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.rpush(bfoo, new byte[] { (byte) '4' }); - jedis.rpush(bfoo, new byte[] { (byte) '3' }); - jedis.rpush(bfoo, new byte[] { (byte) '2' }); - jedis.rpush(bfoo, new byte[] { (byte) '1' }); + // Binary + jedis.rpush(bfoo, new byte[] { (byte) '4' }); + jedis.rpush(bfoo, new byte[] { (byte) '3' }); + jedis.rpush(bfoo, new byte[] { (byte) '2' }); + jedis.rpush(bfoo, new byte[] { (byte) '1' }); - SortingParams bsp = new SortingParams(); - bsp.limit(0, 3); + SortingParams bsp = new SortingParams(); + bsp.limit(0, 3); - List bresult = jedis.sort(bfoo, bsp); + List bresult = jedis.sort(bfoo, bsp); - List bexpected = new ArrayList(); - bexpected.add(b1); - bexpected.add(b2); - bexpected.add(b3); + List bexpected = new ArrayList(); + bexpected.add(b1); + bexpected.add(b2); + bexpected.add(b3); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortAlpha() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "10"); + jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "10"); - SortingParams sp = new SortingParams(); - sp.alpha(); + SortingParams sp = new SortingParams(); + sp.alpha(); - List result = jedis.sort("foo", sp); + List result = jedis.sort("foo", sp); - List expected = new ArrayList(); - expected.add("1"); - expected.add("10"); - expected.add("2"); + List expected = new ArrayList(); + expected.add("1"); + expected.add("10"); + expected.add("2"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b10); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b10); - SortingParams bsp = new SortingParams(); - bsp.alpha(); + SortingParams bsp = new SortingParams(); + bsp.alpha(); - List bresult = jedis.sort(bfoo, bsp); + List bresult = jedis.sort(bfoo, bsp); - List bexpected = new ArrayList(); - bexpected.add(b1); - bexpected.add(b10); - bexpected.add(b2); + List bexpected = new ArrayList(); + bexpected.add(b1); + bexpected.add(b10); + bexpected.add(b2); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortGet() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "10"); + 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("bar1", "bar1"); + jedis.set("bar2", "bar2"); + jedis.set("bar10", "bar10"); - jedis.set("car1", "car1"); - jedis.set("car2", "car2"); - jedis.set("car10", "car10"); + jedis.set("car1", "car1"); + jedis.set("car2", "car2"); + jedis.set("car10", "car10"); - SortingParams sp = new SortingParams(); - sp.get("car*", "bar*"); + SortingParams sp = new SortingParams(); + sp.get("car*", "bar*"); - List result = jedis.sort("foo", sp); + List result = jedis.sort("foo", sp); - List expected = new ArrayList(); - expected.add("car1"); - expected.add("bar1"); - expected.add("car2"); - expected.add("bar2"); - expected.add("car10"); - expected.add("bar10"); + List expected = new ArrayList(); + expected.add("car1"); + expected.add("bar1"); + expected.add("car2"); + expected.add("bar2"); + expected.add("car10"); + expected.add("bar10"); - assertEquals(expected, result); + assertEquals(expected, result); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b10); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b10); - jedis.set(bbar1, bbar1); - jedis.set(bbar2, bbar2); - jedis.set(bbar10, bbar10); + jedis.set(bbar1, bbar1); + jedis.set(bbar2, bbar2); + jedis.set(bbar10, bbar10); - jedis.set(bcar1, bcar1); - jedis.set(bcar2, bcar2); - jedis.set(bcar10, bcar10); + jedis.set(bcar1, bcar1); + jedis.set(bcar2, bcar2); + jedis.set(bcar10, bcar10); - SortingParams bsp = new SortingParams(); - bsp.get(bcarstar, bbarstar); + SortingParams bsp = new SortingParams(); + bsp.get(bcarstar, bbarstar); - List bresult = jedis.sort(bfoo, bsp); + List bresult = jedis.sort(bfoo, bsp); - List bexpected = new ArrayList(); - bexpected.add(bcar1); - bexpected.add(bbar1); - bexpected.add(bcar2); - bexpected.add(bbar2); - bexpected.add(bcar10); - bexpected.add(bbar10); + List bexpected = new ArrayList(); + bexpected.add(bcar1); + bexpected.add(bbar1); + bexpected.add(bcar2); + bexpected.add(bbar2); + bexpected.add(bcar10); + bexpected.add(bbar10); - assertEquals(bexpected, bresult); + assertEquals(bexpected, bresult); } @Test public void sortStore() { - jedis.lpush("foo", "1"); - jedis.lpush("foo", "2"); - jedis.lpush("foo", "10"); + jedis.lpush("foo", "1"); + jedis.lpush("foo", "2"); + jedis.lpush("foo", "10"); - long result = jedis.sort("foo", "result"); + long result = jedis.sort("foo", "result"); - List expected = new ArrayList(); - expected.add("1"); - expected.add("2"); - expected.add("10"); + List expected = new ArrayList(); + expected.add("1"); + expected.add("2"); + expected.add("10"); - assertEquals(3, result); - assertEquals(expected, jedis.lrange("result", 0, 1000)); + assertEquals(3, result); + assertEquals(expected, jedis.lrange("result", 0, 1000)); - // Binary - jedis.lpush(bfoo, b1); - jedis.lpush(bfoo, b2); - jedis.lpush(bfoo, b10); + // Binary + jedis.lpush(bfoo, b1); + jedis.lpush(bfoo, b2); + jedis.lpush(bfoo, b10); - byte[] bkresult = new byte[] { 0X09, 0x0A, 0x0B, 0x0C }; - long bresult = jedis.sort(bfoo, bkresult); + byte[] bkresult = new byte[] { 0X09, 0x0A, 0x0B, 0x0C }; + long bresult = jedis.sort(bfoo, bkresult); - List bexpected = new ArrayList(); - bexpected.add(b1); - bexpected.add(b2); - bexpected.add(b10); + List bexpected = new ArrayList(); + bexpected.add(b1); + bexpected.add(b2); + bexpected.add(b10); - assertEquals(3, bresult); - assertEquals(bexpected, jedis.lrange(bkresult, 0, 1000)); + assertEquals(3, bresult); + assertEquals(bexpected, jedis.lrange(bkresult, 0, 1000)); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java index e34eb7b..625fcc9 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/StringValuesCommandsTest.java @@ -10,200 +10,200 @@ import redis.clients.jedis.exceptions.JedisDataException; public class StringValuesCommandsTest extends JedisCommandTestBase { @Test public void setAndGet() { - String status = jedis.set("foo", "bar"); - assertEquals("OK", status); + String status = jedis.set("foo", "bar"); + assertEquals("OK", status); - String value = jedis.get("foo"); - assertEquals("bar", value); + String value = jedis.get("foo"); + assertEquals("bar", value); - assertEquals(null, jedis.get("bar")); + assertEquals(null, jedis.get("bar")); } @Test public void getSet() { - String value = jedis.getSet("foo", "bar"); - assertEquals(null, value); - value = jedis.get("foo"); - assertEquals("bar", value); + String value = jedis.getSet("foo", "bar"); + assertEquals(null, value); + value = jedis.get("foo"); + assertEquals("bar", value); } @Test public void mget() { - List values = jedis.mget("foo", "bar"); - List expected = new ArrayList(); - expected.add(null); - expected.add(null); + List values = jedis.mget("foo", "bar"); + List expected = new ArrayList(); + expected.add(null); + expected.add(null); - assertEquals(expected, values); + assertEquals(expected, values); - jedis.set("foo", "bar"); + jedis.set("foo", "bar"); - expected = new ArrayList(); - expected.add("bar"); - expected.add(null); - values = jedis.mget("foo", "bar"); + expected = new ArrayList(); + expected.add("bar"); + expected.add(null); + values = jedis.mget("foo", "bar"); - assertEquals(expected, values); + assertEquals(expected, values); - jedis.set("bar", "foo"); + jedis.set("bar", "foo"); - expected = new ArrayList(); - expected.add("bar"); - expected.add("foo"); - values = jedis.mget("foo", "bar"); + expected = new ArrayList(); + expected.add("bar"); + expected.add("foo"); + values = jedis.mget("foo", "bar"); - assertEquals(expected, values); + assertEquals(expected, values); } @Test public void setnx() { - long status = jedis.setnx("foo", "bar"); - assertEquals(1, status); - assertEquals("bar", jedis.get("foo")); + long status = jedis.setnx("foo", "bar"); + assertEquals(1, status); + assertEquals("bar", jedis.get("foo")); - status = jedis.setnx("foo", "bar2"); - assertEquals(0, status); - assertEquals("bar", jedis.get("foo")); + status = jedis.setnx("foo", "bar2"); + assertEquals(0, status); + assertEquals("bar", jedis.get("foo")); } @Test public void setex() { - String status = jedis.setex("foo", 20, "bar"); - assertEquals("OK", status); - long ttl = jedis.ttl("foo"); - assertTrue(ttl > 0 && ttl <= 20); + String status = jedis.setex("foo", 20, "bar"); + assertEquals("OK", status); + long ttl = jedis.ttl("foo"); + assertTrue(ttl > 0 && ttl <= 20); } @Test public void mset() { - String status = jedis.mset("foo", "bar", "bar", "foo"); - assertEquals("OK", status); - assertEquals("bar", jedis.get("foo")); - assertEquals("foo", jedis.get("bar")); + String status = jedis.mset("foo", "bar", "bar", "foo"); + assertEquals("OK", status); + assertEquals("bar", jedis.get("foo")); + assertEquals("foo", jedis.get("bar")); } @Test public void msetnx() { - long status = jedis.msetnx("foo", "bar", "bar", "foo"); - assertEquals(1, status); - assertEquals("bar", jedis.get("foo")); - assertEquals("foo", jedis.get("bar")); + long status = jedis.msetnx("foo", "bar", "bar", "foo"); + assertEquals(1, status); + assertEquals("bar", jedis.get("foo")); + assertEquals("foo", jedis.get("bar")); - status = jedis.msetnx("foo", "bar1", "bar2", "foo2"); - assertEquals(0, status); - assertEquals("bar", jedis.get("foo")); - assertEquals("foo", jedis.get("bar")); + status = jedis.msetnx("foo", "bar1", "bar2", "foo2"); + assertEquals(0, status); + assertEquals("bar", jedis.get("foo")); + assertEquals("foo", jedis.get("bar")); } @Test(expected = JedisDataException.class) public void incrWrongValue() { - jedis.set("foo", "bar"); - jedis.incr("foo"); + jedis.set("foo", "bar"); + jedis.incr("foo"); } @Test public void incr() { - long value = jedis.incr("foo"); - assertEquals(1, value); - value = jedis.incr("foo"); - assertEquals(2, value); + long value = jedis.incr("foo"); + assertEquals(1, value); + value = jedis.incr("foo"); + assertEquals(2, value); } @Test(expected = JedisDataException.class) public void incrByWrongValue() { - jedis.set("foo", "bar"); - jedis.incrBy("foo", 2); + jedis.set("foo", "bar"); + jedis.incrBy("foo", 2); } @Test public void incrBy() { - long value = jedis.incrBy("foo", 2); - assertEquals(2, value); - value = jedis.incrBy("foo", 2); - assertEquals(4, value); + long value = jedis.incrBy("foo", 2); + assertEquals(2, value); + value = jedis.incrBy("foo", 2); + assertEquals(4, value); } @Test(expected = JedisDataException.class) public void decrWrongValue() { - jedis.set("foo", "bar"); - jedis.decr("foo"); + jedis.set("foo", "bar"); + jedis.decr("foo"); } @Test public void decr() { - long value = jedis.decr("foo"); - assertEquals(-1, value); - value = jedis.decr("foo"); - assertEquals(-2, value); + long value = jedis.decr("foo"); + assertEquals(-1, value); + value = jedis.decr("foo"); + assertEquals(-2, value); } @Test(expected = JedisDataException.class) public void decrByWrongValue() { - jedis.set("foo", "bar"); - jedis.decrBy("foo", 2); + jedis.set("foo", "bar"); + jedis.decrBy("foo", 2); } @Test public void decrBy() { - long value = jedis.decrBy("foo", 2); - assertEquals(-2, value); - value = jedis.decrBy("foo", 2); - assertEquals(-4, value); + long value = jedis.decrBy("foo", 2); + assertEquals(-2, value); + value = jedis.decrBy("foo", 2); + assertEquals(-4, value); } @Test public void append() { - long value = jedis.append("foo", "bar"); - assertEquals(3, value); - assertEquals("bar", jedis.get("foo")); - value = jedis.append("foo", "bar"); - assertEquals(6, value); - assertEquals("barbar", jedis.get("foo")); + long value = jedis.append("foo", "bar"); + assertEquals(3, value); + assertEquals("bar", jedis.get("foo")); + value = jedis.append("foo", "bar"); + assertEquals(6, value); + assertEquals("barbar", jedis.get("foo")); } @Test public void substr() { - jedis.set("s", "This is a string"); - assertEquals("This", jedis.substr("s", 0, 3)); - assertEquals("ing", jedis.substr("s", -3, -1)); - assertEquals("This is a string", jedis.substr("s", 0, -1)); - assertEquals(" string", jedis.substr("s", 9, 100000)); + jedis.set("s", "This is a string"); + assertEquals("This", jedis.substr("s", 0, 3)); + assertEquals("ing", jedis.substr("s", -3, -1)); + assertEquals("This is a string", jedis.substr("s", 0, -1)); + assertEquals(" string", jedis.substr("s", 9, 100000)); } @Test public void strlen() { - jedis.set("s", "This is a string"); - assertEquals("This is a string".length(), jedis.strlen("s").intValue()); + jedis.set("s", "This is a string"); + assertEquals("This is a string".length(), jedis.strlen("s").intValue()); } @Test public void incrLargeNumbers() { - long value = jedis.incr("foo"); - assertEquals(1, value); - assertEquals(1L + Integer.MAX_VALUE, (long) jedis.incrBy("foo", - Integer.MAX_VALUE)); + long value = jedis.incr("foo"); + assertEquals(1, value); + assertEquals(1L + Integer.MAX_VALUE, + (long) jedis.incrBy("foo", Integer.MAX_VALUE)); } @Test(expected = JedisDataException.class) public void incrReallyLargeNumbers() { - jedis.set("foo", Long.toString(Long.MAX_VALUE)); - long value = jedis.incr("foo"); - assertEquals(Long.MIN_VALUE, value); + jedis.set("foo", Long.toString(Long.MAX_VALUE)); + long value = jedis.incr("foo"); + assertEquals(Long.MIN_VALUE, value); } - + @Test public void incrByFloat() { - double value = jedis.incrByFloat("foo", 10.5); - assertEquals(10.5, value, 0.0); - value = jedis.incrByFloat("foo", 0.1); - assertEquals(10.6, value, 0.0); + double value = jedis.incrByFloat("foo", 10.5); + assertEquals(10.5, value, 0.0); + value = jedis.incrByFloat("foo", 0.1); + assertEquals(10.6, value, 0.0); } - + @Test public void psetex() { - String status = jedis.psetex("foo", 20000, "bar"); - assertEquals("OK", status); - long ttl = jedis.ttl("foo"); - assertTrue(ttl > 0 && ttl <= 20000); + String status = jedis.psetex("foo", 20000, "bar"); + assertEquals("OK", status); + long ttl = jedis.ttl("foo"); + assertTrue(ttl > 0 && ttl <= 20000); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java index fb52063..ac3419e 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/TransactionCommandsTest.java @@ -11,13 +11,12 @@ import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; -import redis.clients.jedis.Protocol.Keyword; import redis.clients.jedis.Pipeline; +import redis.clients.jedis.Protocol.Keyword; import redis.clients.jedis.Response; import redis.clients.jedis.Transaction; import redis.clients.jedis.TransactionBlock; import redis.clients.jedis.exceptions.JedisDataException; -import redis.clients.jedis.exceptions.JedisException; public class TransactionCommandsTest extends JedisCommandTestBase { final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; @@ -296,48 +295,48 @@ public class TransactionCommandsTest extends JedisCommandTestBase { assertNull(results); } - + @Test public void testResetStateWhenInMulti() { - jedis.auth("foobared"); - - Transaction t = jedis.multi(); - t.set("foooo", "barrr"); - - jedis.resetState(); - assertEquals(null, jedis.get("foooo")); + jedis.auth("foobared"); + + Transaction t = jedis.multi(); + t.set("foooo", "barrr"); + + jedis.resetState(); + assertEquals(null, jedis.get("foooo")); } - + @Test public void testResetStateWhenInMultiWithinPipeline() { - jedis.auth("foobared"); - - Pipeline p = jedis.pipelined(); - p.multi(); - p.set("foooo", "barrr"); + jedis.auth("foobared"); - jedis.resetState(); - assertEquals(null, jedis.get("foooo")); + Pipeline p = jedis.pipelined(); + p.multi(); + p.set("foooo", "barrr"); + + jedis.resetState(); + assertEquals(null, jedis.get("foooo")); } @Test public void testResetStateWhenInWatch() { - jedis.watch("mykey", "somekey"); - - // state reset : unwatch - jedis.resetState(); - - Transaction t = jedis.multi(); + jedis.watch("mykey", "somekey"); - nj.connect(); - nj.auth("foobared"); - nj.set("mykey", "bar"); - nj.disconnect(); + // state reset : unwatch + jedis.resetState(); - t.set("mykey", "foo"); - List resp = t.exec(); - assertNotNull(resp); - assertEquals(1, resp.size()); - assertEquals("foo", jedis.get("mykey")); + Transaction t = jedis.multi(); + + nj.connect(); + nj.auth("foobared"); + nj.set("mykey", "bar"); + nj.disconnect(); + + t.set("mykey", "foo"); + List resp = t.exec(); + assertNotNull(resp); + assertEquals(1, resp.size()); + assertEquals("foo", jedis.get("mykey")); } } \ No newline at end of file diff --git a/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java index 5e84ec9..43bb705 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/VariadicCommandsTest.java @@ -10,181 +10,181 @@ import java.util.Set; import org.junit.Test; public class VariadicCommandsTest extends JedisCommandTestBase { - final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; + final byte[] bfoo = { 0x01, 0x02, 0x03, 0x04 }; final byte[] bbar = { 0x05, 0x06, 0x07, 0x08 }; final byte[] bcar = { 0x09, 0x0A, 0x0B, 0x0C }; final byte[] bfoo1 = { 0x01, 0x02, 0x03, 0x04, 0x0A }; final byte[] bfoo2 = { 0x01, 0x02, 0x03, 0x04, 0x0B }; - - @Test + + @Test public void hdel() { - Map hash = new HashMap(); - hash.put("bar", "car"); - hash.put("car", "bar"); - hash.put("foo2", "bar"); - jedis.hmset("foo", hash); + Map hash = new HashMap(); + hash.put("bar", "car"); + hash.put("car", "bar"); + hash.put("foo2", "bar"); + jedis.hmset("foo", hash); - assertEquals(0, jedis.hdel("bar", "foo", "foo1").intValue()); - assertEquals(0, jedis.hdel("foo", "foo", "foo1").intValue()); - assertEquals(2, jedis.hdel("foo", "bar", "foo2").intValue()); - assertEquals(null, jedis.hget("foo", "bar")); + assertEquals(0, jedis.hdel("bar", "foo", "foo1").intValue()); + assertEquals(0, jedis.hdel("foo", "foo", "foo1").intValue()); + assertEquals(2, jedis.hdel("foo", "bar", "foo2").intValue()); + assertEquals(null, jedis.hget("foo", "bar")); - // Binary - Map bhash = new HashMap(); - bhash.put(bbar, bcar); - bhash.put(bcar, bbar); - bhash.put(bfoo2, bbar); - jedis.hmset(bfoo, bhash); + // Binary + Map bhash = new HashMap(); + bhash.put(bbar, bcar); + bhash.put(bcar, bbar); + bhash.put(bfoo2, bbar); + jedis.hmset(bfoo, bhash); - assertEquals(0, jedis.hdel(bbar, bfoo, bfoo1).intValue()); - assertEquals(0, jedis.hdel(bfoo, bfoo, bfoo1).intValue()); - assertEquals(2, jedis.hdel(bfoo, bbar, bfoo2).intValue()); - assertEquals(null, jedis.hget(bfoo, bbar)); + assertEquals(0, jedis.hdel(bbar, bfoo, bfoo1).intValue()); + assertEquals(0, jedis.hdel(bfoo, bfoo, bfoo1).intValue()); + assertEquals(2, jedis.hdel(bfoo, bbar, bfoo2).intValue()); + assertEquals(null, jedis.hget(bfoo, bbar)); } - - @Test + + @Test public void rpush() { - long size = jedis.rpush("foo", "bar", "foo"); - assertEquals(2, size); - - List expected = new ArrayList(); - expected.add("bar"); - expected.add("foo"); - - List values = jedis.lrange("foo",0,-1); - assertEquals(expected, values); - - // Binary - size = jedis.rpush(bfoo, bbar, bfoo); - assertEquals(2, size); - - List bexpected = new ArrayList(); - bexpected.add(bbar); - bexpected.add(bfoo); + long size = jedis.rpush("foo", "bar", "foo"); + assertEquals(2, size); - List bvalues = jedis.lrange(bfoo, 0, -1); - assertEquals(bexpected, bvalues); + List expected = new ArrayList(); + expected.add("bar"); + expected.add("foo"); + + List values = jedis.lrange("foo", 0, -1); + assertEquals(expected, values); + + // Binary + size = jedis.rpush(bfoo, bbar, bfoo); + assertEquals(2, size); + + List bexpected = new ArrayList(); + bexpected.add(bbar); + bexpected.add(bfoo); + + List bvalues = jedis.lrange(bfoo, 0, -1); + assertEquals(bexpected, bvalues); } - - @Test + + @Test public void lpush() { - long size = jedis.lpush("foo", "bar", "foo"); - assertEquals(2, size); - - List expected = new ArrayList(); - expected.add("foo"); - expected.add("bar"); - - List values = jedis.lrange("foo",0,-1); - assertEquals(expected, values); - - // Binary - size = jedis.lpush(bfoo, bbar, bfoo); - assertEquals(2, size); - - List bexpected = new ArrayList(); - bexpected.add(bfoo); - bexpected.add(bbar); + long size = jedis.lpush("foo", "bar", "foo"); + assertEquals(2, size); + + List expected = new ArrayList(); + expected.add("foo"); + expected.add("bar"); + + List values = jedis.lrange("foo", 0, -1); + assertEquals(expected, values); + + // Binary + size = jedis.lpush(bfoo, bbar, bfoo); + assertEquals(2, size); + + List bexpected = new ArrayList(); + bexpected.add(bfoo); + bexpected.add(bbar); + + List bvalues = jedis.lrange(bfoo, 0, -1); + assertEquals(bexpected, bvalues); - List bvalues = jedis.lrange(bfoo, 0, -1); - assertEquals(bexpected, bvalues); - } - - @Test + + @Test public void sadd() { - long status = jedis.sadd("foo", "bar", "foo1"); - assertEquals(2, status); + long status = jedis.sadd("foo", "bar", "foo1"); + assertEquals(2, status); - status = jedis.sadd("foo", "bar", "car"); - assertEquals(1, status); + status = jedis.sadd("foo", "bar", "car"); + assertEquals(1, status); - status = jedis.sadd("foo", "bar", "foo1"); - assertEquals(0, status); + status = jedis.sadd("foo", "bar", "foo1"); + assertEquals(0, status); - status = jedis.sadd(bfoo, bbar, bfoo1); - assertEquals(2, status); + status = jedis.sadd(bfoo, bbar, bfoo1); + assertEquals(2, status); - status = jedis.sadd(bfoo, bbar, bcar); - assertEquals(1, status); + status = jedis.sadd(bfoo, bbar, bcar); + assertEquals(1, status); - status = jedis.sadd(bfoo, bbar, bfoo1); - assertEquals(0, status); + status = jedis.sadd(bfoo, bbar, bfoo1); + assertEquals(0, status); } - - @Test + + @Test public void zadd() { - Map scoreMembers = new HashMap(); - scoreMembers.put("bar", 1d); - scoreMembers.put("foo", 10d); - - long status = jedis.zadd("foo", scoreMembers); - assertEquals(2, status); + Map scoreMembers = new HashMap(); + scoreMembers.put("bar", 1d); + scoreMembers.put("foo", 10d); - scoreMembers.clear(); - scoreMembers.put("car", 0.1d); - scoreMembers.put("bar", 2d); - - status = jedis.zadd("foo", scoreMembers); - assertEquals(1, status); + long status = jedis.zadd("foo", scoreMembers); + assertEquals(2, status); - Map bscoreMembers = new HashMap(); - bscoreMembers.put(bbar, 1d); - bscoreMembers.put(bfoo, 10d); - - status = jedis.zadd(bfoo, bscoreMembers); - assertEquals(2, status); + scoreMembers.clear(); + scoreMembers.put("car", 0.1d); + scoreMembers.put("bar", 2d); - bscoreMembers.clear(); - bscoreMembers.put(bcar, 0.1d); - bscoreMembers.put(bbar, 2d); - - status = jedis.zadd(bfoo, bscoreMembers); - assertEquals(1, status); + status = jedis.zadd("foo", scoreMembers); + assertEquals(1, status); + + Map bscoreMembers = new HashMap(); + bscoreMembers.put(bbar, 1d); + bscoreMembers.put(bfoo, 10d); + + status = jedis.zadd(bfoo, bscoreMembers); + assertEquals(2, status); + + bscoreMembers.clear(); + bscoreMembers.put(bcar, 0.1d); + bscoreMembers.put(bbar, 2d); + + status = jedis.zadd(bfoo, bscoreMembers); + assertEquals(1, status); } @Test public void zrem() { - jedis.zadd("foo", 1d, "bar"); - jedis.zadd("foo", 2d, "car"); - jedis.zadd("foo", 3d, "foo1"); + jedis.zadd("foo", 1d, "bar"); + jedis.zadd("foo", 2d, "car"); + jedis.zadd("foo", 3d, "foo1"); - long status = jedis.zrem("foo", "bar", "car"); + long status = jedis.zrem("foo", "bar", "car"); - Set expected = new LinkedHashSet(); - expected.add("foo1"); + Set expected = new LinkedHashSet(); + expected.add("foo1"); - assertEquals(2, status); - assertEquals(expected, jedis.zrange("foo", 0, 100)); + assertEquals(2, status); + assertEquals(expected, jedis.zrange("foo", 0, 100)); - status = jedis.zrem("foo", "bar", "car"); - assertEquals(0, status); - - status = jedis.zrem("foo", "bar", "foo1"); - assertEquals(1, status); + status = jedis.zrem("foo", "bar", "car"); + assertEquals(0, status); - //Binary - jedis.zadd(bfoo, 1d, bbar); - jedis.zadd(bfoo, 2d, bcar); - jedis.zadd(bfoo, 3d, bfoo1); + status = jedis.zrem("foo", "bar", "foo1"); + assertEquals(1, status); - status = jedis.zrem(bfoo, bbar, bcar); + // Binary + jedis.zadd(bfoo, 1d, bbar); + jedis.zadd(bfoo, 2d, bcar); + jedis.zadd(bfoo, 3d, bfoo1); - Set bexpected = new LinkedHashSet(); - bexpected.add(bfoo); + status = jedis.zrem(bfoo, bbar, bcar); - assertEquals(2, status); - assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); + Set bexpected = new LinkedHashSet(); + bexpected.add(bfoo); - status = jedis.zrem(bfoo, bbar, bcar); - assertEquals(0, status); - - status = jedis.zrem(bfoo, bbar, bfoo1); - assertEquals(1, status); + assertEquals(2, status); + assertEquals(bexpected, jedis.zrange(bfoo, 0, 100)); - } + status = jedis.zrem(bfoo, bbar, bcar); + assertEquals(0, status); + + status = jedis.zrem(bfoo, bbar, bfoo1); + assertEquals(1, status); + + } } \ No newline at end of file From 8bec9fd373e91297ef0f1f8fa7fd41ae707542a2 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Sat, 1 Feb 2014 20:13:56 -0300 Subject: [PATCH 10/17] Implement missing pubsub commands and fix indentation --- .../redis/clients/jedis/BinaryClient.java | 5 +- .../redis/clients/jedis/BuilderFactory.java | 21 +++ src/main/java/redis/clients/jedis/Client.java | 26 +++- src/main/java/redis/clients/jedis/Jedis.java | 27 +++- .../java/redis/clients/jedis/Protocol.java | 7 +- .../PublishSubscribeCommandsTest.java | 123 +++++++++++++++++- 6 files changed, 197 insertions(+), 12 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index 56f97af..2a65d96 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -554,7 +554,10 @@ public class BinaryClient extends Connection { public void punsubscribe(final byte[]... patterns) { sendCommand(PUNSUBSCRIBE, patterns); } - + + public void pubSub(final byte[]... args) { + sendCommand(PUBSUB, args); + } public void zcount(final byte[] key, final double min, final double max) { byte byteArrayMin[] = (min == Double.NEGATIVE_INFINITY) ? "-inf".getBytes() : toByteArray(min); diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index bebd2d6..27c728b 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -2,6 +2,7 @@ package redis.clients.jedis; import redis.clients.util.SafeEncoder; +import java.nio.ByteBuffer; import java.util.*; public class BuilderFactory { @@ -96,6 +97,26 @@ public class BuilderFactory { } }; + + public static final Builder> STRING_LONG_MAP = new Builder>() { + @SuppressWarnings("unchecked") + public Map build(Object data) { + final List flatHash = (List) data; + final Map hash = new HashMap(); + final Iterator iterator = flatHash.iterator(); + while (iterator.hasNext()) { + hash.put(SafeEncoder.encode(iterator.next()), Long.valueOf(SafeEncoder.encode(iterator.next()))); + } + + return hash; + } + + public String toString() { + return "Map"; + } + + }; + public static final Builder> STRING_SET = new Builder>() { @SuppressWarnings("unchecked") public Set build(Object data) { diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index a2ec464..85f6a2b 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -1,6 +1,6 @@ package redis.clients.jedis; -import redis.clients.util.SafeEncoder; +import static redis.clients.jedis.Protocol.toByteArray; import java.util.ArrayList; import java.util.HashMap; @@ -8,8 +8,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import static redis.clients.jedis.Protocol.toByteArray; -import static redis.clients.jedis.Protocol.Command.HSCAN; +import redis.clients.util.SafeEncoder; public class Client extends BinaryClient implements Commands { public Client(final String host) { @@ -671,6 +670,18 @@ public class Client extends BinaryClient implements Commands { } subscribe(cs); } + + public void pubSubChannels(String pattern) { + pubSub(Protocol.PUBSUB_CHANNELS, pattern); + } + + public void pubSubNumPat() { + pubSub(Protocol.PUBSUB_NUM_PAT); + } + + public void pubSubNumSub(String... channels) { + pubSub(Protocol.PUBSUB_NUMSUB, channels); + } public void configSet(String parameter, String value) { configSet(SafeEncoder.encode(parameter), SafeEncoder.encode(value)); @@ -831,6 +842,15 @@ public class Client extends BinaryClient implements Commands { arg[0] = SafeEncoder.encode(subcommand); cluster(arg); } + + public void pubSub(final String subcommand, final String... args) { + final byte[][] arg = new byte[args.length+1][]; + for (int i = 1; i < arg.length; i++) { + arg[i] = SafeEncoder.encode(args[i-1]); + } + arg[0] = SafeEncoder.encode(subcommand); + pubSub(arg); + } public void cluster(final String subcommand, final String... args) { final byte[][] arg = new byte[args.length+1][]; diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index cdc3918..6191132 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -13,8 +13,6 @@ import java.util.Set; import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.util.SafeEncoder; import redis.clients.util.Slowlog; -import java.net.URI; -import java.util.*; public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommands, AdvancedJedisCommands, ScriptingCommands, BasicCommands, ClusterCommands { public Jedis(final String host) { @@ -3209,9 +3207,28 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand return client.getStatusCodeReply(); } - public String asking() { - checkIsInMulti(); + public String asking() { + checkIsInMulti(); client.asking(); return client.getStatusCodeReply(); - } + } + + public List pubSubChannels(String pattern) { + checkIsInMulti(); + client.pubSubChannels(pattern); + return client.getMultiBulkReply(); + } + + public Long pubSubNumPat() { + checkIsInMulti(); + client.pubSubNumPat(); + return client.getIntegerReply(); + } + + public Map pubSubNumSub(String... channels) { + checkIsInMulti(); + client.pubSubNumSub(channels); + return BuilderFactory.STRING_LONG_MAP + .build(client.getBinaryMultiBulkReply()); + } } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index a5e08c6..6a99f01 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -45,6 +45,11 @@ public final class Protocol { public static final String CLUSTER_SETSLOT_MIGRATING = "migrating"; public static final String CLUSTER_SETSLOT_IMPORTING = "importing"; + public static final String PUBSUB_CHANNELS= "channels"; + public static final String PUBSUB_NUMSUB = "numsub"; + public static final String PUBSUB_NUM_PAT = "numpat"; + + private Protocol() { // this prevent the class from instantiation } @@ -191,7 +196,7 @@ public final class Protocol { } public static enum Command { - PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING; + PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING; public final byte[] raw; diff --git a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java index 3ea14d5..749eda5 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java @@ -3,16 +3,17 @@ package redis.clients.jedis.tests.commands; import java.io.IOException; import java.net.UnknownHostException; import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; -import org.junit.Ignore; import org.junit.Test; import redis.clients.jedis.BinaryJedisPubSub; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPubSub; import redis.clients.jedis.exceptions.JedisConnectionException; -import redis.clients.jedis.exceptions.JedisDataException; import redis.clients.util.SafeEncoder; public class PublishSubscribeCommandsTest extends JedisCommandTestBase { @@ -63,6 +64,124 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { } }, "foo"); } + + + @Test + public void pubSubChannels(){ + final List expectedActiveChannels = Arrays.asList("testchan1", "testchan2", "testchan3"); + jedis.subscribe(new JedisPubSub() { + private int count = 0; + + @Override + public void onUnsubscribe(String channel, int subscribedChannels) { + } + + @Override + public void onSubscribe(String channel, int subscribedChannels) { + count++; + //All channels are subscribed + if (count == 3) { + Jedis otherJedis = createJedis(); + List activeChannels = otherJedis.pubSubChannels("test*"); + assertTrue(expectedActiveChannels.containsAll(activeChannels)); + unsubscribe(); + } + } + + @Override + public void onPUnsubscribe(String pattern, int subscribedChannels) { + } + + @Override + public void onPSubscribe(String pattern, int subscribedChannels) { + } + + @Override + public void onPMessage(String pattern, String channel, String message) { + } + + @Override + public void onMessage(String channel, String message) { + } + }, "testchan1", "testchan2", "testchan3"); + } + + @Test + public void pubSubNumPat(){ + jedis.psubscribe(new JedisPubSub() { + private int count=0; + @Override + public void onUnsubscribe(String channel, int subscribedChannels) { + } + + @Override + public void onSubscribe(String channel, int subscribedChannels) { + } + + @Override + public void onPUnsubscribe(String pattern, int subscribedChannels) { + } + + @Override + public void onPSubscribe(String pattern, int subscribedChannels) { + count++; + if (count == 3) { + Jedis otherJedis = createJedis(); + Long numPatterns = otherJedis.pubSubNumPat(); + assertEquals(new Long(2l), numPatterns); + punsubscribe(); + } + } + + @Override + public void onPMessage(String pattern, String channel, String message) { + } + + @Override + public void onMessage(String channel, String message) { + } + }, "test*", "test*", "chan*"); + } + + @Test + public void pubSubNumSub(){ + final Map expectedNumSub = new HashMap(); + expectedNumSub.put("testchannel2", 1l); + expectedNumSub.put("testchannel1", 1l); + jedis.subscribe(new JedisPubSub() { + private int count=0; + @Override + public void onUnsubscribe(String channel, int subscribedChannels) { + } + + @Override + public void onSubscribe(String channel, int subscribedChannels) { + count++; + if (count == 2) { + Jedis otherJedis = createJedis(); + Map numSub = otherJedis.pubSubNumSub("testchannel1", "testchannel2"); + assertEquals(expectedNumSub, numSub); + unsubscribe(); + } + } + + @Override + public void onPUnsubscribe(String pattern, int subscribedChannels) { + } + + @Override + public void onPSubscribe(String pattern, int subscribedChannels) { + } + + @Override + public void onPMessage(String pattern, String channel, String message) { + } + + @Override + public void onMessage(String channel, String message) { + } + }, "testchannel1", "testchannel2"); + } @Test public void subscribeMany() throws UnknownHostException, IOException, From 319a241de0d3c52989e88622e4e450252f0714f5 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Sat, 1 Feb 2014 20:15:52 -0300 Subject: [PATCH 11/17] Remove unnecessary imports --- src/main/java/redis/clients/jedis/BuilderFactory.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index 27c728b..1e8e5aa 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -2,7 +2,6 @@ package redis.clients.jedis; import redis.clients.util.SafeEncoder; -import java.nio.ByteBuffer; import java.util.*; public class BuilderFactory { From 4b53160a742cc8e169168d6316a93f5542fe5536 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Sat, 1 Feb 2014 20:50:36 -0300 Subject: [PATCH 12/17] Remove unnecessary Builder and fix merge issue. Fixes #520 --- .../redis/clients/jedis/BuilderFactory.java | 19 ------------------- src/main/java/redis/clients/jedis/Jedis.java | 4 ++-- .../java/redis/clients/jedis/Protocol.java | 2 +- .../PublishSubscribeCommandsTest.java | 8 ++++---- 4 files changed, 7 insertions(+), 26 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BuilderFactory.java b/src/main/java/redis/clients/jedis/BuilderFactory.java index ad0024f..76d013e 100755 --- a/src/main/java/redis/clients/jedis/BuilderFactory.java +++ b/src/main/java/redis/clients/jedis/BuilderFactory.java @@ -104,25 +104,6 @@ public class BuilderFactory { }; - public static final Builder> STRING_LONG_MAP = new Builder>() { - @SuppressWarnings("unchecked") - public Map build(Object data) { - final List flatHash = (List) data; - final Map hash = new HashMap(); - final Iterator iterator = flatHash.iterator(); - while (iterator.hasNext()) { - hash.put(SafeEncoder.encode(iterator.next()), Long.valueOf(SafeEncoder.encode(iterator.next()))); - } - - return hash; - } - - public String toString() { - return "Map"; - } - - }; - public static final Builder> STRING_SET = new Builder>() { @SuppressWarnings("unchecked") public Set build(Object data) { diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 709bf53..0996359 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3245,10 +3245,10 @@ public class Jedis extends BinaryJedis implements JedisCommands, return client.getIntegerReply(); } - public Map pubSubNumSub(String... channels) { + public Map pubSubNumSub(String... channels) { checkIsInMulti(); client.pubSubNumSub(channels); - return BuilderFactory.STRING_LONG_MAP + return BuilderFactory.STRING_MAP .build(client.getBinaryMultiBulkReply()); } } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index 49b7fd9..793b58f 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -200,7 +200,7 @@ public final class Protocol { } public static enum Command { - PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING; + PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBSUB, ZCOUNT, ZRANGEBYSCORE, ZREVRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE, EVAL, EVALSHA, SCRIPT, SLOWLOG, OBJECT, BITCOUNT, BITOP, SENTINEL, DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT, TIME, MIGRATE, HINCRBYFLOAT, SCAN, HSCAN, SSCAN, ZSCAN, WAIT, CLUSTER, ASKING; public final byte[] raw; diff --git a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java index b85fc0c..2d3e0d6 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java @@ -145,9 +145,9 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { @Test public void pubSubNumSub(){ - final Map expectedNumSub = new HashMap(); - expectedNumSub.put("testchannel2", 1l); - expectedNumSub.put("testchannel1", 1l); + final Map expectedNumSub = new HashMap(); + expectedNumSub.put("testchannel2", "1"); + expectedNumSub.put("testchannel1", "1"); jedis.subscribe(new JedisPubSub() { private int count=0; @Override @@ -159,7 +159,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { count++; if (count == 2) { Jedis otherJedis = createJedis(); - Map numSub = otherJedis.pubSubNumSub("testchannel1", "testchannel2"); + Map numSub = otherJedis.pubSubNumSub("testchannel1", "testchannel2"); assertEquals(expectedNumSub, numSub); unsubscribe(); } From 4ab54d955d9e8dd01501b9a30e6f3f2576109464 Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Mon, 3 Feb 2014 12:44:40 -0300 Subject: [PATCH 13/17] Change pubSub to pubsub --- .../java/redis/clients/jedis/BinaryClient.java | 2 +- src/main/java/redis/clients/jedis/Client.java | 16 ++++++++-------- src/main/java/redis/clients/jedis/Jedis.java | 12 ++++++------ .../commands/PublishSubscribeCommandsTest.java | 6 +++--- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index 19b6f55..26cd8f2 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -561,7 +561,7 @@ public class BinaryClient extends Connection { sendCommand(PUNSUBSCRIBE, patterns); } - public void pubSub(final byte[]... args) { + public void pubsub(final byte[]... args) { sendCommand(PUBSUB, args); } public void zcount(final byte[] key, final double min, final double max) { diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index e596baa..96d0560 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -673,16 +673,16 @@ public class Client extends BinaryClient implements Commands { subscribe(cs); } - public void pubSubChannels(String pattern) { - pubSub(Protocol.PUBSUB_CHANNELS, pattern); + public void pubsubChannels(String pattern) { + pubsub(Protocol.PUBSUB_CHANNELS, pattern); } - public void pubSubNumPat() { - pubSub(Protocol.PUBSUB_NUM_PAT); + public void pubsubNumPat() { + pubsub(Protocol.PUBSUB_NUM_PAT); } - public void pubSubNumSub(String... channels) { - pubSub(Protocol.PUBSUB_NUMSUB, channels); + public void pubsubNumSub(String... channels) { + pubsub(Protocol.PUBSUB_NUMSUB, channels); } public void configSet(String parameter, String value) { @@ -854,13 +854,13 @@ public class Client extends BinaryClient implements Commands { cluster(arg); } - public void pubSub(final String subcommand, final String... args) { + public void pubsub(final String subcommand, final String... args) { final byte[][] arg = new byte[args.length+1][]; for (int i = 1; i < arg.length; i++) { arg[i] = SafeEncoder.encode(args[i-1]); } arg[0] = SafeEncoder.encode(subcommand); - pubSub(arg); + pubsub(arg); } public void cluster(final String subcommand, final String... args) { diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 0996359..d5f7283 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3233,21 +3233,21 @@ public class Jedis extends BinaryJedis implements JedisCommands, return client.getStatusCodeReply(); } - public List pubSubChannels(String pattern) { + public List pubsubChannels(String pattern) { checkIsInMulti(); - client.pubSubChannels(pattern); + client.pubsubChannels(pattern); return client.getMultiBulkReply(); } - public Long pubSubNumPat() { + public Long pubsubNumPat() { checkIsInMulti(); - client.pubSubNumPat(); + client.pubsubNumPat(); return client.getIntegerReply(); } - public Map pubSubNumSub(String... channels) { + public Map pubsubNumSub(String... channels) { checkIsInMulti(); - client.pubSubNumSub(channels); + client.pubsubNumSub(channels); return BuilderFactory.STRING_MAP .build(client.getBinaryMultiBulkReply()); } diff --git a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java index 2d3e0d6..5149ff2 100644 --- a/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java +++ b/src/test/java/redis/clients/jedis/tests/commands/PublishSubscribeCommandsTest.java @@ -82,7 +82,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { //All channels are subscribed if (count == 3) { Jedis otherJedis = createJedis(); - List activeChannels = otherJedis.pubSubChannels("test*"); + List activeChannels = otherJedis.pubsubChannels("test*"); assertTrue(expectedActiveChannels.containsAll(activeChannels)); unsubscribe(); } @@ -127,7 +127,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { count++; if (count == 3) { Jedis otherJedis = createJedis(); - Long numPatterns = otherJedis.pubSubNumPat(); + Long numPatterns = otherJedis.pubsubNumPat(); assertEquals(new Long(2l), numPatterns); punsubscribe(); } @@ -159,7 +159,7 @@ public class PublishSubscribeCommandsTest extends JedisCommandTestBase { count++; if (count == 2) { Jedis otherJedis = createJedis(); - Map numSub = otherJedis.pubSubNumSub("testchannel1", "testchannel2"); + Map numSub = otherJedis.pubsubNumSub("testchannel1", "testchannel2"); assertEquals(expectedNumSub, numSub); unsubscribe(); } From 56cec8f6ec80695d145f958dec5ec98700633845 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Mon, 3 Feb 2014 10:50:59 -0500 Subject: [PATCH 14/17] version bump to 2.3.0-snapshot --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f6575eb..169987a 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ jar redis.clients jedis - 2.2.2-SNAPSHOT + 2.3.0-SNAPSHOT Jedis Jedis is a blazingly small and sane Redis java client. https://github.com/xetorthio/jedis From 35291bf17dff75162f609b5f674e5caba732bdec Mon Sep 17 00:00:00 2001 From: Marcos Nils Date: Mon, 3 Feb 2014 13:01:20 -0300 Subject: [PATCH 15/17] Make makefile remove temp files as it makes tests to fail sometimes --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index e00fb83..a5328e2 100644 --- a/Makefile +++ b/Makefile @@ -166,7 +166,8 @@ start: cleanup echo "$$REDIS_CLUSTER_NODE3_CONF" | redis-server - cleanup: - rm -vf /tmp/redis_cluster_node*.conf + - rm -vf /tmp/redis_cluster_node*.conf 2>/dev/null + - rm dump.rdb appendonly.aof - 2>/dev/null stop: kill `cat /tmp/redis1.pid` From aa63c98d8efe52d7f1ee35fec1cf34ed9f7a0414 Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Mon, 3 Feb 2014 11:09:48 -0500 Subject: [PATCH 16/17] [maven-release-plugin] prepare release jedis-2.3.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 169987a..7df11ab 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ jar redis.clients jedis - 2.3.0-SNAPSHOT + 2.3.0 Jedis Jedis is a blazingly small and sane Redis java client. https://github.com/xetorthio/jedis @@ -41,7 +41,7 @@ scm:git:git@github.com:xetorthio/jedis.git scm:git:git@github.com:xetorthio/jedis.git scm:git:git@github.com:xetorthio/jedis.git - jedis-2.2.0 + jedis-2.3.0 From 2d04a3845b1b5eb6a529f2443f0325b4b87fd6be Mon Sep 17 00:00:00 2001 From: Jonathan Leibiusky Date: Mon, 3 Feb 2014 11:09:50 -0500 Subject: [PATCH 17/17] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7df11ab..25d523f 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ jar redis.clients jedis - 2.3.0 + 2.3.1-SNAPSHOT Jedis Jedis is a blazingly small and sane Redis java client. https://github.com/xetorthio/jedis @@ -41,7 +41,7 @@ scm:git:git@github.com:xetorthio/jedis.git scm:git:git@github.com:xetorthio/jedis.git scm:git:git@github.com:xetorthio/jedis.git - jedis-2.3.0 + jedis-2.2.0