public class MasterSlaveConnectionManager extends Object implements ConnectionManager
Modifier and Type | Field and Description |
---|---|
protected Codec |
codec |
protected MasterSlaveServersConfig |
config |
protected DNSMonitor |
dnsMonitor |
protected Queue<PubSubConnectionEntry> |
freePubSubConnections |
protected io.netty.channel.EventLoopGroup |
group |
static int |
MAX_SLOT |
protected ConcurrentMap<String,PubSubConnectionEntry> |
name2PubSubConnection |
protected ClusterSlotRange |
singleSlotRange |
protected Class<? extends io.netty.channel.socket.SocketChannel> |
socketChannelClass |
Constructor and Description |
---|
MasterSlaveConnectionManager(Config cfg) |
MasterSlaveConnectionManager(MasterSlaveServersConfig cfg,
Config config) |
public static final int MAX_SLOT
protected final ClusterSlotRange singleSlotRange
protected Codec codec
protected io.netty.channel.EventLoopGroup group
protected Class<? extends io.netty.channel.socket.SocketChannel> socketChannelClass
protected final ConcurrentMap<String,PubSubConnectionEntry> name2PubSubConnection
protected final Queue<PubSubConnectionEntry> freePubSubConnections
protected DNSMonitor dnsMonitor
protected MasterSlaveServersConfig config
public MasterSlaveConnectionManager(MasterSlaveServersConfig cfg, Config config)
public MasterSlaveConnectionManager(Config cfg)
public boolean isClusterMode()
isClusterMode
in interface ConnectionManager
public CommandSyncService getCommandExecutor()
getCommandExecutor
in interface ConnectionManager
public IdleConnectionWatcher getConnectionWatcher()
getConnectionWatcher
in interface ConnectionManager
public Config getCfg()
getCfg
in interface ConnectionManager
public MasterSlaveServersConfig getConfig()
getConfig
in interface ConnectionManager
public Codec getCodec()
getCodec
in interface ConnectionManager
public Collection<MasterSlaveEntry> getEntrySet()
getEntrySet
in interface ConnectionManager
protected void initTimer(MasterSlaveServersConfig config)
protected void initSingleEntry()
protected MasterSlaveEntry createMasterSlaveEntry(MasterSlaveServersConfig config, HashSet<ClusterSlotRange> slots)
protected MasterSlaveServersConfig create(BaseMasterSlaveServersConfig<?> cfg)
public RedisClient createClient(NodeType type, URI address)
createClient
in interface ConnectionManager
public void shutdownAsync(RedisClient client)
shutdownAsync
in interface ConnectionManager
public RedisClient createClient(NodeType type, URI address, int timeout, int commandTimeout)
createClient
in interface ConnectionManager
protected RedisClientConfig createRedisConfig(NodeType type, URI address, int timeout, int commandTimeout)
public int calcSlot(String key)
calcSlot
in interface ConnectionManager
public PubSubConnectionEntry getPubSubEntry(String channelName)
getPubSubEntry
in interface ConnectionManager
public RFuture<PubSubConnectionEntry> psubscribe(String channelName, Codec codec, RedisPubSubListener<?>... listeners)
psubscribe
in interface ConnectionManager
public RFuture<PubSubConnectionEntry> psubscribe(String channelName, Codec codec, AsyncSemaphore semaphore, RedisPubSubListener<?>... listeners)
psubscribe
in interface ConnectionManager
public RFuture<PubSubConnectionEntry> subscribe(Codec codec, String channelName, RedisPubSubListener<?>... listeners)
subscribe
in interface ConnectionManager
public RFuture<PubSubConnectionEntry> subscribe(Codec codec, String channelName, AsyncSemaphore semaphore, RedisPubSubListener<?>... listeners)
subscribe
in interface ConnectionManager
public AsyncSemaphore getSemaphore(String channelName)
getSemaphore
in interface ConnectionManager
public Codec unsubscribe(String channelName, AsyncSemaphore lock)
unsubscribe
in interface ConnectionManager
public RFuture<Codec> unsubscribe(String channelName, boolean temporaryDown)
unsubscribe
in interface ConnectionManager
public Codec punsubscribe(String channelName, AsyncSemaphore lock)
punsubscribe
in interface ConnectionManager
public RFuture<Codec> punsubscribe(String channelName, boolean temporaryDown)
punsubscribe
in interface ConnectionManager
public MasterSlaveEntry getEntry(InetSocketAddress addr)
getEntry
in interface ConnectionManager
public MasterSlaveEntry getEntry(int slot)
getEntry
in interface ConnectionManager
protected final void changeMaster(int slot, URI address)
protected final void addEntry(Integer slot, MasterSlaveEntry entry)
protected MasterSlaveEntry removeMaster(Integer slot)
public RFuture<RedisConnection> connectionWriteOp(NodeSource source, RedisCommand<?> command)
connectionWriteOp
in interface ConnectionManager
public RFuture<RedisConnection> connectionReadOp(NodeSource source, RedisCommand<?> command)
connectionReadOp
in interface ConnectionManager
protected void releaseSubscribeConnection(int slot, PubSubConnectionEntry pubSubEntry)
public void releaseWrite(NodeSource source, RedisConnection connection)
releaseWrite
in interface ConnectionManager
public void releaseRead(NodeSource source, RedisConnection connection)
releaseRead
in interface ConnectionManager
public void shutdown()
shutdown
in interface ConnectionManager
public void shutdown(long quietPeriod, long timeout, TimeUnit unit)
shutdown
in interface ConnectionManager
public boolean isShuttingDown()
isShuttingDown
in interface ConnectionManager
public boolean isShutdown()
isShutdown
in interface ConnectionManager
public Collection<RedisClientEntry> getClients()
getClients
in interface ConnectionManager
public <R> RPromise<R> newPromise()
newPromise
in interface ConnectionManager
public <R> RFuture<R> newSucceededFuture(R value)
newSucceededFuture
in interface ConnectionManager
public <R> RFuture<R> newFailedFuture(Throwable cause)
newFailedFuture
in interface ConnectionManager
public io.netty.channel.EventLoopGroup getGroup()
getGroup
in interface ConnectionManager
public io.netty.util.Timeout newTimeout(io.netty.util.TimerTask task, long delay, TimeUnit unit)
newTimeout
in interface ConnectionManager
public InfinitySemaphoreLatch getShutdownLatch()
getShutdownLatch
in interface ConnectionManager
public RFuture<Boolean> getShutdownPromise()
getShutdownPromise
in interface ConnectionManager
public ConnectionEventsHub getConnectionEventsHub()
getConnectionEventsHub
in interface ConnectionManager
protected void stopThreads()
public ExecutorService getExecutor()
getExecutor
in interface ConnectionManager
public URI getLastClusterNode()
getLastClusterNode
in interface ConnectionManager
Copyright © 2014–2017 The Redisson Project. All rights reserved.