• redis的几种集群方式


    一 单机版

    分析:

    无论多少用户,都访问这一台服务器 。服务器一旦挂了,所有用户都无法访问。风险很大,一般不会有人使用。

    二 主从模式(master/slaver)

     

    分析:

    主从模式中,

    无论多少用户,都访问这一台服务器。主服务器有读写的能力,从服务器一般只有读的能力。从服务器会定时或在满足一定条件时同步主服务器的数据。这样可以保证数据的安全性。

    主服务器一旦崩溃。将不再向用户提供服务。从服务器如果崩溃,将不会影响主服务器和其他从服务器的正常运行。

    三 sentinel模式

     

     分析:

    哨兵服务器作用:

      通过发送命令,让Redis服务器返回监控其运行状态,包括主服务器和从服务器。  

      当哨兵监测到master宕机,会自动将slave切换成master,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

    通俗一点将:就是将上面的主从模式加了一个或多个监工(哨兵服务器),哨兵服务器会定时监测各台服务器的运行状态,一旦有服务器下线了,哨兵会将其标记为主观下线。当

    一定数量的哨兵都监测到此主机下线后,哨兵们会进行一次投票。重新选举出一个主服务器。并修改各个redis服务器的配置信息。

    四 cluster模式

     

     分析: 

    首先需要引入一个叫【槽位】的名词,槽位的范围是0~16384。每个key都会通过计算规则得到唯一的槽位值。

    如上图所示,redis一共有两台主服务器,每台主服务器有两台从服务器。

    redis1的槽位值为0~100,redis2的槽位值为101~16384。

    举个例子 ,用户做了sey(k1,v1);的操作。 服务器的处理过程是:先计算k1的槽位置,得到结果为4568。根据此槽位置所处的服务器。服务器会将此操作分配到Redis2的主服务器上。所以redis2上会执行sey(k1,v1)的操作,redis2下面的从服务器会进行同步数据的操作。

    其他分析:

    此模式支持灵活扩展,可以添加或移除redis主服务器。主服务器之间不允许存在相同的槽位值。所有主服务器槽位值的并集应该是0~16384;

    每台redis主服务器和其从服务器都是一个小集群。当一台主服务器崩溃时。系统会选择一个从服务器将其升级为redis主服务器。

  • 相关阅读:
    深入Java集合学习系列:ConcurrentHashSet简单实现
    深入Java集合学习系列:TreeSet 详解
    深入Java集合学习系列:TreeMap实现
    深入Java集合学习系列:ConcurrentHashMap之实现细节
    深入Java集合学习系列:WeakHashMap的实现原理
    深入Java集合学习系列:Hashtable的实现原理
    深入Java集合学习系列:LinkedList的实现原理
    深入Java集合学习系列:ArrayList的实现原理
    深入Java集合学习系列:LinkedHashSet的实现原理
    深入Java集合学习系列:LinkedHashMap的实现原理
  • 原文地址:https://www.cnblogs.com/longma8586/p/15950318.html
Copyright © 2020-2023  润新知