Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 42 additions & 64 deletions src/main/java/redis/clients/jedis/BinaryClient.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,5 @@
package redis.clients.jedis;

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 javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocketFactory;

import redis.clients.jedis.Protocol.Command;
import redis.clients.jedis.Protocol.Keyword;
import redis.clients.jedis.params.geo.GeoRadiusParam;
Expand All @@ -30,6 +8,20 @@
import redis.clients.jedis.params.sortedset.ZIncrByParams;
import redis.clients.util.SafeEncoder;

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;

public class BinaryClient extends Connection {
public enum LIST_POSITION {
BEFORE, AFTER;
Expand All @@ -40,65 +32,45 @@ private LIST_POSITION() {
}
}

private boolean isInMulti;

private String password;

private int db;
private boolean isInMulti;

private boolean isInWatch;

public BinaryClient() {
super();
}

public BinaryClient(final String host) {
super(host);
public BinaryClient(final ClientOptions clientOptions) {
super(clientOptions);
this.db = clientOptions.getDatabase();
}

public BinaryClient(final String host, final int port) {
super(host, port);
public boolean isInMulti() {
return isInMulti;
}

public BinaryClient(final String host, final int port, final boolean ssl) {
super(host, port, ssl);
public boolean isInWatch() {
return isInWatch;
}

public BinaryClient(final String host, final int port, final boolean ssl,
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
super(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
public int getDb() {
return db;
}

public boolean isInMulti() {
return isInMulti;
public void setDb(int db) {
this.db = db;
}

public boolean isInWatch() {
return isInWatch;
}

private byte[][] joinParameters(byte[] first, byte[][] rest) {
byte[][] result = new byte[rest.length + 1][];
result[0] = first;
System.arraycopy(rest, 0, result, 1, rest.length);
return result;
}

public void setPassword(final String password) {
this.password = password;
}

public void setDb(int db) {
this.db = db;
}

@Override
public void connect() {
if (!isConnected()) {
super.connect();
if (password != null) {
auth(password);
if (clientOptions.getPassword() != null) {
auth();
getStatusCodeReply();
}
if (db > 0) {
Expand Down Expand Up @@ -189,7 +161,13 @@ public void touch(final byte[]... keys) {
sendCommand(TOUCH, keys);
}

public void select(final int index) {
public void select() {
if(clientOptions.getDatabase() > 0) {
select(clientOptions.getDatabase());
}
}

public void select(int index) {
sendCommand(SELECT, toByteArray(index));
}

Expand Down Expand Up @@ -579,8 +557,13 @@ public void brpop(final int timeout, final byte[]... keys) {
brpop(args.toArray(new byte[args.size()][]));
}

public void auth(final String password) {
setPassword(password);
public void auth() {
if(clientOptions.getPassword() != null) {
auth(clientOptions.getPassword());
}
}

public void auth(String password) {
sendCommand(AUTH, password);
}

Expand Down Expand Up @@ -952,10 +935,6 @@ public void getrange(byte[] key, long startOffset, long endOffset) {
sendCommand(GETRANGE, key, toByteArray(startOffset), toByteArray(endOffset));
}

public int getDB() {
return db;
}

@Override
public void disconnect() {
db = 0;
Expand All @@ -964,7 +943,6 @@ public void disconnect() {

@Override
public void close() {
db = 0;
super.close();
}

Expand Down
156 changes: 19 additions & 137 deletions src/main/java/redis/clients/jedis/BinaryJedis.java
Original file line number Diff line number Diff line change
@@ -1,159 +1,33 @@
package redis.clients.jedis;

import static redis.clients.jedis.Protocol.toByteArray;

import java.io.Closeable;
import java.io.Serializable;
import java.net.URI;
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSocketFactory;

import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.commands.*;
import redis.clients.jedis.exceptions.InvalidURIException;
import redis.clients.jedis.exceptions.JedisDataException;
import redis.clients.jedis.exceptions.JedisException;
import redis.clients.jedis.params.geo.GeoRadiusParam;
import redis.clients.jedis.params.set.SetParams;
import redis.clients.jedis.params.sortedset.ZAddParams;
import redis.clients.jedis.params.sortedset.ZIncrByParams;
import redis.clients.util.JedisByteHashMap;
import redis.clients.util.JedisURIHelper;
import redis.clients.util.SafeEncoder;

import java.io.Closeable;
import java.io.Serializable;
import java.util.*;

import static redis.clients.jedis.Protocol.toByteArray;

public class BinaryJedis implements BasicCommands, BinaryJedisCommands, MultiKeyBinaryCommands,
AdvancedBinaryJedisCommands, BinaryScriptingCommands, Closeable {
protected Client client = null;
protected final Client client;
protected Transaction transaction = null;
protected Pipeline pipeline = null;

public BinaryJedis() {
client = new Client();
}

public BinaryJedis(final String host) {
URI uri = URI.create(host);
if (uri.getScheme() != null && (uri.getScheme().equals("redis") || uri.getScheme().equals("rediss"))) {
initializeClientFromURI(uri);
} else {
client = new Client(host);
}
}

public BinaryJedis(final String host, final int port) {
client = new Client(host, port);
}

public BinaryJedis(final String host, final int port, final boolean ssl) {
client = new Client(host, port, ssl);
}

public BinaryJedis(final String host, final int port, final boolean ssl,
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
client = new Client(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
}

public BinaryJedis(final String host, final int port, final int timeout) {
client = new Client(host, port);
client.setConnectionTimeout(timeout);
client.setSoTimeout(timeout);
}

public BinaryJedis(final String host, final int port, final int timeout, final boolean ssl) {
client = new Client(host, port, ssl);
client.setConnectionTimeout(timeout);
client.setSoTimeout(timeout);
}

public BinaryJedis(final String host, final int port, final int timeout, final boolean ssl,
final SSLSocketFactory sslSocketFactory, final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
client = new Client(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
client.setConnectionTimeout(timeout);
client.setSoTimeout(timeout);
}

public BinaryJedis(final String host, final int port, final int connectionTimeout,
final int soTimeout) {
client = new Client(host, port);
client.setConnectionTimeout(connectionTimeout);
client.setSoTimeout(soTimeout);
}

public BinaryJedis(final String host, final int port, final int connectionTimeout,
final int soTimeout, final boolean ssl) {
client = new Client(host, port, ssl);
client.setConnectionTimeout(connectionTimeout);
client.setSoTimeout(soTimeout);
}

public BinaryJedis(final String host, final int port, final int connectionTimeout,
final int soTimeout, final boolean ssl, final SSLSocketFactory sslSocketFactory,
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
client = new Client(host, port, ssl, sslSocketFactory, sslParameters, hostnameVerifier);
client.setConnectionTimeout(connectionTimeout);
client.setSoTimeout(soTimeout);
}

public BinaryJedis(final JedisShardInfo shardInfo) {
client = new Client(shardInfo.getHost(), shardInfo.getPort(), shardInfo.getSsl(),
shardInfo.getSslSocketFactory(), shardInfo.getSslParameters(),
shardInfo.getHostnameVerifier());
client.setConnectionTimeout(shardInfo.getConnectionTimeout());
client.setSoTimeout(shardInfo.getSoTimeout());
client.setPassword(shardInfo.getPassword());
client.setDb(shardInfo.getDb());
}

public BinaryJedis(URI uri) {
initializeClientFromURI(uri);
}

public BinaryJedis(URI uri, final SSLSocketFactory sslSocketFactory,
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
initializeClientFromURI(uri, sslSocketFactory, sslParameters, hostnameVerifier);
}

public BinaryJedis(final URI uri, final int timeout) {
initializeClientFromURI(uri);
client.setConnectionTimeout(timeout);
client.setSoTimeout(timeout);
}

public BinaryJedis(final URI uri, final int timeout, final SSLSocketFactory sslSocketFactory,
final SSLParameters sslParameters, final HostnameVerifier hostnameVerifier) {
initializeClientFromURI(uri, sslSocketFactory, sslParameters, hostnameVerifier);
client.setConnectionTimeout(timeout);
client.setSoTimeout(timeout);
}

public BinaryJedis(final URI uri, final int connectionTimeout, final int soTimeout) {
initializeClientFromURI(uri);
client.setConnectionTimeout(connectionTimeout);
client.setSoTimeout(soTimeout);
}

public BinaryJedis(final URI uri, final int connectionTimeout, final int soTimeout,
final SSLSocketFactory sslSocketFactory,final SSLParameters sslParameters,
final HostnameVerifier hostnameVerifier) {
initializeClientFromURI(uri, sslSocketFactory, sslParameters, hostnameVerifier);
client.setConnectionTimeout(connectionTimeout);
client.setSoTimeout(soTimeout);
public BinaryJedis(ClientOptions clientOptions) {
client = new Client(clientOptions);
}

/*
private void initializeClientFromURI(URI uri) {
if (!JedisURIHelper.isValid(uri)) {
throw new InvalidURIException(String.format(
Expand Down Expand Up @@ -199,6 +73,7 @@ private void initializeClientFromURI(URI uri, final SSLSocketFactory sslSocketFa
client.setDb(dbIndex);
}
}
*/

@Override
public String ping() {
Expand Down Expand Up @@ -1850,6 +1725,13 @@ protected void checkIsInMultiOrPipeline() {

public void connect() {
client.connect();

/*
client.auth();
client.select();
client.setName();
*/

}

public void disconnect() {
Expand Down Expand Up @@ -3204,7 +3086,7 @@ public void psubscribe(BinaryJedisPubSub jedisPubSub, byte[]... patterns) {

@Override
public int getDB() {
return client.getDB();
return client.getDb();
}

/**
Expand Down
Loading