Redis:集群

最近在整理有关redis的相关知识,对于redis的基本数据类型以及其底层的存储结构简要的进行汇总和备注(主要为面试用😂

本篇文章比较老旧,近期会从新跟新发布,期待与大家共同讨论成长。

-------------------------------------------------------------------------------------------------------

最近整理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客户单的实现原理

posted @ 2016-01-23 11:00  YN程序猿  阅读(3469)  评论(0编辑  收藏  举报