zoukankan      html  css  js  c++  java
  • Redis主从复制,哨兵模式

    主从复制

    主从复制主要的作用

    • 数据冗余: 主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。
    • 故障恢复: 当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复 (实际上是一种服务的冗余)
    • 负载均衡: 在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供读服务 (即写 Redis 数据时应用连接主节点,读 Redis 数据时应用连接从节点),分担服务器负载。尤其是在写少读多的场景下,通过多个从节点分担读负载,可以大大提高 Redis 服务器的并发量。
    • 高可用基石: 除了上述作用以外,主从复制还是哨兵和集群能够实施的 基础,因此说主从复制是 Redis 高可用的基础。

    在redis中实现主从复制非常简单,只需要在开启的服务中输入:SLAVEOF MASTER PORT,就可以与主服务器实现主从复制。info replication查看主从状态。主服务器可以进行读写操作,从服务器只能进行读操作,不能进行写操作。

    哨兵模式

    哨兵模式是在主从模式的基础上,增加一个哨兵节点,对主从服务器进行监控,若发现主服务器宕机故障,则自动实现故障转移,在从服务器中选择一个新的主服务器,不需要人工干预。

    Step1:创建哨兵启动文件 vim sentinel.conf,其中的主要配置为sentinel monitor mymaster 192.168.0.5 6379 2 

     mymaster为主机名字,可随意取;192.168.0.5 6379,主服务器的ip地址和端口;最后的数字2,代表当主机宕机,选取新的主服务器的时候需要2个哨兵节点的同意。

    Step2:开启哨兵服务 redis-sentinel sentinel.conf

    Step3:开启一个主服务器,两个从服务器

    Step4:断掉主服务器

    Step5:默认时间为30秒(可配置),哨兵会选取新的从服务器变为主服务器,等之前的主服务器重连后,会变成新的从服务器。

    从 Slave 中选择新 Master 节点的规则(slave 升级成 master 之后)

    1. 选择 slave-priority 最高的节点。
    2. 选择复制偏移量最大的节点(同步数据最多)。
    3. 选择 runId 最小的节点
  • 相关阅读:
    【BZOJ 2115】Xor
    COCI 2017-2018#7
    【SCOI 2005】骑士精神
    [cocos2d-x]我发现的内存管理机制的一些问题
    [深度探索C++对象模型]trival constructor和non-trival constructor
    [C++标准模板库:自修教程与参考手册]关于deque
    [C++标准模板库:自修教程与参考手册]关于vector
    [C++标准模板库:自修教程与参考手册]关于auto_ptr
    [cocos2d-x]关于声音和音效
    [cocos2d-x]关于坐标系
  • 原文地址:https://www.cnblogs.com/xingzhu-nan/p/14256687.html
Copyright © 2011-2022 走看看