Heim > Fragen und Antworten > Hauptteil
redis Master-Slave, wodurch ein Lese-Schreib-Trennungseffekt ähnlich wie bei MySQL erzielt wird. Ist es notwendig, den Slave-Host auf Codeebene auszuführen?
Derzeit ist der Sentinel-Cluster über den Jedis-Client JedisSentinelPool verbunden. Beim Anzeigen der Protokollausgabe sollte die Verbindung zum Host des Masters erfolgen. Wird die Leseanforderung automatisch an den Slave weitergeleitet?
淡淡烟草味2017-05-16 13:22:21
主的配置好ip和端口,从的配置好Slaveof的master地址和端口号,哨兵监控master的ip和端口号,java代码直接master的name和密码就行了。
`
public static void main(String[] args) {
Set<String> sentinels = new HashSet<String>();
String hostAndPort1 = "127.0.0.1:26379";
String hostAndPort2 = "127.0.0.1:26380";
sentinels.add(hostAndPort1);
sentinels.add(hostAndPort2);
String clusterName = "mymaster";
String password = "123456";
JedisSentinelPool redisSentinelJedisPool = new JedisSentinelPool(clusterName,sentinels,password);
Jedis jedis = null;
try {
jedis = redisSentinelJedisPool.getResource();
System.out.println(jedis.get("key"));
} catch (Exception e) {
e.printStackTrace();
} finally {
redisSentinelJedisPool.returnBrokenResource(jedis);
}
redisSentinelJedisPool.close();
`