Merge branch 'issue-78' of https://github.com/grdmitro/jedis into grdmitro-issue-78

This commit is contained in:
Jonathan Leibiusky
2011-04-06 02:03:51 -03:00
4 changed files with 128 additions and 148 deletions

View File

@@ -27,6 +27,8 @@ public class BinaryClient extends Connection {
} }
private boolean isInMulti; private boolean isInMulti;
private String password;
public boolean isInMulti() { public boolean isInMulti() {
return isInMulti; return isInMulti;
@@ -39,6 +41,21 @@ public class BinaryClient extends Connection {
public BinaryClient(final String host, final int port) { public BinaryClient(final String host, final int port) {
super(host, port); super(host, port);
} }
public void setPassword(final String password) {
this.password = password;
}
@Override
public void connect() {
if (!isConnected()) {
super.connect();
if (password != null) {
sendCommand(AUTH, password);
getStatusCodeReply();
}
}
}
public void ping() { public void ping() {
sendCommand(PING); sendCommand(PING);
@@ -438,6 +455,7 @@ public class BinaryClient extends Connection {
} }
public void auth(final String password) { public void auth(final String password) {
setPassword(password);
sendCommand(AUTH, password); sendCommand(AUTH, password);
} }

View File

@@ -1,7 +1,5 @@
package redis.clients.jedis; package redis.clients.jedis;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
@@ -11,13 +9,13 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.exceptions.JedisDataException;
import redis.clients.jedis.exceptions.JedisException; import redis.clients.jedis.exceptions.JedisException;
import redis.clients.util.JedisByteHashMap; import redis.clients.util.JedisByteHashMap;
import redis.clients.util.SafeEncoder; import redis.clients.util.SafeEncoder;
public class BinaryJedis implements BinaryJedisCommands { public class BinaryJedis implements BinaryJedisCommands {
protected Client client = null; protected Client client = null;
protected String password = null;
public BinaryJedis(final String host) { public BinaryJedis(final String host) {
client = new Client(host); client = new Client(host);
@@ -35,7 +33,7 @@ public class BinaryJedis implements BinaryJedisCommands {
public BinaryJedis(final JedisShardInfo shardInfo) { public BinaryJedis(final JedisShardInfo shardInfo) {
client = new Client(shardInfo.getHost(), shardInfo.getPort()); client = new Client(shardInfo.getHost(), shardInfo.getPort());
client.setTimeout(shardInfo.getTimeout()); client.setTimeout(shardInfo.getTimeout());
this.password = shardInfo.getPassword(); client.setPassword(shardInfo.getPassword());
} }
public String ping() { public String ping() {
@@ -1649,16 +1647,16 @@ public class BinaryJedis implements BinaryJedisCommands {
protected void checkIsInMulti() { protected void checkIsInMulti() {
if (client.isInMulti()) { if (client.isInMulti()) {
throw new JedisException( throw new JedisDataException(
"Cannot use Jedis when in Multi. Please use JedisTransaction instead."); "Cannot use Jedis when in Multi. Please use JedisTransaction instead.");
} }
} }
public void connect() throws UnknownHostException, IOException { public void connect() {
client.connect(); client.connect();
} }
public void disconnect() throws IOException { public void disconnect() {
client.disconnect(); client.disconnect();
} }

View File

@@ -9,7 +9,6 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import redis.clients.jedis.BinaryClient.LIST_POSITION; import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.exceptions.JedisDataException;
public class Jedis extends BinaryJedis implements JedisCommands { public class Jedis extends BinaryJedis implements JedisCommands {
public Jedis(final String host) { public Jedis(final String host) {
@@ -29,7 +28,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
} }
public String ping() { public String ping() {
runChecks(); checkIsInMulti();
client.ping(); client.ping();
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -45,7 +44,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public String set(final String key, String value) { public String set(final String key, String value) {
runChecks(); checkIsInMulti();
client.set(key, value); client.set(key, value);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -61,7 +60,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String get(final String key) { public String get(final String key) {
runChecks(); checkIsInMulti();
client.sendCommand(Protocol.Command.GET, key); client.sendCommand(Protocol.Command.GET, key);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -71,7 +70,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public void quit() { public void quit() {
runChecks(); checkIsInMulti();
client.quit(); client.quit();
} }
@@ -86,7 +85,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Integer reply, "0" if the key exists, otherwise "1" * @return Integer reply, "0" if the key exists, otherwise "1"
*/ */
public Boolean exists(final String key) { public Boolean exists(final String key) {
runChecks(); checkIsInMulti();
client.exists(key); client.exists(key);
return client.getIntegerReply() == 1; return client.getIntegerReply() == 1;
} }
@@ -102,7 +101,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* more keys were removed 0 if none of the specified key existed * more keys were removed 0 if none of the specified key existed
*/ */
public Long del(final String... keys) { public Long del(final String... keys) {
runChecks(); checkIsInMulti();
client.del(keys); client.del(keys);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -122,7 +121,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* contains a Hash value * contains a Hash value
*/ */
public String type(final String key) { public String type(final String key) {
runChecks(); checkIsInMulti();
client.type(key); client.type(key);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -135,7 +134,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public String flushDB() { public String flushDB() {
runChecks(); checkIsInMulti();
client.flushDB(); client.flushDB();
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -172,7 +171,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Multi bulk reply * @return Multi bulk reply
*/ */
public Set<String> keys(final String pattern) { public Set<String> keys(final String pattern) {
runChecks(); checkIsInMulti();
client.keys(pattern); client.keys(pattern);
return BuilderFactory.STRING_SET return BuilderFactory.STRING_SET
.build(client.getBinaryMultiBulkReply()); .build(client.getBinaryMultiBulkReply());
@@ -187,7 +186,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* empty string is the database is empty * empty string is the database is empty
*/ */
public String randomKey() { public String randomKey() {
runChecks(); checkIsInMulti();
client.randomKey(); client.randomKey();
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -204,7 +203,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code repy * @return Status code repy
*/ */
public String rename(final String oldkey, final String newkey) { public String rename(final String oldkey, final String newkey) {
runChecks(); checkIsInMulti();
client.rename(oldkey, newkey); client.rename(oldkey, newkey);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -221,7 +220,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* target key already exist * target key already exist
*/ */
public Long renamenx(final String oldkey, final String newkey) { public Long renamenx(final String oldkey, final String newkey) {
runChecks(); checkIsInMulti();
client.renamenx(oldkey, newkey); client.renamenx(oldkey, newkey);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -233,7 +232,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long dbSize() { public Long dbSize() {
runChecks(); checkIsInMulti();
client.dbSize(); client.dbSize();
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -267,7 +266,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* exist. * exist.
*/ */
public Long expire(final String key, final int seconds) { public Long expire(final String key, final int seconds) {
runChecks(); checkIsInMulti();
client.expire(key, seconds); client.expire(key, seconds);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -303,7 +302,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* exist. * exist.
*/ */
public Long expireAt(final String key, final long unixTime) { public Long expireAt(final String key, final long unixTime) {
runChecks(); checkIsInMulti();
client.expireAt(key, unixTime); client.expireAt(key, unixTime);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -320,7 +319,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* have an associated expire, -1 is returned. * have an associated expire, -1 is returned.
*/ */
public Long ttl(final String key) { public Long ttl(final String key) {
runChecks(); checkIsInMulti();
client.ttl(key); client.ttl(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -334,7 +333,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public String select(final int index) { public String select(final int index) {
runChecks(); checkIsInMulti();
client.select(index); client.select(index);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -353,7 +352,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* found in the current DB. * found in the current DB.
*/ */
public Long move(final String key, final int dbIndex) { public Long move(final String key, final int dbIndex) {
runChecks(); checkIsInMulti();
client.move(key, dbIndex); client.move(key, dbIndex);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -366,7 +365,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public String flushAll() { public String flushAll() {
runChecks(); checkIsInMulti();
client.flushAll(); client.flushAll();
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -383,7 +382,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String getSet(final String key, final String value) { public String getSet(final String key, final String value) {
runChecks(); checkIsInMulti();
client.getSet(key, value); client.getSet(key, value);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -399,7 +398,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Multi bulk reply * @return Multi bulk reply
*/ */
public List<String> mget(final String... keys) { public List<String> mget(final String... keys) {
runChecks(); checkIsInMulti();
client.mget(keys); client.mget(keys);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
@@ -417,7 +416,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* was not set * was not set
*/ */
public Long setnx(final String key, final String value) { public Long setnx(final String key, final String value) {
runChecks(); checkIsInMulti();
client.setnx(key, value); client.setnx(key, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -435,7 +434,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public String setex(final String key, final int seconds, final String value) { public String setex(final String key, final int seconds, final String value) {
runChecks(); checkIsInMulti();
client.setex(key, seconds, value); client.setex(key, seconds, value);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -461,7 +460,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply Basically +OK as MSET can't fail * @return Status code reply Basically +OK as MSET can't fail
*/ */
public String mset(final String... keysvalues) { public String mset(final String... keysvalues) {
runChecks(); checkIsInMulti();
client.mset(keysvalues); client.mset(keysvalues);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -488,7 +487,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* no key was set (at least one key already existed) * no key was set (at least one key already existed)
*/ */
public Long msetnx(final String... keysvalues) { public Long msetnx(final String... keysvalues) {
runChecks(); checkIsInMulti();
client.msetnx(keysvalues); client.msetnx(keysvalues);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -516,7 +515,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* after the increment. * after the increment.
*/ */
public Long decrBy(final String key, final long integer) { public Long decrBy(final String key, final long integer) {
runChecks(); checkIsInMulti();
client.decrBy(key, integer); client.decrBy(key, integer);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -544,7 +543,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* after the increment. * after the increment.
*/ */
public Long decr(final String key) { public Long decr(final String key) {
runChecks(); checkIsInMulti();
client.decr(key); client.decr(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -572,7 +571,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* after the increment. * after the increment.
*/ */
public Long incrBy(final String key, final long integer) { public Long incrBy(final String key, final long integer) {
runChecks(); checkIsInMulti();
client.incrBy(key, integer); client.incrBy(key, integer);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -600,7 +599,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* after the increment. * after the increment.
*/ */
public Long incr(final String key) { public Long incr(final String key) {
runChecks(); checkIsInMulti();
client.incr(key); client.incr(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -622,7 +621,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* the append operation. * the append operation.
*/ */
public Long append(final String key, final String value) { public Long append(final String key, final String value) {
runChecks(); checkIsInMulti();
client.append(key, value); client.append(key, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -646,7 +645,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String substr(final String key, final int start, final int end) { public String substr(final String key, final int start, final int end) {
runChecks(); checkIsInMulti();
client.substr(key, start, end); client.substr(key, start, end);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -667,7 +666,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* 1 is returned. * 1 is returned.
*/ */
public Long hset(final String key, final String field, final String value) { public Long hset(final String key, final String field, final String value) {
runChecks(); checkIsInMulti();
client.hset(key, field, value); client.hset(key, field, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -686,7 +685,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String hget(final String key, final String field) { public String hget(final String key, final String field) {
runChecks(); checkIsInMulti();
client.hget(key, field); client.hget(key, field);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -703,7 +702,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* field is created 1 is returned. * field is created 1 is returned.
*/ */
public Long hsetnx(final String key, final String field, final String value) { public Long hsetnx(final String key, final String field, final String value) {
runChecks(); checkIsInMulti();
client.hsetnx(key, field, value); client.hsetnx(key, field, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -721,7 +720,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Always OK because HMSET can't fail * @return Always OK because HMSET can't fail
*/ */
public String hmset(final String key, final Map<String, String> hash) { public String hmset(final String key, final Map<String, String> hash) {
runChecks(); checkIsInMulti();
client.hmset(key, hash); client.hmset(key, hash);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -740,7 +739,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* with the specified fields, in the same order of the request. * with the specified fields, in the same order of the request.
*/ */
public List<String> hmget(final String key, final String... fields) { public List<String> hmget(final String key, final String... fields) {
runChecks(); checkIsInMulti();
client.hmget(key, fields); client.hmget(key, fields);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
@@ -764,7 +763,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* operation. * operation.
*/ */
public Long hincrBy(final String key, final String field, final long value) { public Long hincrBy(final String key, final String field, final long value) {
runChecks(); checkIsInMulti();
client.hincrBy(key, field, value); client.hincrBy(key, field, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -780,7 +779,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* Return 0 if the key is not found or the field is not present. * Return 0 if the key is not found or the field is not present.
*/ */
public Boolean hexists(final String key, final String field) { public Boolean hexists(final String key, final String field) {
runChecks(); checkIsInMulti();
client.hexists(key, field); client.hexists(key, field);
return client.getIntegerReply() == 1; return client.getIntegerReply() == 1;
} }
@@ -796,7 +795,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* returned, otherwise 0 is returned and no operation is performed. * returned, otherwise 0 is returned and no operation is performed.
*/ */
public Long hdel(final String key, final String field) { public Long hdel(final String key, final String field) {
runChecks(); checkIsInMulti();
client.hdel(key, field); client.hdel(key, field);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -812,7 +811,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* an empty hash. * an empty hash.
*/ */
public Long hlen(final String key) { public Long hlen(final String key) {
runChecks(); checkIsInMulti();
client.hlen(key); client.hlen(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -826,7 +825,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return All the fields names contained into a hash. * @return All the fields names contained into a hash.
*/ */
public Set<String> hkeys(final String key) { public Set<String> hkeys(final String key) {
runChecks(); checkIsInMulti();
client.hkeys(key); client.hkeys(key);
return BuilderFactory.STRING_SET return BuilderFactory.STRING_SET
.build(client.getBinaryMultiBulkReply()); .build(client.getBinaryMultiBulkReply());
@@ -841,7 +840,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return All the fields values contained into a hash. * @return All the fields values contained into a hash.
*/ */
public List<String> hvals(final String key) { public List<String> hvals(final String key) {
runChecks(); checkIsInMulti();
client.hvals(key); client.hvals(key);
final List<String> lresult = client.getMultiBulkReply(); final List<String> lresult = client.getMultiBulkReply();
return lresult; return lresult;
@@ -856,7 +855,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return All the fields and values contained into a hash. * @return All the fields and values contained into a hash.
*/ */
public Map<String, String> hgetAll(final String key) { public Map<String, String> hgetAll(final String key) {
runChecks(); checkIsInMulti();
client.hgetAll(key); client.hgetAll(key);
return BuilderFactory.STRING_MAP return BuilderFactory.STRING_MAP
.build(client.getBinaryMultiBulkReply()); .build(client.getBinaryMultiBulkReply());
@@ -878,7 +877,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* list after the push operation. * list after the push operation.
*/ */
public Long rpush(final String key, final String string) { public Long rpush(final String key, final String string) {
runChecks(); checkIsInMulti();
client.rpush(key, string); client.rpush(key, string);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -899,7 +898,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* list after the push operation. * list after the push operation.
*/ */
public Long lpush(final String key, final String string) { public Long lpush(final String key, final String string) {
runChecks(); checkIsInMulti();
client.lpush(key, string); client.lpush(key, string);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -915,7 +914,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return The length of the list. * @return The length of the list.
*/ */
public Long llen(final String key) { public Long llen(final String key) {
runChecks(); checkIsInMulti();
client.llen(key); client.llen(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -959,7 +958,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* specified range. * specified range.
*/ */
public List<String> lrange(final String key, final int start, final int end) { public List<String> lrange(final String key, final int start, final int end) {
runChecks(); checkIsInMulti();
client.lrange(key, start, end); client.lrange(key, start, end);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
@@ -999,7 +998,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public String ltrim(final String key, final int start, final int end) { public String ltrim(final String key, final int start, final int end) {
runChecks(); checkIsInMulti();
client.ltrim(key, start, end); client.ltrim(key, start, end);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -1023,7 +1022,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply, specifically the requested element * @return Bulk reply, specifically the requested element
*/ */
public String lindex(final String key, final int index) { public String lindex(final String key, final int index) {
runChecks(); checkIsInMulti();
client.lindex(key, index); client.lindex(key, index);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1050,7 +1049,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public String lset(final String key, final int index, final String value) { public String lset(final String key, final int index, final String value) {
runChecks(); checkIsInMulti();
client.lset(key, index, value); client.lset(key, index, value);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
@@ -1075,7 +1074,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* the operation succeeded * the operation succeeded
*/ */
public Long lrem(final String key, final int count, final String value) { public Long lrem(final String key, final int count, final String value) {
runChecks(); checkIsInMulti();
client.lrem(key, count, value); client.lrem(key, count, value);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1094,7 +1093,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String lpop(final String key) { public String lpop(final String key) {
runChecks(); checkIsInMulti();
client.lpop(key); client.lpop(key);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1113,7 +1112,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String rpop(final String key) { public String rpop(final String key) {
runChecks(); checkIsInMulti();
client.rpop(key); client.rpop(key);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1137,7 +1136,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String rpoplpush(final String srckey, final String dstkey) { public String rpoplpush(final String srckey, final String dstkey) {
runChecks(); checkIsInMulti();
client.rpoplpush(srckey, dstkey); client.rpoplpush(srckey, dstkey);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1156,7 +1155,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* the element was already a member of the set * the element was already a member of the set
*/ */
public Long sadd(final String key, final String member) { public Long sadd(final String key, final String member) {
runChecks(); checkIsInMulti();
client.sadd(key, member); client.sadd(key, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1171,7 +1170,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Multi bulk reply * @return Multi bulk reply
*/ */
public Set<String> smembers(final String key) { public Set<String> smembers(final String key) {
runChecks(); checkIsInMulti();
client.smembers(key); client.smembers(key);
final List<String> members = client.getMultiBulkReply(); final List<String> members = client.getMultiBulkReply();
return new HashSet<String>(members); return new HashSet<String>(members);
@@ -1190,7 +1189,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* if the new element was not a member of the set * if the new element was not a member of the set
*/ */
public Long srem(final String key, final String member) { public Long srem(final String key, final String member) {
runChecks(); checkIsInMulti();
client.srem(key, member); client.srem(key, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1208,7 +1207,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String spop(final String key) { public String spop(final String key) {
runChecks(); checkIsInMulti();
client.spop(key); client.spop(key);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1238,7 +1237,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long smove(final String srckey, final String dstkey, public Long smove(final String srckey, final String dstkey,
final String member) { final String member) {
runChecks(); checkIsInMulti();
client.smove(srckey, dstkey, member); client.smove(srckey, dstkey, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1252,7 +1251,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* of the set as an integer. * of the set as an integer.
*/ */
public Long scard(final String key) { public Long scard(final String key) {
runChecks(); checkIsInMulti();
client.scard(key); client.scard(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1270,7 +1269,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* does not exist * does not exist
*/ */
public Boolean sismember(final String key, final String member) { public Boolean sismember(final String key, final String member) {
runChecks(); checkIsInMulti();
client.sismember(key, member); client.sismember(key, member);
return client.getIntegerReply() == 1; return client.getIntegerReply() == 1;
} }
@@ -1295,7 +1294,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Multi bulk reply, specifically the list of common elements. * @return Multi bulk reply, specifically the list of common elements.
*/ */
public Set<String> sinter(final String... keys) { public Set<String> sinter(final String... keys) {
runChecks(); checkIsInMulti();
client.sinter(keys); client.sinter(keys);
final List<String> members = client.getMultiBulkReply(); final List<String> members = client.getMultiBulkReply();
return new HashSet<String>(members); return new HashSet<String>(members);
@@ -1313,7 +1312,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public Long sinterstore(final String dstkey, final String... keys) { public Long sinterstore(final String dstkey, final String... keys) {
runChecks(); checkIsInMulti();
client.sinterstore(dstkey, keys); client.sinterstore(dstkey, keys);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1335,7 +1334,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Multi bulk reply, specifically the list of common elements. * @return Multi bulk reply, specifically the list of common elements.
*/ */
public Set<String> sunion(final String... keys) { public Set<String> sunion(final String... keys) {
runChecks(); checkIsInMulti();
client.sunion(keys); client.sunion(keys);
final List<String> members = client.getMultiBulkReply(); final List<String> members = client.getMultiBulkReply();
return new HashSet<String>(members); return new HashSet<String>(members);
@@ -1354,7 +1353,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public Long sunionstore(final String dstkey, final String... keys) { public Long sunionstore(final String dstkey, final String... keys) {
runChecks(); checkIsInMulti();
client.sunionstore(dstkey, keys); client.sunionstore(dstkey, keys);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1383,7 +1382,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* the first set provided and all the successive sets. * the first set provided and all the successive sets.
*/ */
public Set<String> sdiff(final String... keys) { public Set<String> sdiff(final String... keys) {
runChecks(); checkIsInMulti();
client.sdiff(keys); client.sdiff(keys);
return BuilderFactory.STRING_SET return BuilderFactory.STRING_SET
.build(client.getBinaryMultiBulkReply()); .build(client.getBinaryMultiBulkReply());
@@ -1398,7 +1397,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Status code reply * @return Status code reply
*/ */
public Long sdiffstore(final String dstkey, final String... keys) { public Long sdiffstore(final String dstkey, final String... keys) {
runChecks(); checkIsInMulti();
client.sdiffstore(dstkey, keys); client.sdiffstore(dstkey, keys);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1416,7 +1415,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return Bulk reply * @return Bulk reply
*/ */
public String srandmember(final String key) { public String srandmember(final String key) {
runChecks(); checkIsInMulti();
client.srandmember(key); client.srandmember(key);
return client.getBulkReply(); return client.getBulkReply();
} }
@@ -1443,13 +1442,13 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* was updated * was updated
*/ */
public Long zadd(final String key, final double score, final String member) { public Long zadd(final String key, final double score, final String member) {
runChecks(); checkIsInMulti();
client.zadd(key, score, member); client.zadd(key, score, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
public Set<String> zrange(final String key, final int start, final int end) { public Set<String> zrange(final String key, final int start, final int end) {
runChecks(); checkIsInMulti();
client.zrange(key, start, end); client.zrange(key, start, end);
final List<String> members = client.getMultiBulkReply(); final List<String> members = client.getMultiBulkReply();
return new LinkedHashSet<String>(members); return new LinkedHashSet<String>(members);
@@ -1471,7 +1470,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* if the new element was not a member of the set * if the new element was not a member of the set
*/ */
public Long zrem(final String key, final String member) { public Long zrem(final String key, final String member) {
runChecks(); checkIsInMulti();
client.zrem(key, member); client.zrem(key, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1502,7 +1501,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Double zincrby(final String key, final double score, public Double zincrby(final String key, final double score,
final String member) { final String member) {
runChecks(); checkIsInMulti();
client.zincrby(key, score, member); client.zincrby(key, score, member);
String newscore = client.getBulkReply(); String newscore = client.getBulkReply();
return Double.valueOf(newscore); return Double.valueOf(newscore);
@@ -1529,7 +1528,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* reply if there is no such element. * reply if there is no such element.
*/ */
public Long zrank(final String key, final String member) { public Long zrank(final String key, final String member) {
runChecks(); checkIsInMulti();
client.zrank(key, member); client.zrank(key, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1555,14 +1554,14 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* reply if there is no such element. * reply if there is no such element.
*/ */
public Long zrevrank(final String key, final String member) { public Long zrevrank(final String key, final String member) {
runChecks(); checkIsInMulti();
client.zrevrank(key, member); client.zrevrank(key, member);
return client.getIntegerReply(); return client.getIntegerReply();
} }
public Set<String> zrevrange(final String key, final int start, public Set<String> zrevrange(final String key, final int start,
final int end) { final int end) {
runChecks(); checkIsInMulti();
client.zrevrange(key, start, end); client.zrevrange(key, start, end);
final List<String> members = client.getMultiBulkReply(); final List<String> members = client.getMultiBulkReply();
return new LinkedHashSet<String>(members); return new LinkedHashSet<String>(members);
@@ -1570,7 +1569,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
public Set<Tuple> zrangeWithScores(final String key, final int start, public Set<Tuple> zrangeWithScores(final String key, final int start,
final int end) { final int end) {
runChecks(); checkIsInMulti();
client.zrangeWithScores(key, start, end); client.zrangeWithScores(key, start, end);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getTupledSet();
return set; return set;
@@ -1578,7 +1577,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
public Set<Tuple> zrevrangeWithScores(final String key, final int start, public Set<Tuple> zrevrangeWithScores(final String key, final int start,
final int end) { final int end) {
runChecks(); checkIsInMulti();
client.zrevrangeWithScores(key, start, end); client.zrevrangeWithScores(key, start, end);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getTupledSet();
return set; return set;
@@ -1594,7 +1593,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return the cardinality (number of elements) of the set as an integer. * @return the cardinality (number of elements) of the set as an integer.
*/ */
public Long zcard(final String key) { public Long zcard(final String key) {
runChecks(); checkIsInMulti();
client.zcard(key); client.zcard(key);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1611,33 +1610,12 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return the score * @return the score
*/ */
public Double zscore(final String key, final String member) { public Double zscore(final String key, final String member) {
runChecks(); checkIsInMulti();
client.zscore(key, member); client.zscore(key, member);
final String score = client.getBulkReply(); final String score = client.getBulkReply();
return (score != null ? new Double(score) : null); return (score != null ? new Double(score) : null);
} }
private void runChecks() {
if (client.isInMulti()) {
throw new JedisDataException(
"Cannot use Jedis when in Multi. Please use JedisTransaction instead.");
}
this.connect();
}
public void connect() {
if (!client.isConnected()) {
client.connect();
if (this.password != null) {
this.auth(this.password);
}
}
}
public void disconnect() {
client.disconnect();
}
public String watch(final String... keys) { public String watch(final String... keys) {
client.watch(keys); client.watch(keys);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
@@ -1661,7 +1639,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* smallest to the biggest number. * smallest to the biggest number.
*/ */
public List<String> sort(final String key) { public List<String> sort(final String key) {
runChecks(); checkIsInMulti();
client.sort(key); client.sort(key);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
@@ -1744,7 +1722,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public List<String> sort(final String key, public List<String> sort(final String key,
final SortingParams sortingParameters) { final SortingParams sortingParameters) {
runChecks(); checkIsInMulti();
client.sort(key, sortingParameters); client.sort(key, sortingParameters);
return client.getMultiBulkReply(); return client.getMultiBulkReply();
} }
@@ -1822,7 +1800,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* programming language used. * programming language used.
*/ */
public List<String> blpop(final int timeout, final String... keys) { public List<String> blpop(final int timeout, final String... keys) {
runChecks(); checkIsInMulti();
List<String> args = new ArrayList<String>(); List<String> args = new ArrayList<String>();
for (String arg : keys) { for (String arg : keys) {
args.add(arg); args.add(arg);
@@ -1851,7 +1829,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long sort(final String key, final SortingParams sortingParameters, public Long sort(final String key, final SortingParams sortingParameters,
final String dstkey) { final String dstkey) {
runChecks(); checkIsInMulti();
client.sort(key, sortingParameters, dstkey); client.sort(key, sortingParameters, dstkey);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1873,7 +1851,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* @return The number of elements of the list at dstkey. * @return The number of elements of the list at dstkey.
*/ */
public Long sort(final String key, final String dstkey) { public Long sort(final String key, final String dstkey) {
runChecks(); checkIsInMulti();
client.sort(key, dstkey); client.sort(key, dstkey);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -1951,7 +1929,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* programming language used. * programming language used.
*/ */
public List<String> brpop(final int timeout, final String... keys) { public List<String> brpop(final int timeout, final String... keys) {
runChecks(); checkIsInMulti();
List<String> args = new ArrayList<String>(); List<String> args = new ArrayList<String>();
for (String arg : keys) { for (String arg : keys) {
args.add(arg); args.add(arg);
@@ -1983,33 +1961,35 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public String auth(final String password) { public String auth(final String password) {
runChecks(); checkIsInMulti();
client.auth(password); client.auth(password);
return client.getStatusCodeReply(); return client.getStatusCodeReply();
} }
public void subscribe(JedisPubSub jedisPubSub, String... channels) { public void subscribe(JedisPubSub jedisPubSub, String... channels) {
runChecks(); checkIsInMulti();
connect();
client.setTimeoutInfinite(); client.setTimeoutInfinite();
jedisPubSub.proceed(client, channels); jedisPubSub.proceed(client, channels);
client.rollbackTimeout(); client.rollbackTimeout();
} }
public Long publish(String channel, String message) { public Long publish(String channel, String message) {
runChecks(); checkIsInMulti();
client.publish(channel, message); client.publish(channel, message);
return client.getIntegerReply(); return client.getIntegerReply();
} }
public void psubscribe(JedisPubSub jedisPubSub, String... patterns) { public void psubscribe(JedisPubSub jedisPubSub, String... patterns) {
runChecks(); checkIsInMulti();
connect();
client.setTimeoutInfinite(); client.setTimeoutInfinite();
jedisPubSub.proceedWithPatterns(client, patterns); jedisPubSub.proceedWithPatterns(client, patterns);
client.rollbackTimeout(); client.rollbackTimeout();
} }
public Long zcount(final String key, final double min, final double max) { public Long zcount(final String key, final double min, final double max) {
runChecks(); checkIsInMulti();
client.zcount(key, min, max); client.zcount(key, min, max);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2073,14 +2053,14 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Set<String> zrangeByScore(final String key, final double min, public Set<String> zrangeByScore(final String key, final double min,
final double max) { final double max) {
runChecks(); checkIsInMulti();
client.zrangeByScore(key, min, max); client.zrangeByScore(key, min, max);
return new LinkedHashSet<String>(client.getMultiBulkReply()); return new LinkedHashSet<String>(client.getMultiBulkReply());
} }
public Set<String> zrangeByScore(final String key, final String min, public Set<String> zrangeByScore(final String key, final String min,
final String max) { final String max) {
runChecks(); checkIsInMulti();
client.zrangeByScore(key, min, max); client.zrangeByScore(key, min, max);
return new LinkedHashSet<String>(client.getMultiBulkReply()); return new LinkedHashSet<String>(client.getMultiBulkReply());
} }
@@ -2143,7 +2123,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Set<String> zrangeByScore(final String key, final double min, public Set<String> zrangeByScore(final String key, final double min,
final double max, final int offset, final int count) { final double max, final int offset, final int count) {
runChecks(); checkIsInMulti();
client.zrangeByScore(key, min, max, offset, count); client.zrangeByScore(key, min, max, offset, count);
return new LinkedHashSet<String>(client.getMultiBulkReply()); return new LinkedHashSet<String>(client.getMultiBulkReply());
} }
@@ -2206,7 +2186,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Set<Tuple> zrangeByScoreWithScores(final String key, public Set<Tuple> zrangeByScoreWithScores(final String key,
final double min, final double max) { final double min, final double max) {
runChecks(); checkIsInMulti();
client.zrangeByScoreWithScores(key, min, max); client.zrangeByScoreWithScores(key, min, max);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getTupledSet();
return set; return set;
@@ -2271,14 +2251,14 @@ public class Jedis extends BinaryJedis implements JedisCommands {
public Set<Tuple> zrangeByScoreWithScores(final String key, public Set<Tuple> zrangeByScoreWithScores(final String key,
final double min, final double max, final int offset, final double min, final double max, final int offset,
final int count) { final int count) {
runChecks(); checkIsInMulti();
client.zrangeByScoreWithScores(key, min, max, offset, count); client.zrangeByScoreWithScores(key, min, max, offset, count);
Set<Tuple> set = getTupledSet(); Set<Tuple> set = getTupledSet();
return set; return set;
} }
private Set<Tuple> getTupledSet() { private Set<Tuple> getTupledSet() {
runChecks(); checkIsInMulti();
List<String> membersWithScores = client.getMultiBulkReply(); List<String> membersWithScores = client.getMultiBulkReply();
Set<Tuple> set = new LinkedHashSet<Tuple>(); Set<Tuple> set = new LinkedHashSet<Tuple>();
Iterator<String> iterator = membersWithScores.iterator(); Iterator<String> iterator = membersWithScores.iterator();
@@ -2304,7 +2284,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* *
*/ */
public Long zremrangeByRank(final String key, final int start, final int end) { public Long zremrangeByRank(final String key, final int start, final int end) {
runChecks(); checkIsInMulti();
client.zremrangeByRank(key, start, end); client.zremrangeByRank(key, start, end);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2325,7 +2305,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long zremrangeByScore(final String key, final double start, public Long zremrangeByScore(final String key, final double start,
final double end) { final double end) {
runChecks(); checkIsInMulti();
client.zremrangeByScore(key, start, end); client.zremrangeByScore(key, start, end);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2369,7 +2349,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* set at dstkey * set at dstkey
*/ */
public Long zunionstore(final String dstkey, final String... sets) { public Long zunionstore(final String dstkey, final String... sets) {
runChecks(); checkIsInMulti();
client.zunionstore(dstkey, sets); client.zunionstore(dstkey, sets);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2415,7 +2395,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long zunionstore(final String dstkey, final ZParams params, public Long zunionstore(final String dstkey, final ZParams params,
final String... sets) { final String... sets) {
runChecks(); checkIsInMulti();
client.zunionstore(dstkey, params, sets); client.zunionstore(dstkey, params, sets);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2459,7 +2439,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
* set at dstkey * set at dstkey
*/ */
public Long zinterstore(final String dstkey, final String... sets) { public Long zinterstore(final String dstkey, final String... sets) {
runChecks(); checkIsInMulti();
client.zinterstore(dstkey, sets); client.zinterstore(dstkey, sets);
return client.getIntegerReply(); return client.getIntegerReply();
} }
@@ -2505,7 +2485,7 @@ public class Jedis extends BinaryJedis implements JedisCommands {
*/ */
public Long zinterstore(final String dstkey, final ZParams params, public Long zinterstore(final String dstkey, final ZParams params,
final String... sets) { final String... sets) {
runChecks(); checkIsInMulti();
client.zinterstore(dstkey, params, sets); client.zinterstore(dstkey, params, sets);
return client.getIntegerReply(); return client.getIntegerReply();
} }

View File

@@ -47,22 +47,6 @@ public class ShardedJedisPool extends Pool<ShardedJedis> {
public Object makeObject() throws Exception { public Object makeObject() throws Exception {
ShardedJedis jedis = new ShardedJedis(shards, algo, keyTagPattern); ShardedJedis jedis = new ShardedJedis(shards, algo, keyTagPattern);
boolean done = false;
while (!done) {
try {
for (Jedis shard : jedis.getAllShards()) {
if (!shard.isConnected()) {
shard.connect();
}
}
done = true;
} catch (Exception e) {
try {
Thread.sleep(100);
} catch (InterruptedException e1) {
}
}
}
return jedis; return jedis;
} }
@@ -85,7 +69,7 @@ public class ShardedJedisPool extends Pool<ShardedJedis> {
} }
public boolean validateObject(final Object obj) { public boolean validateObject(final Object obj) {
try { try {
ShardedJedis jedis = (ShardedJedis) obj; ShardedJedis jedis = (ShardedJedis) obj;
for (Jedis shard : jedis.getAllShards()) { for (Jedis shard : jedis.getAllShards()) {
if (!shard.isConnected() || !shard.ping().equals("PONG")) { if (!shard.isConnected() || !shard.ping().equals("PONG")) {