根据一配置主从: https://blog.csdn.net/faicm/article/details/81698959
建立sentinel.conf文件
==注意,这里只需要配置master的ip,不需要salve的ip配置,哨兵会自己去找==
# 这个是Redis6379配置内容,其他文件同理新增然后改一下端口即可,26380,和 26381。
#当前Sentinel服务运行的端口
port 26379
# 哨兵监听的主服务器,这里的ip是针对客户端而言的ip
sentinel monitor mymaster 127.0.0.1 6379 2
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
# 执行故障转移时, 最多有1个从服务器同时对新的主服务器进行同步
sentinel parallel-syncs mymaster 1
protected-mode no
运行
./redis-sentinel sentinel.conf
jedis访问
public class MasterAndSlaveTest {
public static void main(String[] args) throws InterruptedException {
Set<String> sentinels = new HashSet<String>();
sentinels.add(new HostAndPort("118.25.5.23", 63790).toString());
JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels);
System.out.println("Current master: " + sentinelPool.getCurrentHostMaster().toString());
Jedis master = sentinelPool.getResource();
while (true) {
Thread.sleep(2000);
try {
//主节点挂了,get会异常,然后重新拉取。
System.out.println(master.get("aaa"));
} catch (Exception e) {
try {
master = sentinelPool.getResource();
} catch (Exception e2) {
e2.printStackTrace();
}
e.printStackTrace();
}
}
}
}