掌桥专利:专业的专利平台
掌桥专利
首页

Redis集群处理方法、装置、电子设备及计算机可读存储介质

文献发布时间:2023-06-19 09:54:18


Redis集群处理方法、装置、电子设备及计算机可读存储介质

技术领域

本申请涉及网上交易技术领域,尤其涉及一种Redis集群处理方法、装置、电子设备及计算机可读存储介质。

背景技术

现有技术中,对于Redis集群而言,当多个Redis主节点同时宕机,从而导致主从节点无法切换,在现有处理机制下,这种缺陷是很难避免的。而为了避免上述缺陷,通常是通过增加Redis主节点的数量,来降低同时出现Redis主节点宕机数量超过半数Redis主节点的概率;但这种方式会增加设备数量,导致产品的维护成本增加。且现有技术中,在进行Redis集群管理时,通常还需要通过资源池或者管理中心来进行调度,如此处理,由于引入其他设备或机器,从而需要额外占用资源,且不能做到触发式自动生成、按需启动,从而浪费了系统资源。且在现有技术中,通常还会引入第三方功能模块组件进行Redis集群的处理,导致维护成本增加。基于此,在超过半数Redis主节点对应的主机出现宕机时,如何将Redis集群功能恢复到正常成为了当前亟待解决的技术问题。

发明内容

本申请提供了一种Redis集群处理方法、装置、电子设备及计算机可读存储介质,以在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常。

第一方面,提供了一种Redis集群处理方法,Redis集群包括至少3个Redis主节点,每个Redis主节点部署于一台主机上,包括:

确定所述Redis集群当前的状态信息;

若确定所述Redis集群当前的状态信息为至少3个Redis主节点中不少于半数Redis主节点离线时,获取未离线的Redis主节点对应的主机;

在所述未离线的Redis主节点对应的主机上配置Redis旁备节点,所述Redis旁备节点为离线的Redis主节点对应的替换节点;

将所述Redis旁备节点替换离线的Redis主节点作为Redis主节点;

确定新的Redis集群当前的状态信息。

在一个可能地实现方式中,所述在所述未离线的Redis主节点对应的主机上配置Redis旁备节点之前,还包括:

获取离线的Redis主节点及其对应的Redis从节点的存活情况;

根据所述离线的Redis主节点及其对应的Redis从节点的存活情况确定需要配置Redis旁备节点的Redis主节点。

在一个可能地实现方式中,所述在所述未离线的Redis主节点对应的主机上配置Redis旁备节点,包括:

在所述未离线的Redis主节点对应的主机上任选一个未离线的Redis主节点对应的主机;

根据确定的需要配置Redis旁备节点的Redis主节点在选择的未离线的Redis主节点对应的主机上配置Redis旁备节点。

在一个可能地实现方式中,所述将所述Redis旁备节点替换离线的Redis主节点作为Redis主节点之前,还包括:

在所述Redis集群中删除所述离线的Redis主节点,释放所述离线的Redis主节点所占用的槽位;

将所述Redis旁备节点加入所述Redis集群中;

将释放的所述离线的Redis主节点所占用的槽位分配给所述Redis旁备节点。

在一个可能地实现方式中,若确定新的Redis集群当前的状态信息为离线的Redis主节点恢复时,所述方法还包括:

将所述Redis旁备节点从Redis主节点切换为Redis从节点,离线的Redis主节点切换为Redis主节点;

在新的Redis集群中删除所述Redis旁备节点,并关闭所述Redis旁备节点;

确定新的Redis集群当前的状态是否恢复到离线前的状态。

在一个可能地实现方式中,所述在新的Redis集群中删除所述Redis旁备节点,并关闭所述Redis旁备节点,包括:

在所述Redis集群中删除所述Redis旁备节点,关闭所述Redis旁备节点,释放所述Redis旁备节点所占用的槽位;

将所述离线的Redis主节点加入所述新的Redis集群中;

将释放的所述Redis旁备节点所占用的槽位分配给所述离线的Redis主节点。

第二方面,提供了一种Redis集群处理装置,Redis集群包括至少3个Redis主节点,每个Redis主节点部署于一台主机上,包括:

确定模块,用于确定所述Redis集群当前的状态信息;

获取模块,用于若所述确定模块确定所述Redis集群当前的状态信息为至少3个Redis主节点中不少于半数Redis主节点离线时,获取未离线的Redis主节点对应的主机;

配置模块,用于在所述未离线的Redis主节点对应的主机上配置Redis旁备节点,所述Redis旁备节点为离线的Redis主节点对应的替换节点;

替换模块,用于将所述Redis旁备节点替换离线的Redis主节点作为Redis主节点;

确定模块,还用于确定新的Redis集群当前的状态信息。

在一个可能地实现方式中,还包括:

所述获取模块,还用于获取离线的Redis主节点及其对应的Redis从节点的存活情况;

第一处理模块,用于根据所述离线的Redis主节点及其对应的Redis从节点的存活情况确定需要配置Redis旁备节点的Redis主节点。

在一个可能地实现方式中,所述配置模块,用于在所述未离线的Redis主节点对应的主机上任选一个未离线的Redis主节点对应的主机;根据确定的需要配置Redis旁备节点的Redis主节点在选择的未离线的Redis主节点对应的主机上配置Redis旁备节点。

在一个可能地实现方式中,还包括:

第二处理模块,用于在所述Redis集群中删除所述离线的Redis主节点,释放所述离线的Redis主节点所占用的槽位;将所述Redis旁备节点加入所述Redis集群中;将释放的所述离线的Redis主节点所占用的槽位分配给所述Redis旁备节点。

在一个可能地实现方式中,若确定模块确定所述Redis集群当前的状态信息为离线的Redis主节点恢复时,还包括:

第三处理模块,用于将所述Redis旁备节点从Redis主节点切换为Redis从节点,离线的Redis主节点切换为Redis主节点;在新的Redis集群中删除所述Redis旁备节点,并关闭所述Redis旁备节点;

确定模块,用于确定新的Redis集群当前的状态是否恢复到离线前的状态。

在一个可能地实现方式中,所述第三处理模块,具体用于在新的Redis集群中删除所述Redis旁备节点,关闭所述Redis旁备节点,释放所述Redis旁备节点所占用的槽位;将所述离线的Redis主节点加入新的Redis集群中;将释放的所述Redis旁备节点所占用的槽位分配给所述离线的Redis主节点。

第三方面,提供了一种电子设备,包括:处理器和存储器;

所述存储器,用于存储计算机程序;

所述处理器,用于通过调用所述计算机程序,执行上述的Redis集群处理方法。

第四方面,提供了一种计算机可读存储介质,所述计算机存储介质用于存储计算机程序,当其在计算机上运行时,使得计算机可以执行上述的Redis集群处理方法。

借由上述技术方案,本申请提供的技术方案至少具有下列优点:

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明实施例的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本申请提供的Redis集群处理方法的流程示意图;

图2为本申请提供的Redis集群处理方法的一种可能实现方式的具体处理流程示意图;

图3为本申请提供的Redis集群处理装置的结构示意图;

图4为本申请提供的Redis集群处理方法的电子设备的结构示意图。

具体实施方式

本申请提出一种Redis集群处理方法、装置、电子设备及计算机可读存储介质,下面结合附图,对本申请具体实施方式进行详细说明。

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件框架,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件框架和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。

如图1所示,为本申请提供的Redis集群处理方法的流程示意图,该方法中,Redis集群包括至少3个Redis主节点,每个Redis主节点部署于一台主机上,包括如下步骤:

步骤S101,确定Redis集群当前的状态信息;

若确定Redis集群当前的状态信息为至少3个Redis主节点中不少于半数Redis主节点离线时,转到步骤S102;

步骤S102,获取未离线的Redis主节点对应的主机;

步骤S103,在未离线的Redis主节点对应的主机上配置Redis旁备节点;

其中,Redis旁备节点为离线的Redis主节点对应的替换节点;

步骤S104,将Redis旁备节点替换离线的Redis主节点作为Redis主节点;

步骤S105,确定新的Redis集群当前的状态信息。

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

基于上述本申请所提供的技术方案,下面对该技术方案进行详尽阐释,如图2所示,为本申请提供的Redis集群处理方法的一个可能地实现方式的具体处理流程图。

在进行上述本申请技术方案的阐释之前,首先对其中涉及的Redis集群进行适当阐述。

Redis是一款开源的,采用key-value类型进行内存储存数据结构的产品。Redis是当前互联网较为流行的NoSQL数据库,部署后可以极大的提升系统性能,通常被当成数据库、缓存以及message broker使用。

Redis自身可以提供高可用的解决方案,主要包括哨兵模式及集群模式。针对集群模式,其相比哨兵模式有多个优势,其中包括:

1、集群模式可以有多个主节点,可以将数据量分散到各个主节点进行处理;而哨兵模式只能支持一个主节点,所有的数据量都集中在这个主节点处理。

2、无中心架构,节点内部通信时,通过cluster_bus_port进行相互通信,通过Raft算法使各个节点之间保持一致,通过自身节点投票机制即可进行主从节点的切换;而哨兵模式,需要通过哨兵(额外的模块)来判断节点状态进行切换,因此需要考虑哨兵的高可用,由于引入多个哨兵,会增加系统的资源消耗。

因此,本申请主要针对集群模式进行设计改进,在一个现有的实施例中,Redis集群包括五主十从(即5个Redis主节点及10个Redis从节点)。

设置主机1-5分别为五台主机,可以为物理机或者虚拟机。Redis集群共有五组节点,即包括5个Redis主节点及其各自对应的2个Redis从节点,为了保证资源平均使用以及高可用要求,要求每个Redis主节点分配到不同的主机。由于Redis集群使用槽位(共有16384个槽位)进行数据分配,因此5个主节点上会将全部槽位进行平均分配。其中,主机1上分配有Redis主节点1及Redis从节点4及Redis从节点5,主机2上分配有Redis主节点2及Redis从节点1及Redis从节点5,主机3上分配有Redis主节点3及Redis从节点1及Redis从节点2,主机4上分配有Redis主节点4及Redis从节点3及Redis从节点4,主机5上分配有Redis主节点5及Redis从节点3及Redis从节点4。在实施例中,Redis从节点数越多,高可用程度越高,但同时考虑到资源消耗情况,一般跟随某一Redis主节点的Redis从节点数量不超过2个。当某一Redis主节点离线(宕机)后,通过其他Redis主节点通过Raft算法进行投票,从其Redis从节点当中选举某一个Redis从节点,将其晋升为Redis主节点,从而保证集群高可用。

然而,虽然集群模式自身提供高可用性,可以通过无中心化Redis主节点投票机制进行节点下线以及主从节点切换的判断。但此投票机制有一个前提,即确保在线存活的主节点数量必须超过所有主节点数量的一半以上,投票机制才可以有效进行。因此,一旦发生多数Redis节点宕机的情况下,例如上述实施例中,如果发生了三台主机同时宕机的情况下,会带来两个问题,从而导致集群状态出现异常:

1、对于Redis集群任意一组节点,若其Redis主节点及Redis从节点都已离线,则该Redis节点无法恢复;

2、在存活的主机上,对应的Redis主节点可以继续对外提供服务,但对于Redis集群的其他三组节点,即便有Redis从节点未宕机离线,但由于未宕机的Redis主节点数量小于所有Redis主节点数量的一半,不能进行投票,因此无法进行节点的主从切换。

为了解决上述的集群模式缺陷问题,在面临多数Redis主节点同时宕机的情况下,集群模式还可以保持正常状态,通过引入了旁备节点的机制,该旁备节点自动判断宕机情况以及Redis主节点离线情况,触发式的在存活主机上生成旁备节点进行配置,按需启动,并自动修复Redis集群,恢复Redis集群到正常状态。

对于本申请,在一个可能地实现方式中,前述步骤S101的处理具体包括下述步骤S201~步骤S202的处理。

步骤S201,确定Redis集群当前的状态信息。

在一个可能地实现方式中,对于部署有Redis节点的多个主机,及时获取这些主机的运行情况,判断是否有宕机的情况发生,若主机发生宕机,则对应的Redis主节点会处于离线状态。当确定至少3个Redis主节点中不少于半数Redis主节点离线时,转到步骤S202;当确定至少3个Redis主节点中少于半数Redis主节点离线时,采用如前述阐述的现有投票机制的处理方式,在此不再做具体阐释。

对于本申请,在一个可能地实现方式中,前述步骤S102的处理具体包括下述步骤S202的处理。

步骤S202,获取未离线的Redis主节点对应的主机。

在一个可能地实现方式中,在确定至少3个Redis主节点中不少于半数Redis主节点离线时,获取未离线的Redis主节点对应的主机,以及离线的Redis主节点及其对应的Redis从节点的存活情况,从而可以根据上述信息来确定需要配置Redis旁备节点的Redis主节点。该配置的Redis旁备节点为离线的Redis主节点对应的替换节点,故其对应的配置信息与该Redis主节点相同。

对于本申请,在一个可能地实现方式中,前述步骤S103的处理具体包括下述步骤S203~步骤S204的处理。

步骤S203,选择一个未离线的Redis主节点对应的主机。

在一个可能地实现方式中,根据前述确定的需要配置Redis旁备节点的Redis主节点,结合获取的未离线的Redis主节点对应的主机以及离线的Redis主节点及其对应的Redis从节点的存活情况,确定出可用的未离线的Redis主节点对应的主机。在一个具体实施方式中,如有5个主机,离线的Redis主节点为Redis主节点1、2和3(即对应的主机1、2、3均宕机),主机4和主机5为未宕机的主机,且其上均没有Redis主节点1对应的Redis从节点,则可以从主机4和主机5中任选一个主机。

步骤S204,在选择的未离线的Redis主节点对应的主机上配置Redis旁备节点。

在一个可能地实现方式中,在前述选择好未离线的Redis主节点对应的主机后,根据确定的需要配置Redis旁备节点的Redis主节点将需要配置的Redis旁备节点配置在该选择的未离线的Redis主节点对应的主机上。

在一个可能地实现方式中,在将Redis旁备节点配置到未离线的Redis主节点对应的主机上时,需要删除该未离线的Redis主节点对应的主机上存储的本地Redis旁备节点对应的nodes配置文件及dump落盘数据文件。

对于本申请,在一个可能地实现方式中,前述步骤S104的处理具体包括下述步骤S205的处理。

步骤S205,将Redis旁备节点替换离线的Redis主节点作为Redis主节点。

在一个可能地实现方式中,在将Redis旁备节点配置到选择好的未离线的Redis主节点对应的主机上之后,在原Redis集群中删除该离线的Redis主节点,释放该离线的Redis主节点所占用的槽位,之后将Redis旁备节点加入到该Redis集群中,得到新的Redis集群;再将释放的离线的Redis主节点所占用的槽位分配给该Redis旁备节点,之后将该Redis旁备节点强制切换为Redis主节点,替换该离线的Redis主节点。

对于本申请,在一个可能地实现方式中,前述步骤S105的处理具体包括下述步骤S206的处理。

步骤S206,确定新的Redis集群当前的状态信息。

在一个可能地实现方式中,在选择的未离线的Redis主节点对应的主机上,将Redis旁备节点替换了Redis主节点作为新的Redis主节点后,还需要再次确定新的Redis集群当前的状态信息。若确定当前的状态信息为离线的Redis主节点恢复时,转到步骤S207;若确定当前的状态信息为离线的Redis主节点未恢复时,转到步骤S203,选择其他的未离线的Redis主节点对应的主机继续进行处理。

步骤S207,将离线的Redis主节点替换Redis旁备节点作为Redis主节点。

在一个可能地实现方式中,在确定当前的状态信息为离线的Redis主节点恢复之后,将Redis旁备节点从Redis主节点切换为Redis从节点,离线的Redis主节点切换为Redis主节点;在新的Redis集群中删除Redis旁备节点,关闭Redis旁备节点,释放Redis旁备节点所占用的槽位;将离线的Redis主节点加入新的Redis集群中;将释放的Redis旁备节点所占用的槽位分配给离线的Redis主节点,关闭该Redis旁备节点,并再次确定新的Redis集群当前的状态是否恢复到离线前的状态。

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

基于上述本申请所提供的Redis集群处理方法的技术方案,本申请对应提供了一种Redis集群处理装置的结构示意图,如图3所示,本申请的Redis集群处理装置30中,Redis集群包括至少3个Redis主节点,每个Redis主节点部署于一台主机上,装置可以包括:

确定模块31,用于确定Redis集群当前的状态信息;

获取模块32,用于若确定模块确定Redis集群当前的状态信息为至少3个Redis主节点中不少于半数Redis主节点离线时,获取未离线的Redis主节点对应的主机;

配置模块33,用于在未离线的Redis主节点对应的主机上配置Redis旁备节点,Redis旁备节点为离线的Redis主节点对应的替换节点;

替换模块34,用于将Redis旁备节点替换离线的Redis主节点作为Redis主节点;

确定模块31,还用于确定新的Redis集群当前的状态信息。

在一个可能地实现方式中,还包括:

获取模块32,还用于获取离线的Redis主节点及其对应的Redis从节点的存活情况;

第一处理模块35,用于根据离线的Redis主节点及其对应的Redis从节点的存活情况确定需要配置Redis旁备节点的Redis主节点。

在一个可能地实现方式中,配置模块33,用于在未离线的Redis主节点对应的主机上任选一个未离线的Redis主节点对应的主机;根据确定的需要配置Redis旁备节点的Redis主节点在选择的未离线的Redis主节点对应的主机上配置Redis旁备节点。

在一个可能地实现方式中,还包括:

第二处理模块36,用于在Redis集群中删除离线的Redis主节点,释放离线的Redis主节点所占用的槽位;将Redis旁备节点加入Redis集群中;将释放的离线的Redis主节点所占用的槽位分配给Redis旁备节点。

在一个可能地实现方式中,若确定模块31确定Redis集群当前的状态信息为离线的Redis主节点恢复时,还包括:

第三处理模块37,用于将Redis旁备节点从Redis主节点切换为Redis从节点,离线的Redis主节点切换为Redis主节点;在新的Redis集群中删除Redis旁备节点,并关闭Redis旁备节点;

确定模块31,用于确定新的Redis集群当前的状态是否恢复到离线前的状态。

在一个可能地实现方式中,第三处理模块37,具体用于在新的Redis集群中删除Redis旁备节点,关闭Redis旁备节点,释放Redis旁备节点所占用的槽位;将离线的Redis主节点加入新的Redis集群中;将释放的Redis旁备节点所占用的槽位分配给离线的Redis主节点。

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

下面参考图4,其示出了适于用来实现本申请实施例的电子设备(例如图1中的终端设备)400的结构示意图。本申请实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图4示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图4所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(ROM)402中的程序或者从存储装置408加载到随机访问存储器(RAM)403中的程序而执行各种适当的动作和处理。在RAM 403中,还存储有电子设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。

通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。

特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本申请实施例的方法中限定的上述功能。

需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或后端服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

本申请提供的电子设备,适用于上述的Redis集群处理方法的任一实施例,在此不再赘述。

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储计算机程序,计算机程序使计算机执行上述实施例所示的Redis集群处理方法。

本申请提供的计算机可读存储介质,适用于上述的Redis集群处理方法的任一实施例,在此不再赘述。

本申请中,实现了在超过半数Redis主节点对应的主机出现宕机时,将Redis集群功能恢复到正常,且通过引入触发式自动生成的Redis旁备节点,避免了系统资源的浪费;且该Redis旁备节点只在Redis集群所在的主机中生成,无需引入其他主机设备或机器,避免了维护成本的增加。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本申请公开的结构图和/或框图和/或流图的框或多个框中指定的方案。

其中,本申请装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本申请序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本申请的几个具体实施例,但是,本申请并非局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围。

相关技术
  • Redis集群处理方法、装置、电子设备及计算机可读存储介质
  • 语音处理方法、计算机可读存储介质、计算机程序和电子设备
技术分类

06120112344225