SELECT command can't be executed with Sentinel node. #387

pull/395/head
Nikita 9 years ago
parent e2d2861eb3
commit 5ab7c73691

@ -48,7 +48,7 @@ public class ClientConnectionsEntry {
private FreezeReason freezeReason; private FreezeReason freezeReason;
final RedisClient client; final RedisClient client;
public enum NodeType {SLAVE, MASTER} public enum NodeType {SLAVE, MASTER, SENTINEL}
private final NodeType nodeType; private final NodeType nodeType;
private ConnectionManager connectionManager; private ConnectionManager connectionManager;

@ -36,7 +36,7 @@ public class DefaultConnectionListener implements ConnectionInitializer {
if (config.getPassword() != null) { if (config.getPassword() != null) {
connectionListener.addCommand(RedisCommands.AUTH, config.getPassword()); connectionListener.addCommand(RedisCommands.AUTH, config.getPassword());
} }
if (config.getDatabase() != 0) { if (config.getDatabase() != 0 && serverMode != NodeType.SENTINEL) {
connectionListener.addCommand(RedisCommands.SELECT, config.getDatabase()); connectionListener.addCommand(RedisCommands.SELECT, config.getDatabase());
} }
if (config.getClientName() != null) { if (config.getClientName() != null) {

@ -37,6 +37,7 @@ import org.redisson.client.codec.StringCodec;
import org.redisson.client.protocol.RedisCommands; import org.redisson.client.protocol.RedisCommands;
import org.redisson.client.protocol.pubsub.PubSubType; import org.redisson.client.protocol.pubsub.PubSubType;
import org.redisson.connection.ClientConnectionsEntry.FreezeReason; import org.redisson.connection.ClientConnectionsEntry.FreezeReason;
import org.redisson.connection.ClientConnectionsEntry.NodeType;
import org.redisson.misc.URIBuilder; import org.redisson.misc.URIBuilder;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -69,7 +70,7 @@ public class SentinelConnectionManager extends MasterSlaveConnectionManager {
continue; continue;
} }
Promise<RedisConnection> f = newPromise(); Promise<RedisConnection> f = newPromise();
connectListener.onConnect(f, connection, null, c); connectListener.onConnect(f, connection, NodeType.SENTINEL, c);
f.syncUninterruptibly(); f.syncUninterruptibly();
// TODO async // TODO async

Loading…
Cancel
Save