zoukankan      html  css  js  c++  java
  • Redis宕机的问题

    在主从模式下宕机要分为区分来看:

    1. slave从redis宕机

      ​ 在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据;
      ​ 如果从数据库实现了持久化,只要重新假如到主从架构中会实现增量同步。

    2. Master 宕机

      ​ 假如主从都没数据持久化,此时千万不要立马重启服务,否则可能会造成数据丢失,正确的操作如下:

      ​ - 在slave数据上执行SLAVEOF ON ONE,来断开主从关系并把slave升级为主库

      ​ - 此时重新启动主数据库,执行SLAVEOF,把它设置为从库,自动备份数据。
      ​ 以上过程很容易配置错误,可以使用简单的方法:redis的哨兵(sentinel)的功能。

    哨兵(sentinel)的原理:

    Redis提供了sentinel(哨兵)机制通过sentinel模式启动redis后,自动监控master/slave的运行状态,基本原理是:心跳机制+投票裁决。

    每个sentinel会向其它sentinal、master、slave定时发送消息,以确认对方是否“活”着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的“主观认为宕机” Subjective Down,简称SDOWN)。

    若"哨兵群"中的多数sentinel,都报告某一master没响应,系统才认为该master"彻底死亡"(即:客观上的真正down机,Objective Down,简称ODOWN),通过一定的vote算法,从剩下的slave节点中,选一台提升为master,然后自动修改相关配置。

    补充:

    哨兵的配置:

    1. 复制redis中sentinel.conf,根据情况进行配置
  • 相关阅读:
    (元)黄公望---富春山居图(中国十大传世名画之八) 高清图下载
    Bloom Filter 原理与应用
    开始我的 JNI 入门吧
    javaScript的使用
    hash定义
    POJ3169 Layout(差分约束系统)
    青蛙的约会
    POJ 3414 Pots ( BFS , 打印路径 )
    你真的理解Java的this和super吗?
    十款优秀的在线JavaScript工具介绍
  • 原文地址:https://www.cnblogs.com/kadycui/p/10324559.html
Copyright © 2011-2022 走看看