redis-三种不同的集群模式

虽然redis提供了rdb(全量备份)和aof(增量备份),但单机节点有可能出现服务器宕机等情况导致数据丢失,无法实现一个高可用的目的;

  1. 主从同步(复制): 通过主节点向所有的从节点复制数据,当主节点出现数据变更时将自动将数据同步到从节点;
    1. 劣势点:
      1. 当主节点宕机情况下,无法自动完成主备切换,需要使用手动完成切换
      2. 由于需要在主从节点上同时保存相同的数据,造成一定的数据浪费
    2. 优势点:避免了可能出现的数据丢失的情况
  2. 哨兵模式:和原有的主从同步不同的点在于其利用单独一个机器(进程)作为哨兵来进行监控所有的节点,当发现主节点失效后,会自动从可用的其他从节点中选择一个作为主节点,完成自动主备切换
    1. 切换主节点主要是通过发布订阅通知的模式来通知所有的从节点当前最新的主节点
    2. 为了保证哨兵的高可用性,会针对哨兵也搭建集群模式,保证了哨兵的高可用性;
    3. 在哨兵集群模式情况下,则需要利用投票选举满足多数的情况下才能完成主节点下线操作
    4. 优势点: 包含主从同步的所有优势点; 以及支持自动完成主节点切换
    5. 劣势点:很难支持在线扩容
  3. cluster:对于cluster 和 哨兵模式的不同点在于,其维护多个主节点,主节点之间的数据并不一致,但支持相互通信实现数据互通的目的;一般要求主节点至少要在三个以上,主节点和从节点之间也要求至少满足1:n(n>1)的关系
    1. 对于主从同步,从节点上依旧存储主节点的备份数据
    2. 关于主从切换,由于所有的节点之间都是支持相互通信(PING-PONG模式)的,当半数以上的节点访问当前节点出现超时的情况,则认为当前节点失效,需要将当前节点移除
    3. 集群的优势点
      1. 集群保障了节点的高可用性,且对于客户端访问集群并不需要任何中间层转发
      2. 且其通过节点直接互通的目的达到访问的高效性

对于哨兵模式和cluster模式的不同点在于, 哨兵模式只是保证了主备节点自动切换,但其实际任然为一个单主节点,写入效率会降低; 而对于 cluster 其通过多个主节点通过插槽的模式分配不同的key,实现了多个主节点不同key共同写入

posted @ 2020-12-25 16:48  郭星  阅读(321)  评论(0)    收藏  举报