Redis的主从复制和哨兵模式

时间:2020-04-12 16:59:58   收藏:0   阅读:48

搭建主从复制

Redis哨兵模式

 public static void main(String[] args) {
        Logger logger = LoggerFactory.getLogger(SentinelPool.class);
        Set<String> set = new HashSet<>();
        set.add("192.168.100.110:7000");
        set.add("192.168.100.110:7001");
        set.add("192.168.100.110:7002");
        JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("mymaster", set, "123456");
        while (true) {
            Jedis jedis = null;
            try {
                jedis = jedisSentinelPool.getResource();
                String s = UUID.randomUUID().toString();
                jedis.set("k" + s, "v" + s);
                System.out.println(jedis.get("k" + s));
                Thread.sleep(1000);
            } catch (Exception e) {
                logger.error(e.getMessage());
            } finally {
                if (jedis != null) {
                    jedis.close();
                }
            }
        }
    }
	<哨兵的地址>,<哨兵的端口>,<哨兵的运行ID>,<哨兵的配置版本>,
	<主数据库的名字>,<主数据库的地址>,<主数据库的端口>,<主数据库的配置版本>

技术分享图片
??哨兵通过监听的_sentinel_:hello频道接收到其他哨兵发送的消息后会判断哨兵是不是新发现的哨兵,如果是则将其加入已发现的哨兵列表中并创建一个到其的连接(哨兵与哨兵只会创建用来发送PING命令的连接,不会创建订阅频道的连接)。
??实现了自定发现从数据库和其他哨兵节点后,哨兵要做的就是定时监控这些数据和节点运行情况,每隔一定时间向这些节点发送PING命令来监控。间隔时间和down-after-milliseconds选项有关,down-after-milliseconds的值小于1秒时,哨兵会每隔down-after-milliseconds指定的时间发送一次PING命令,当down-after-milliseconds的值大于1秒时,哨兵会每隔1秒发送一次PING命令。例如:

					// 每隔1秒发送一次PING命令
						sentinel down-after-milliseconds mymaster 60000
						// 每隔600毫秒发送一次PING命令
					sentinel down-after-milliseconds othermaster 600
sentinel monitor mymaster 192.168.100.110 8000 2

该配置表示只有当至少有两个Sentinel节点(包括当前节点)认为该主数据库主观下线时,当前哨兵节点才会认为该主数据库客观下线。接下来选举领头哨兵。

序号 挑选依据
1 所有在线的从数据库中,选择优先级最高的从数据库。优先级通过replica-priority参数设置
2 优先级相同,则复制的命令偏移量越大(复制越完整)越优先
3 如果以上都一样,则选择运行ID较小的从数据库

2.选出一个从数据库后,领头哨兵将向从数据库发送SLAVEOF NO ONE命令使其升格为主数据库,而后领头哨兵向其他从数据库发送 SLAVEOF命令来使其成为新主数据库的从数据库,最后一步则是更新内部的记录,将已经停止服务的旧的主数据库更新为新的主数据库的从数据库,使得当其恢复服务时自动以从数据库的身份继续服务

原文:https://www.cnblogs.com/yangk1996/p/12685822.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!