Added password to Jedis, JedisPool and ShardedJedis constructor for easier and more efficient usage

This commit is contained in:
Jonathan Leibiusky
2010-09-14 16:43:48 -03:00
parent 708ae8a56e
commit 224555afd2
6 changed files with 53 additions and 21 deletions

View File

@@ -10,6 +10,8 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import redis.clients.util.ShardInfo;
public class Jedis {
private Client client = null;
@@ -26,6 +28,14 @@ public class Jedis {
client.setTimeout(timeout);
}
public Jedis(ShardInfo shardInfo) {
client = new Client(shardInfo.getHost(), shardInfo.getPort());
client.setTimeout(shardInfo.getTimeout());
if (shardInfo.getPassword() != null) {
this.auth(shardInfo.getPassword());
}
}
public String ping() {
checkIsInMulti();
client.ping();

View File

@@ -1,11 +1,13 @@
package redis.clients.jedis;
import redis.clients.util.FixedResourcePool;
import redis.clients.util.ShardInfo;
public class JedisPool extends FixedResourcePool<Jedis> {
private String host;
private int port;
private int timeout;
private String password;
public JedisPool(String host) {
this.host = host;
@@ -23,6 +25,20 @@ public class JedisPool extends FixedResourcePool<Jedis> {
this.timeout = timeout;
}
public JedisPool(String host, int port, int timeout, String password) {
this.host = host;
this.port = port;
this.timeout = timeout;
this.password = password;
}
public JedisPool(ShardInfo shardInfo) {
this.host = shardInfo.getHost();
this.port = shardInfo.getPort();
this.timeout = shardInfo.getTimeout();
this.password = shardInfo.getPassword();
}
@Override
protected Jedis createResource() {
Jedis jedis = new Jedis(this.host, this.port, this.timeout);
@@ -30,6 +46,9 @@ public class JedisPool extends FixedResourcePool<Jedis> {
while (!done) {
try {
jedis.connect();
if (password != null) {
jedis.auth(password);
}
done = true;
} catch (Exception e) {
try {

View File

@@ -352,10 +352,6 @@ public class ShardedJedis extends Sharded<Jedis> {
}
protected Jedis create(ShardInfo shard) {
Jedis c = new Jedis(shard.getHost(), shard.getPort());
if (shard.getPassword() != null) {
c.auth(shard.getPassword());
}
return c;
return new Jedis(shard);
}
}