public class JedisClusterInfoCache
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private int |
connectionTimeout |
private static int |
MASTER_NODE_INDEX |
private java.util.Map<java.lang.String,JedisPool> |
nodes |
private java.lang.String |
password |
private org.apache.commons.pool2.impl.GenericObjectPoolConfig |
poolConfig |
private java.util.concurrent.locks.Lock |
r |
private boolean |
rediscovering |
private java.util.concurrent.locks.ReentrantReadWriteLock |
rwl |
private java.util.Map<java.lang.Integer,JedisPool> |
slots |
private int |
soTimeout |
private java.util.concurrent.locks.Lock |
w |
| Constructor and Description |
|---|
JedisClusterInfoCache(org.apache.commons.pool2.impl.GenericObjectPoolConfig poolConfig,
int timeout) |
JedisClusterInfoCache(org.apache.commons.pool2.impl.GenericObjectPoolConfig poolConfig,
int connectionTimeout,
int soTimeout,
java.lang.String password) |
| Modifier and Type | Method and Description |
|---|---|
void |
assignSlotsToNode(java.util.List<java.lang.Integer> targetSlots,
HostAndPort targetNode) |
void |
assignSlotToNode(int slot,
HostAndPort targetNode) |
void |
discoverClusterNodesAndSlots(Jedis jedis) |
private void |
discoverClusterSlots(Jedis jedis) |
private HostAndPort |
generateHostAndPort(java.util.List<java.lang.Object> hostInfos) |
private java.util.List<java.lang.Integer> |
getAssignedSlotArray(java.util.List<java.lang.Object> slotInfo) |
JedisPool |
getNode(java.lang.String nodeKey) |
static java.lang.String |
getNodeKey(Client client) |
static java.lang.String |
getNodeKey(HostAndPort hnp) |
static java.lang.String |
getNodeKey(Jedis jedis) |
java.util.Map<java.lang.String,JedisPool> |
getNodes() |
java.util.List<JedisPool> |
getShuffledNodesPool() |
JedisPool |
getSlotPool(int slot) |
void |
renewClusterSlots(Jedis jedis) |
void |
reset()
Clear discovered nodes collections and gently release allocated resources
|
JedisPool |
setupNodeIfNotExist(HostAndPort node) |
JedisPool |
setupNodeIfNotExist(HostAndPort node,
boolean ssl) |
JedisPool |
setupNodeIfNotExist(HostAndPort node,
boolean ssl,
javax.net.ssl.SSLSocketFactory sslSocketFactory,
javax.net.ssl.SSLParameters sslParameters,
javax.net.ssl.HostnameVerifier hostnameVerifier) |
private final java.util.Map<java.lang.String,JedisPool> nodes
private final java.util.Map<java.lang.Integer,JedisPool> slots
private final java.util.concurrent.locks.ReentrantReadWriteLock rwl
private final java.util.concurrent.locks.Lock r
private final java.util.concurrent.locks.Lock w
private volatile boolean rediscovering
private final org.apache.commons.pool2.impl.GenericObjectPoolConfig poolConfig
private int connectionTimeout
private int soTimeout
private java.lang.String password
private static final int MASTER_NODE_INDEX
public JedisClusterInfoCache(org.apache.commons.pool2.impl.GenericObjectPoolConfig poolConfig,
int timeout)
public JedisClusterInfoCache(org.apache.commons.pool2.impl.GenericObjectPoolConfig poolConfig,
int connectionTimeout,
int soTimeout,
java.lang.String password)
public void discoverClusterNodesAndSlots(Jedis jedis)
public void renewClusterSlots(Jedis jedis)
private void discoverClusterSlots(Jedis jedis)
private HostAndPort generateHostAndPort(java.util.List<java.lang.Object> hostInfos)
public JedisPool setupNodeIfNotExist(HostAndPort node)
public JedisPool setupNodeIfNotExist(HostAndPort node, boolean ssl)
public JedisPool setupNodeIfNotExist(HostAndPort node, boolean ssl, javax.net.ssl.SSLSocketFactory sslSocketFactory, javax.net.ssl.SSLParameters sslParameters, javax.net.ssl.HostnameVerifier hostnameVerifier)
public void assignSlotToNode(int slot,
HostAndPort targetNode)
public void assignSlotsToNode(java.util.List<java.lang.Integer> targetSlots,
HostAndPort targetNode)
public JedisPool getNode(java.lang.String nodeKey)
public JedisPool getSlotPool(int slot)
public java.util.Map<java.lang.String,JedisPool> getNodes()
public java.util.List<JedisPool> getShuffledNodesPool()
public void reset()
public static java.lang.String getNodeKey(HostAndPort hnp)
public static java.lang.String getNodeKey(Client client)
public static java.lang.String getNodeKey(Jedis jedis)
private java.util.List<java.lang.Integer> getAssignedSlotArray(java.util.List<java.lang.Object> slotInfo)