diff --git a/src/main/java/redis/clients/jedis/BinaryClient.java b/src/main/java/redis/clients/jedis/BinaryClient.java index 8af1981..72ae2d5 100644 --- a/src/main/java/redis/clients/jedis/BinaryClient.java +++ b/src/main/java/redis/clients/jedis/BinaryClient.java @@ -475,6 +475,15 @@ 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()][])); + } public void sort(final byte[] key, final SortingParams sortingParameters, final byte[] dstkey) { @@ -493,6 +502,15 @@ 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()][])); + } public void auth(final String password) { setPassword(password); @@ -897,7 +915,7 @@ public class BinaryClient extends Connection { sendCommand(Command.SET, key, value, nxxx); } - public void set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final long 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)); } @@ -924,4 +942,12 @@ public class BinaryClient extends Connection { public void 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 hincrByFloat(final byte[] key, final byte[] field, double increment) { + sendCommand(HINCRBYFLOAT, key, field, toByteArray(increment)); + } } diff --git a/src/main/java/redis/clients/jedis/BinaryJedis.java b/src/main/java/redis/clients/jedis/BinaryJedis.java index e0e8689..89b42ae 100644 --- a/src/main/java/redis/clients/jedis/BinaryJedis.java +++ b/src/main/java/redis/clients/jedis/BinaryJedis.java @@ -3294,7 +3294,7 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey return client.getStatusCodeReply(); } - public String set(final byte[] key, final byte[] value, final byte[] nxxx, final byte[] expx, final long time) { + 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(); @@ -3329,5 +3329,18 @@ public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKey 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 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); + } } diff --git a/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java b/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java index 6f4fd90..d48800c 100644 --- a/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java +++ b/src/main/java/redis/clients/jedis/BinaryRedisPipeline.java @@ -36,7 +36,7 @@ public interface BinaryRedisPipeline { Response getrange(byte[] key, long startOffset, long endOffset); - Response hdel(byte[] key, byte[] field); + Response hdel(byte[] key, byte[]... field); Response hexists(byte[] key, byte[] field); @@ -64,7 +64,7 @@ public interface BinaryRedisPipeline { Response incrBy(byte[] key, long integer); - Response lindex(byte[] key, int index); + Response lindex(byte[] key, long index); Response linsert(byte[] key, BinaryClient.LIST_POSITION where, byte[] pivot, byte[] value); @@ -124,7 +124,7 @@ public interface BinaryRedisPipeline { Response srandmember(byte[] key); - Response srem(byte[] key, byte[] member); + Response srem(byte[] key, byte[]... member); Response strlen(byte[] key); @@ -142,7 +142,7 @@ public interface BinaryRedisPipeline { Response zincrby(byte[] key, double score, byte[] member); - Response> zrange(byte[] key, int start, int end); + Response> zrange(byte[] key, long start, long end); Response> zrangeByScore(byte[] key, double min, double max); @@ -192,22 +192,22 @@ public interface BinaryRedisPipeline { Response> zrevrangeByScoreWithScores(byte[] key, byte[] max, byte[] min, int offset, int count); - Response> zrangeWithScores(byte[] key, int start, int end); + Response> zrangeWithScores(byte[] key, long start, long end); Response zrank(byte[] key, byte[] member); - Response zrem(byte[] key, byte[] member); + Response zrem(byte[] key, byte[]... member); - Response zremrangeByRank(byte[] key, int start, int end); + Response zremrangeByRank(byte[] key, long start, long end); Response zremrangeByScore(byte[] key, double start, double end); Response zremrangeByScore(byte[] key, byte[] start, byte[] end); - Response> zrevrange(byte[] key, int start, int end); + Response> zrevrange(byte[] key, long start, long end); - Response> zrevrangeWithScores(byte[] key, int start, - int end); + Response> zrevrangeWithScores(byte[] key, long start, + long end); Response zrevrank(byte[] key, byte[] member); diff --git a/src/main/java/redis/clients/jedis/Client.java b/src/main/java/redis/clients/jedis/Client.java index b6bceed..ce20fbc 100644 --- a/src/main/java/redis/clients/jedis/Client.java +++ b/src/main/java/redis/clients/jedis/Client.java @@ -2,7 +2,9 @@ package redis.clients.jedis; import static redis.clients.jedis.Protocol.toByteArray; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -385,6 +387,15 @@ 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()])); + } public void sort(final String key, final SortingParams sortingParameters, final String dstkey) { @@ -403,6 +414,15 @@ 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()])); + } public void zcount(final String key, final double min, final double max) { zcount(SafeEncoder.encode(key), toByteArray(min), toByteArray(max)); @@ -765,7 +785,7 @@ public class Client extends BinaryClient implements Commands { 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 long 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); } @@ -780,4 +800,12 @@ public class Client extends BinaryClient implements Commands { public void clientSetname(final String 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 hincrByFloat(final String key, final String field, double increment) { + hincrByFloat(SafeEncoder.encode(key), SafeEncoder.encode(field), increment); + } } diff --git a/src/main/java/redis/clients/jedis/Jedis.java b/src/main/java/redis/clients/jedis/Jedis.java index 22c02cc..d5fd399 100644 --- a/src/main/java/redis/clients/jedis/Jedis.java +++ b/src/main/java/redis/clients/jedis/Jedis.java @@ -3057,7 +3057,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand return client.getStatusCodeReply(); } - public String set(final String key, final String value, final String nxxx, final String expx, final long time) { + 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(); @@ -3074,4 +3074,17 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand client.clientSetname(name); return client.getBulkReply(); } + + 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); + } } diff --git a/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java b/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java index ccf0dfd..46fede3 100644 --- a/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java +++ b/src/main/java/redis/clients/jedis/MultiKeyPipelineBase.java @@ -1,6 +1,7 @@ package redis.clients.jedis; import java.util.List; +import java.util.Map; import java.util.Set; abstract class MultiKeyPipelineBase extends PipelineBase implements @@ -14,21 +15,51 @@ abstract class MultiKeyPipelineBase extends PipelineBase implements client.brpop(args); return getResponse(BuilderFactory.STRING_LIST); } + + public Response> brpop(int timeout, String... keys) { + client.brpop(timeout, keys); + return getResponse(BuilderFactory.STRING_LIST); + } public Response> blpop(String... args) { client.blpop(args); return getResponse(BuilderFactory.STRING_LIST); } + + public Response> blpop(int timeout, String... keys) { + 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); + } public Response> brpop(byte[]... args) { 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); + } + + public Response> brpopMap(int timeout, String... keys) { + client.blpop(timeout, keys); + return getResponse(BuilderFactory.STRING_MAP); + } public Response> blpop(byte[]... args) { 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); + } public Response del(String... keys) { client.del(keys); diff --git a/src/main/java/redis/clients/jedis/PipelineBase.java b/src/main/java/redis/clients/jedis/PipelineBase.java index 2ceeeec..d09b0a6 100644 --- a/src/main/java/redis/clients/jedis/PipelineBase.java +++ b/src/main/java/redis/clients/jedis/PipelineBase.java @@ -165,12 +165,12 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.LONG); } - public Response hdel(String key, String field) { + public Response hdel(String key, String... field) { getClient(key).hdel(key, field); return getResponse(BuilderFactory.LONG); } - public Response hdel(byte[] key, byte[] field) { + public Response hdel(byte[] key, byte[]... field) { getClient(key).hdel(key, field); return getResponse(BuilderFactory.LONG); } @@ -305,12 +305,12 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.LONG); } - public Response lindex(String key, int index) { + public Response lindex(String key, long index) { getClient(key).lindex(key, index); return getResponse(BuilderFactory.STRING); } - public Response lindex(byte[] key, int index) { + public Response lindex(byte[] key, long index) { getClient(key).lindex(key, index); return getResponse(BuilderFactory.BYTE_ARRAY); } @@ -583,18 +583,28 @@ abstract class PipelineBase extends Queable implements 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); + } public Response srandmember(byte[] key) { 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); + } - public Response srem(String key, String member) { + public Response srem(String key, String... member) { getClient(key).srem(key, member); return getResponse(BuilderFactory.LONG); } - public Response srem(byte[] key, byte[] member) { + public Response srem(byte[] key, byte[]... member) { getClient(key).srem(key, member); return getResponse(BuilderFactory.LONG); } @@ -679,12 +689,12 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.DOUBLE); } - public Response> zrange(String key, int start, int end) { + public Response> zrange(String key, long start, long end) { getClient(key).zrange(key, start, end); return getResponse(BuilderFactory.STRING_ZSET); } - public Response> zrange(byte[] key, int start, int end) { + public Response> zrange(byte[] key, long start, long end) { getClient(key).zrange(key, start, end); return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } @@ -717,6 +727,11 @@ abstract class PipelineBase extends Queable implements 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) { @@ -734,6 +749,12 @@ abstract class PipelineBase extends Queable implements 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) { @@ -751,6 +772,12 @@ abstract class PipelineBase extends Queable implements 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) { @@ -793,6 +820,12 @@ abstract class PipelineBase extends Queable implements 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) { @@ -811,6 +844,12 @@ abstract class PipelineBase extends Queable implements 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) { @@ -829,6 +868,12 @@ abstract class PipelineBase extends Queable implements 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) { @@ -842,12 +887,12 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } - public Response> zrangeWithScores(String key, int start, int end) { + 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, int start, int end) { + public Response> zrangeWithScores(byte[] key, long start, long end) { getClient(key).zrangeWithScores(key, start, end); return getResponse(BuilderFactory.TUPLE_ZSET_BINARY); } @@ -862,22 +907,22 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.LONG); } - public Response zrem(String key, String member) { + public Response zrem(String key, String... member) { getClient(key).zrem(key, member); return getResponse(BuilderFactory.LONG); } - public Response zrem(byte[] key, byte[] member) { + public Response zrem(byte[] key, byte[]... member) { getClient(key).zrem(key, member); return getResponse(BuilderFactory.LONG); } - public Response zremrangeByRank(String key, int start, int end) { + public Response zremrangeByRank(String key, long start, long end) { getClient(key).zremrangeByRank(key, start, end); return getResponse(BuilderFactory.LONG); } - public Response zremrangeByRank(byte[] key, int start, int end) { + public Response zremrangeByRank(byte[] key, long start, long end) { getClient(key).zremrangeByRank(key, start, end); return getResponse(BuilderFactory.LONG); } @@ -886,6 +931,11 @@ abstract class PipelineBase extends Queable implements 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); + } public Response zremrangeByScore(byte[] key, double start, double end) { getClient(key).zremrangeByScore(key, toByteArray(start), toByteArray(end)); @@ -897,24 +947,24 @@ abstract class PipelineBase extends Queable implements return getResponse(BuilderFactory.LONG); } - public Response> zrevrange(String key, int start, int end) { + public Response> zrevrange(String key, long start, long end) { getClient(key).zrevrange(key, start, end); return getResponse(BuilderFactory.STRING_ZSET); } - public Response> zrevrange(byte[] key, int start, int end) { + public Response> zrevrange(byte[] key, long start, long end) { getClient(key).zrevrange(key, start, end); return getResponse(BuilderFactory.BYTE_ARRAY_ZSET); } - public Response> zrevrangeWithScores(String key, int start, - int end) { + public Response> zrevrangeWithScores(String key, long start, + long end) { getClient(key).zrevrangeWithScores(key, start, end); return getResponse(BuilderFactory.TUPLE_ZSET); } - public Response> zrevrangeWithScores(byte[] key, int start, - int end) { + public Response> zrevrangeWithScores(byte[] key, long start, + long end) { getClient(key).zrevrangeWithScores(key, start, end); return getResponse(BuilderFactory.TUPLE_ZSET); } @@ -958,5 +1008,145 @@ abstract class PipelineBase extends Queable implements getClient(key).bitcount(key, start, end); return getResponse(BuilderFactory.LONG); } + + public Response dump(String key) { + getClient(key).dump(key); + return getResponse(BuilderFactory.BYTE_ARRAY); + } + + public Response dump(byte[] key) { + 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(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); + } + + public Response objectRefcount(byte[] key) { + getClient(key).objectRefcount(key); + return getResponse(BuilderFactory.LONG); + } + + public Response objectEncoding(String key) { + getClient(key).objectEncoding(key); + return getResponse(BuilderFactory.STRING); + } + + public Response objectEncoding(byte[] key) { + getClient(key).objectEncoding(key); + return getResponse(BuilderFactory.BYTE_ARRAY); + } + + public Response objectIdletime(String key) { + getClient(key).objectIdletime(key); + return getResponse(BuilderFactory.LONG); + } + + public Response objectIdletime(byte[] key) { + getClient(key).objectIdletime(key); + return getResponse(BuilderFactory.LONG); + } + + public Response pexpire(String key, int milliseconds) { + 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); + } + + public Response pexpireAt(String key, long millisecondsTimestamp) { + 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); + } + + public Response pttl(String key) { + getClient(key).pttl(key); + return getResponse(BuilderFactory.LONG); + } + + public Response pttl(byte[] key) { + 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); + } + + public Response restore(byte[] key, int ttl, byte[] serializedValue) { + 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); + } + + public Response incrByFloat(byte[] key, double increment) { + 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); + } + + public Response psetex(byte[] key, int milliseconds, byte[] value) { + 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); + } + + public Response set(byte[] key, byte[] value, byte[] nxxx) { + 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(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(byte[] key, byte[] field, double increment) { + getClient(key).hincrByFloat(key, field, increment); + return getResponse(BuilderFactory.DOUBLE); + } } diff --git a/src/main/java/redis/clients/jedis/Protocol.java b/src/main/java/redis/clients/jedis/Protocol.java index 08b5193..0960c8e 100644 --- a/src/main/java/redis/clients/jedis/Protocol.java +++ b/src/main/java/redis/clients/jedis/Protocol.java @@ -155,7 +155,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_KILL, CLIENT_GETNAME, CLIENT_SETNAME, CLIENT_LIST, TIME; + DUMP, RESTORE, PEXPIRE, PEXPIREAT, PTTL, INCRBYFLOAT, PSETEX, CLIENT_KILL, CLIENT_GETNAME, CLIENT_SETNAME, CLIENT_LIST, TIME, MIGRATE, HINCRBYFLOAT; public final byte[] raw; diff --git a/src/main/java/redis/clients/jedis/RedisPipeline.java b/src/main/java/redis/clients/jedis/RedisPipeline.java index 43b7516..ff9e862 100644 --- a/src/main/java/redis/clients/jedis/RedisPipeline.java +++ b/src/main/java/redis/clients/jedis/RedisPipeline.java @@ -39,7 +39,7 @@ public interface RedisPipeline { Response getSet(String key, String value); - Response hdel(String key, String field); + Response hdel(String key, String... field); Response hexists(String key, String field); @@ -67,7 +67,7 @@ public interface RedisPipeline { Response incrBy(String key, long integer); - Response lindex(String key, int index); + Response lindex(String key, long index); Response linsert(String key, BinaryClient.LIST_POSITION where, String pivot, String value); @@ -125,7 +125,7 @@ public interface RedisPipeline { Response srandmember(String key); - Response srem(String key, String member); + Response srem(String key, String... member); Response strlen(String key); @@ -143,7 +143,7 @@ public interface RedisPipeline { Response zincrby(String key, double score, String member); - Response> zrange(String key, int start, int end); + Response> zrange(String key, long start, long end); Response> zrangeByScore(String key, double min, double max); @@ -175,20 +175,20 @@ public interface RedisPipeline { Response> zrevrangeByScoreWithScores(String key, double max, double min, int offset, int count); - Response> zrangeWithScores(String key, int start, int end); + Response> zrangeWithScores(String key, long start, long end); Response zrank(String key, String member); - Response zrem(String key, String member); + Response zrem(String key, String... member); - Response zremrangeByRank(String key, int start, int end); + Response zremrangeByRank(String key, long start, long end); Response zremrangeByScore(String key, double start, double end); - Response> zrevrange(String key, int start, int end); + Response> zrevrange(String key, long start, long end); - Response> zrevrangeWithScores(String key, int start, - int end); + Response> zrevrangeWithScores(String key, long start, + long end); Response zrevrank(String key, String member); diff --git a/src/main/java/redis/clients/jedis/Transaction.java b/src/main/java/redis/clients/jedis/Transaction.java index bca7157..949f541 100644 --- a/src/main/java/redis/clients/jedis/Transaction.java +++ b/src/main/java/redis/clients/jedis/Transaction.java @@ -1,10 +1,10 @@ package redis.clients.jedis; -import redis.clients.jedis.exceptions.JedisDataException; - import java.util.ArrayList; import java.util.List; +import redis.clients.jedis.exceptions.JedisDataException; + /** * Transaction is nearly identical to Pipeline, only differences are the multi/discard behaviors */