zoukankan      html  css  js  c++  java
  • Redis理解

    突然看到一篇关于Redis的理解。发现渐渐的随着工作开始成了一个copy工作者。每次发现错误或者需要用的东西就会跑来查询,查询以后就去测试然后应用。慢慢的在不知道的情况中忘记了当时学习的快乐。

    此篇只是博主个人思维导图,各位朋友看完勿喷,有错误希望在评论区写下来,万分感谢

    Redis思维导图(RDB模式转换AOF模式)

    1. 缺点:每次加入新的数据,主节点都会把全部数据再次发送给从节点。这是要损害消耗的。

    2. 解决问题一:增加缓存区和偏移量 方便在某个从节点挂掉以后 上线同步数据 有一个问题就是如果新进从节点该怎么办

     缺点:如果有新加入的从节点,那么主节点如何判断是否需要同步全部数据

     为了更容易看清楚,下面分为多张图片

     2.1. 没有有掉线情况

     

     2.2. 存在掉线情况

      图一

      

      

      图二

      

      图三

      

    3. 解决问题二:增加主节点的唯一的随机运行ID,来保证主节点明确知道谁是自己的下级 问题来了 如果主节点挂掉怎么办

      

    4. 解决问题三:哨兵模式 sentinel

      问题三:当主节点挂掉以后,如何选择某一个从节点做为主节点,又如何选择某一个这个节点如何修复

      哨兵模式:独立的进程运行,比如说 城池防守,所有士兵都站在城墙上被攻城人冲击。哨兵模式则是监军。来回巡逻,如果士兵被流矢击中倒地,监军就会过去拍拍士兵挂没挂,如挂了,那么监军就会把挂掉士兵拖下去,让另一个士兵顶上。也就是说一个监军可以监多个士兵

      哨兵:

        1. 通过发送命令,让Redis服务器返回监控的状态。包括master和slave

        2. 当哨兵检测到master挂掉,会自动将slave转换成master,并且会告知所有的 slave 你们的master换了。以后去新的master同步数据。然后所有的slave收到消息以后,修改自己的配置文件。以后就去新master拿数据

      4.1. 单哨兵  问题又来了 万一单哨兵,哨兵挂掉怎么办

        

      4.2 多哨兵模式  解决单哨兵模式挂掉怎么办 

        多哨兵模式:sentinel不但需要监听master和slave还需要监听除自己以外的别的sentinel。已防止某个sentinel挂掉。

        如master挂掉以后,由于不是一个单哨兵模式了,所以发现的哨兵会自己做一个记录,一定数量的sentinel知道挂掉以后,就会去讨论哪一个slave来顶替master的位置,来进行投票表决。

        最后结果投票之后,由发起人sentinel来进行failover操作,也就是故障切换,切换以后告诉所有哨兵,让哨兵告诉监控下的所有slave更改配置

        

      

  • 相关阅读:
    关于 数据库中 读写 Blob 字段的正确做法。
    C# wave mp3 播放器探寻
    公布Delphi热键注册源码
    Windows 下 Eclipse 集成开发环境演绎
    VS2012 MSHA 文件制做程序
    Erlang 学习笔记 (二) Debugger工具的使用
    Excel里数字列号转换为字符标签列
    串或序列的rotate操作
    64K动画技术剖析:Mod音乐的制作和使用
    64K动画 技术剖析之:Metaball
  • 原文地址:https://www.cnblogs.com/honour1207/p/14080757.html
Copyright © 2011-2022 走看看