• Redis高可用演进(一)


    原文链接:http://www.cnblogs.com/chenty/p/5152878.html 

    最近整理Redis,对sentinel有了更深入的理解,特地总结如下

    1.主从Redis

     主从redis实际上是一种主备模式,即主redis宕机后,可以切换从redis继续提供服务。

      缺点:

        1.人为关注Master是否宕机

        2.无法完成自动切换主从

        3.从节点的功能未被充分利用

    主从模式:

           

      

    2.sentinel

     为了解决上述确定,Redis官方提供了sentinel,保证redis的高可用性

    图1展示的是sentinel与redis的关系,即sentinel系统对每个redis实例(主、从)均创建两个链接:命令连接、订阅连接

        命令连接:发送INFO命令,与redis保持通信

        订阅连接:通过订阅连接,自动发现其他sentinel实例

    图2展示一个最小规模的sentinel,即至少由三个sentinel实例组成,当被监视的redis被判断为主管下线时,需要从sentinel中选举零头sentinel来进行主从切换

    优点:

      1.sentienl可以监控主从节点的健康状况,降低了人为监控成本

      2.sentinel可以完成主从切换

    缺点:

      1.从节点依然未被充分利用

      2.无法做到横向扩展,提供服务器的只有一个master

    sentinel模式:

       

                图1

          

               图2

    3.分片

     分片思想主要是利用一致性哈希算法,完成redis的横向扩展

      1.通过zookeeper存储sentinel的配置信息

      2.在客户端实现一致性哈希算法,通过路由算法决定redis命令由那个redis实例进行执行

      3.通过增加shard,来分担单个shard的压力

    缺点:

      1.扩容时涉及到数据迁移,如果redis中只是缓存数据则方便处理,但如果有业务数据强依赖redis,则迁移时只能停机处理

      2.无法解决冷热数据问题

    分片模式:

    下节重点:

      JedisClient客户单的实现原理

  • 相关阅读:
    JavaSE_11_File类、递归
    JavaSE_10_IO流
    leyou_07_对数据的操作
    JavaSE_09_Map
    JavaSE_08_Collections常用功能
    java 22
    java 22
    java 22
    java 22
    java 22
  • 原文地址:https://www.cnblogs.com/chenty/p/5152878.html
Copyright © 2020-2023  润新知