内存数据库实例的管理方法及装置的制造方法

文档序号:10655213阅读:254来源:国知局
内存数据库实例的管理方法及装置的制造方法
【专利摘要】本发明实施例公开了内存数据库实例的管理方法及装置。该方法包括:获取待创建的内存数据库实例的属性信息,属性信息至少包括容量;根据候选服务器的运行状态信息以及属性信息确定目标服务器,运行状态信息至少包括剩余内存信息;根据属性信息生成待创建的内存数据库实例的配置项;根据配置项在目标服务器启动预设实例应用程序,以创建内存数据库实例。本发明实施例通过采用上述技术方案,无需运维等工作人员进行手工操作即可实现对内存数据库实例进行创建等自动化管理,降低了内存数据库的管理难度,提高了管理效率,且节约了人工成本。
【专利说明】
内存数据库实例的管理方法及装置
技术领域
[0001]本发明实施例涉及数据库管理技术领域,尤其涉及内存数据库实例的管理方法及装置。【背景技术】
[0002]内存数据库与传统的磁盘数据库相比具有更快的数据处理速度,已得到了广泛的应用。
[0003]目前,很多企业采用内存型存储数据库对生产数据、业务数据以及客户数据等进行存储及管理,然而,随着业务量的不断增加,内存数据库实例的数量及容量也日益增加, 并且内存数据库实例配置通常比较灵活,需要运维人员进行手动管理及维护,包括内存数据库实例的创建、更新、删除及监控等等操作,导致内存数据库实例的管理异常复杂,耗时耗力,尤其是在管理监控生产环境中的内存数据库实例上,问题更加突出。
【发明内容】

[0004]本发明实施例的目的是提供内存数据库实例的管理方法及装置,以实现对内存数据库实例进行创建等自动化管理。
[0005]第一方面,本发明实施例提供了一种内存数据库实例的管理方法,包括:
[0006]获取待创建的内存数据库实例的属性信息,所述属性信息至少包括容量;
[0007]根据候选服务器的运行状态信息以及所述属性信息确定目标服务器,所述运行状态信息至少包括剩余内存信息;
[0008]根据所述属性信息生成所述待创建的内存数据库实例的配置项;
[0009]根据所述配置项在所述目标服务器启动预设实例应用程序,以创建内存数据库实例。
[0010]第二方面,本发明实施例提供了一种高可用内存数据库实例的管理方法,包括:
[0011]采用本发明实施例第一方面所述的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例被分别创建在不同的目标服务器中,所述至少两个内存数据库实例对应的配置项中包含的端口号相同;
[0012]将至少两个子节点中的一个子节点设置为主节点,将其他子节点设置为从节点, 并生成主从切换信息;
[0013]创建所述至少两个子节点的高可用节点,所述高可用节点指向所述主节点,并通过所述高可用节点向外界提供域名系统DNS地址;
[0014]当监测到所述主节点出现故障时,根据所述主从切换信息控制所述高可用节点指向从节点。
[0015]第三方面,本发明实施例提供了一种集群内存数据库实例的管理方法,包括:
[0016]采用本发明实施例第一方面所述的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例的容量为预设容量,所述至少两个内存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商;
[0017]创建所有子节点的高层节点,所述高层节点指向所有子节点,并通过所述高层节点向外界提供DNS地址。
[0018]第四方面,本发明实施例提供了一种内存数据库实例的管理装置,包括:[〇〇19]属性信息获取模块,用于获取待创建的内存数据库实例的属性信息,所述属性信息至少包括容量;
[0020]目标服务器确定模块,用于根据候选服务器的运行状态信息以及所述属性信息确定目标服务器,所述运行状态信息至少包括剩余内存信息;
[0021]配置项生成模块,用于根据所述属性信息生成所述待创建的内存数据库实例的配置项;
[0022]实例创建模块,用于根据所述配置项在所述目标服务器启动预设实例应用程序, 以创建内存数据库实例。
[0023]第五方面,本发明实施例提供了一种高可用内存数据库实例的管理装置,包括:
[0024]创建模块,用于采用本发明实施例第一方面所述的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例被分别创建在不同的目标服务器中,所述至少两个内存数据库实例对应的配置项中包含的端口号相同;
[0025]主从设置模块,用于将至少两个子节点中的一个子节点设置为主节点,将其他子节点设置为从节点,并生成主从切换信息;
[0026]高可用节点创建模块,用于创建所述至少两个子节点的高可用节点,所述高可用节点指向所述主节点,并通过所述高可用节点向外界提供域名系统DNS地址;
[0027]切换模块,用于在监测到所述主节点出现故障时,根据所述主从切换信息控制所述高可用节点指向从节点。
[0028]第六方面,本发明实施例提供了一种集群内存数据库实例的管理装置,包括:
[0029]创建模块,用于采用本发明实施例第一方面所述的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例的容量为预设容量,所述至少两个内存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商;
[0030]高层节点创建模块,用于创建所有子节点的高层节点,所述高层节点指向所有子节点,并通过所述高层节点向外界提供DNS地址。[0031 ]本发明实施例中提供的内存数据库实例的管理方案,根据待创建的内存数据库实例的容量等属性信息以及候选服务器的剩余内存信息等运行状态信息可自动将合适的候选服务器确定为目标服务器,无需人工选择,之后再根据属性信息自动生成配置项,根据配置项在目标服务器启动预设实例应用程序,以创建内存数据库实例,整个过程无需运维等工作人员进行手工操作即可实现对内存数据库实例进行创建等自动化管理,降低了内存数据库的管理难度,提高了管理效率,且节约了人工成本。【附图说明】[〇〇32]图1为本发明实施例一提供的一种内存数据库实例的管理方法的流程示意图;
[0033]图2为本发明实施例二提供的一种内存数据库实例的管理方法的流程示意图; [〇〇34]图3为本发明实施例三提供的一种高可用内存数据库实例的管理方法的流程示意图;
[0035]图4为本发明实施例四提供的一种集群内存数据库实例的管理方法的流程示意图;
[0036]图5为本发明实施例四提供的一种集群内存数据库实例示意图;[〇〇37]图6为本发明实施例五提供的一种内存数据库实例的管理装置的结构框图;
[0038]图7为本发明实施例六提供的一种高可用内存数据库实例的管理装置的结构框图;
[0039]图8为本发明实施例七提供的一种集群内存数据库实例的管理装置的结构框图;
[0040]图9为本发明实施例八提供的一种优选的内存数据库实例的管理装置的结构框图;
[0041]图10为本发明实施例八提供的一种内部数据结构示意图。【具体实施方式】[〇〇42]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0043]在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0044]实施例一
[0045]图1为本发明实施例一提供的一种内存数据库实例的管理方法的流程示意图,该方法可以由内存数据库实例的管理装置执行,其中该装置可由软件和/或硬件实现,一般可集成在服务器中。如图1所示,该方法包括:
[0046]步骤101、获取待创建的内存数据库实例的属性信息。
[0047]其中,所述属性信息至少包括容量。[〇〇48] 示例性的,本实施例中的内存数据库可以包括MemCache、SSDB、Cassandra以及 Redis等数据库。其中,Redis(Remote Dict1nary Server)是一种速度较快的内存型存储数据库服务器,它可以存储键(key)与5种不同类型的值(value)之间的映射(mapping),将存储在内存的键值对数据持久化到硬盘,在实际应用中已显现出较大的优势。
[0049]示例性的,属性信息还可包括存储类型、项目信息和实例名称等,存储类型具体可包括实例用作存储还是缓存,项目信息可包括实例所述的项目名称。
[0050]示例性的,用户可通过前端页面提交创建内存数据库实例的申请,该申请中包含待创建的内存数据库实例的属性信息。
[0051]步骤102、根据候选服务器的运行状态信息以及属性信息确定目标服务器。[〇〇52]其中,所述运行状态信息至少包括剩余内存信息。
[0053]在现有的手动创建内存数据库实例的过程中,运维人员需要根据所要创建的内存数据库实例的容量大小等属性信息来查看不同的服务器的剩余内存信息等运行状态信息, 再分析出具体需要在哪个服务器上创建内存数据库实例,整个过程耗时耗力,严重影响了工作效率。
[0054]示例性的,本实施例中可实时获取候选服务器的运行状态信息,当获取到待创建的内存数据库实例的属性信息后,可根据预设规则确定目标服务器,以将待创建的内存数据库实例创建在该目标服务器上。例如,预设规则可以是,筛选出符合预设条件的服务器, 再随机选取任一个符合预设条件的服务器,预设条件可以是剩余内存容量大于待创建的内存数据库实例的容量,也可以是剩余内存容量与待创建的内存数据库实例的容量的差值超过预设容量差值。又如,预设规则也可以是,将剩余内存容量最大的候选服务器确定为目标服务器。本实施例对预设规则不作具体限定,设计人员可根据内存数据库种类的不同以及应用环境要求等因素进行设定。
[0055]示例性的,在确定目标服务器后,可进一步确定待创建的内存数据库实例的域名系统(Domain Name SyStem,DNS)地址,以在内存数据库实例创建完成后,实现与外界的通{目。
[0056]步骤103、根据属性信息生成待创建的内存数据库实例的配置项。
[0057]示例性的,配置项可包括待创建的内存数据库实例的属性信息以及端口号,可由相应的功能模块生成,具体的生成方式可由内存数据库具体类型来确定,本实施例不作具体限定。
[0058]步骤104、根据配置项在目标服务器启动预设实例应用程序,以创建内存数据库实例。
[0059]示例性的,可预先在每个候选服务器中安装与内存数据库实例对应的应用程序, 本步骤中,根据配置项在目标服务器启动预设实例应用程序,从而完成内存数据库实例的创建。
[0060]示例性的,在完成内存数据库实例的创建之后,可将内存数据库实例的属性信息存储到数据库中,方便后续管理及操作。[0061 ]本发明实施例一提供的内存数据库实例的管理方法,根据待创建的内存数据库实例的容量等属性信息以及候选服务器的剩余内存信息等运行状态信息可自动将合适的候选服务器确定为目标服务器,无需人工选择,之后再根据属性信息自动生成配置项,根据配置项在目标服务器启动预设实例应用程序,以创建内存数据库实例,整个过程无需运维等工作人员进行手工操作即可实现对内存数据库实例进行创建等自动化管理,降低了内存数据库的管理难度,提高了管理效率,且节约了人工成本。[〇〇62] 实施例二[〇〇63]图2为本发明实施例二提供的一种内存数据库实例的管理方法的流程示意图,本实施例以上述实施例为基础进行优化,在本实施例中,增加了步骤:获取内存数据库实例的运行指标数据,并将运行指标数据提供给用户。
[0064]进一步的,还增加了:定时对内存数据进行备份。
[0065]相应的,本实施例的方法包括如下步骤:[〇〇66]步骤201、获取待创建的内存数据库实例的属性信息。
[0067]其中,所述属性信息至少包括容量。[〇〇68]步骤202、根据候选服务器的运行状态信息以及属性信息确定目标服务器。
[0069]其中,所述运行状态信息至少包括剩余内存信息。
[0070]步骤203、根据属性信息生成待创建的内存数据库实例的配置项。
[0071]步骤204、根据配置项在目标服务器启动预设实例应用程序,以创建内存数据库实例。[〇〇72]步骤205、获取内存数据库实例的运行指标数据,并将运行指标数据提供给用户。
[0073]示例性的,可调用监控命令获取已创建的内存数据库实例的运行指标数据。运行指标数据可包括如每秒查询率(Query Per Second,QPS)(又称每秒连接数)、占用内存大小、中央处理器(Central Processing Unit,CPU)使用率以及命中率等等,具体可因不同的内存数据库类型而异。
[0074]示例性的,本实施例中可实时获取内存数据库实例的运行指标数据,也可定时获取(如周期性获取),具体可根据监控需求来确定。
[0075]示例性的,可对运行指标数据进行显示,以使运维人员实时了解内存数据库实例的运行状态。优选的,可将运行指标数据先发送至分布式时序数据库(如inf luxDB),再提供给用户。[〇〇76]步骤206、定时对内存数据进行备份。
[0077]示例性的,可利用定时器来实现定时备份。可采用内存数据库自带的定时器,也可增加新的定时器(例如,某些内存数据库本身并不包含定时器)来实现定时功能。所述内存数据具体可为目标服务器内存中当前包含的数据。示例性的,可调用保存或备份等命令将内存数据保存到硬盘上,并上传至备份服务器上。不同的内存数据库中具体采用的保存或备份命令可以不同,例如,对于Redis来说,可调用BGSAVE命令来进行备份。
[0078]本发明实施例二在上述实施例的基础上增加了监控功能和备份功能,完善了对内存数据库实例的管理功能,提高了管理的自动化程度,进一步降低了内存数据库的管理难度,提高管理效率,节约更多的人工成本。
[0079]在上述实施例的基础上,当在某操作出现问题时,可采用回滚机制回滚到初始状态,即从后向前依次撤销已完成的内存数据库实例创建的相关操作。
[0080]在上述实施例的基础上,在根据配置项在目标服务器启动预设实例应用程序之后,还可包括:获取内存数据库实例的新属性信息;将新属性信息与属性信息进行比较,并根据比较结果对内存数据库实例进行更新。在需要对已创建的内存数据库实例进行更新时,可根据新属性信息与属性信息(当前属性信息)的比较结果进行更新。例如,当容量大小发生变化时,可确认内存数据库实例所属服务器是否能够满足需求,若不满足,可重新确定目标服务器,并在新的目标服务器中启动预设实例应用程序,以实现更新。必要时,还可对配置项进行相应的自动修改。[0081 ]在上述实施例的基础上,在根据配置项在目标服务器启动预设实例应用程序之后,还可包括:在接收到内存数据库实例删除指令时,删除与所述删除指令对应的内存数据库实例。具体的,若之前已对与该内存数据库实例对应的内存数据进行了备份,可先删除备份数据;还可取消对该内存数据库实例的监控,即停止获取该内存数据库实例的运行指标数据;随后,可停止与该内存数据库实例对应的预设实例应用程序的运行并删除相应的配置项,释放该内存数据库实例所属服务器。
[0082] 实施例三[〇〇83]图3为本发明实施例三提供的一种高可用内存数据库实例的管理方法的流程示意图,该方法可以由内存数据库实例的管理装置执行,其中该装置可由软件和/或硬件实现, 一般可集成在服务器中。如图3所示,该方法包括:
[0084]步骤301、采用内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点。
[0085]其中,所述至少两个内存数据库实例被分别创建在不同的目标服务器中,所述至少两个内存数据库实例对应的配置项中包含的端口号相同。[〇〇86] 本实施例中的高可用即High Availability,又称高可用性,可用于描述系统的可靠性,可用平均无故障时间来度量。[〇〇87]本实施例中的内存数据库实例的管理方法为本发明上述实施例中提供的内存数据库实例的管理方法。
[0088]步骤302、将至少两个子节点中的一个子节点设置为主节点,将其他子节点设置为从节点,并生成主从切换信息。[0〇89] 示例性的,以Redis为例,可使用Redis的slaveof配置指定主节点及从节点。主从切换信息中具体可包括各子节点所在服务器的网际协议(Internet Pr〇t〇C〇l,IP)地址,还可包括各从节点的优先级信息(即当主节点发生故障时,各从节点被切换为新的主节点的优先级信息)。主从切换信息可存储于Redis自带的监控模块sentinel中。[0〇9〇]步骤303、创建至少两个子节点的高可用节点,高可用节点指向主节点,并通过高可用节点向外界提供域名系统DNS地址。
[0091]示例性的,高可用节点指向所述主节点,且通过高可用节点向外界提供域名系统 DNS地址,可实现外界与高可用节点所指向主节点进行通信。
[0092]步骤304、当监测到主节点出现故障时,根据主从切换信息控制高可用节点指向从节点。[〇〇93]示例性的,当监测到当前的主节点出现故障时,可根据主从切换信息从子节点中选择一个子节点作为新的主节点,并控制高可用节点指向新的主节点,完成主从切换操作, 实现高可用。[〇〇94]本发明实施例三提供的高可用内存数据库实例的管理方法,通过采用上述实施例提供的内存数据库实例的管理方法创建多个内存数据库实例作为子节点,并指定主从节点,当主节点出现故障时,可自动切换至从节点,以实现系统的高可用性,实验表明本实施例的方法可实现秒级的自动故障切换(failover)。本发明实施例可实现高可用内存数据库实例的自动化管理,降低了高可用内存数据库的管理难度,提高了管理效率,且节约了人工成本。
[0095]实施例四
[0096]图4为本发明实施例四提供的一种集群内存数据库实例的管理方法的流程示意图,该方法可以由内存数据库实例的管理装置执行,其中该装置可由软件和/或硬件实现, 一般可集成在服务器中。如图4所示,该方法包括:[〇〇97]步骤401、采用内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点。
[0098]其中,所述至少两个内存数据库实例的容量为预设容量,所述至少两个内存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商。[〇〇99]本实施例中的内存数据库实例的管理方法为本发明上述实施例中提供的内存数据库实例的管理方法。
[0100]示例性的,假设预设容量为5G,集群内存数据库实例的容量为20G,那么需要在4个不同的目标服务器中分别创建1个内存数据库实例。
[0101]步骤402、创建所有子节点的高层节点,高层节点指向所有子节点,并通过高层节点向外界提供DNS地址。
[0102]对于一些特定的内存数据库来说,如Redis,本步骤具体可包括:为所有子节点创建至少一个代理实例;创建至少一个代理实例的高层节点,所述高层节点指向所有代理实例,并通过所述高层节点向外界提供DNS地址。本实施例对代理实例的具体数量不作限定。 [〇1〇3]以Redis为例,调用相同的接口为每个子节点创建Twemproxy实例,Twemproxy是由 Twitter开源的高性能Redis代理,启动多个Twemproxy实例并将其架到多个Redis实例前, 隐藏掉后端Redis实例,最后将Twemproxy实例的IP创建A记录(即高层节点),外界可通过 DNS轮询(DNS polling)实现对各Redis实例的访问。其中,A(Address)记录是用来指定主机名(或域名)对应的IP地址记录,用户可以将该域名下的网站服务器指向到自己的网页服务器(web server)上。图5为本发明实施例四提供的一种集群内存数据库实例示意图,图中示出了4个Redis实例子节点,3个Twemproxy代理实例,客户端(Client)可通过Twemproxy实例的A记录(图中未示出)来实现对4个Red is实例子节点的DNS轮询。
[0104]本发明实施例四提供的集群内存数据库实例的管理方法,通过采用上述实施例提供的内存数据库实例的管理方法创建多个内存数据库实例作为子节点,创建指向所有子节点的高层节点,并通过高层节点向外界提供DNS地址,可实现超大规模的集群实例的创建。 本发明实施例可实现集群内存数据库实例的自动化管理,降低了高可用内存数据库的管理难度,提高了管理效率,且节约了人工成本。
[0105]实施例五
[0106]图6为本发明实施例五提供的一种内存数据库实例的管理装置的结构框图,该装置可由软件和/或硬件实现,一般集成在服务器中,可通过执行内存数据库实例的管理方法来实现内存数据库实例的管理。如图6所示,该装置包括:属性信息获取模块601、目标服务器确定模块602、配置项生成模块603和实例创建模块604。
[0107]其中,属性信息获取模块601,用于获取待创建的内存数据库实例的属性信息,所述属性信息至少包括容量;目标服务器确定模块602,用于根据候选服务器的运行状态信息以及所述属性信息确定目标服务器,所述运行状态信息至少包括剩余内存信息;配置项生成模块603,用于根据所述属性信息生成所述待创建的内存数据库实例的配置项;实例创建模块604,用于根据所述配置项在所述目标服务器启动预设实例应用程序,以创建内存数据库实例。[〇1〇8]本发明实施例五提供的内存数据库实例的管理装置,无需运维等工作人员进行手工操作即可实现对内存数据库实例进行创建等自动化管理,降低了内存数据库的管理难度,提高了管理效率,且节约了人工成本。
[0109]在上述实施例的基础上,该装置还可包括运行指标数据获取模块,用于在根据所述配置项在所述目标服务器启动预设实例应用程序之后,获取所述内存数据库实例的运行指标数据,并将所述运行指标数据提供给用户。
[0110]在上述实施例的基础上,该装置还可包括:备份模块,用于在将所述运行指标数据提供给用户之后,定时对内存数据进行备份。
[0111]在上述实施例的基础上,该装置还可包括:更新模块,用于在根据所述配置项在所述目标服务器启动预设实例应用程序之后,获取所述内存数据库实例的新属性信息;将所述新属性信息与所述属性信息进行比较,并根据比较结果对所述内存数据库实例进行更新。
[0112]在上述实施例的基础上,所述内存数据库实例为Redis实例。[〇113]实施例六
[0114]图7为本发明实施例六提供的一种高可用内存数据库实例的管理装置的结构框图,如图7所示,该装置包括创建模块701、主从设置模块702、高可用节点创建模块703及切换模块704。
[0115]其中,创建模块701,用于采用本发明实施例提供的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例被分别创建在不同的目标服务器中,所述至少两个内存数据库实例对应的配置项中包含的端口号相同;主从设置模块702,用于将至少两个子节点中的一个子节点设置为主节点,将其他子节点设置为从节点,并生成主从切换信息;高可用节点创建模块703,用于创建所述至少两个子节点的高可用节点,所述高可用节点指向所述主节点,并通过所述高可用节点向外界提供域名系统DNS地址;切换模块704,用于在监测到所述主节点出现故障时,根据所述主从切换信息控制所述高可用节点指向从节点。[〇116]实施例七
[0117]图8为本发明实施例七提供的一种集群内存数据库实例的管理装置的结构框图, 如图8所示,该装置包括创建模块801和高层节点创建模块802。[〇118]其中,创建模块801用于采用本发明实施例提供的内存数据库实例的管理方法创建至少两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例的容量为预设容量,所述至少两个内存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商;高层节点创建模块802,用于创建所有子节点的高层节点,所述高层节点指向所有子节点,并通过所述高层节点向外界提供DNS地址。
[0119]在上述实施例的基础上,高层节点创建模块具体可用于:为所有子节点创建至少一个代理实例;创建所述至少一个代理实例的高层节点,所述高层节点指向所有代理实例, 并通过所述高层节点向外界提供DNS地址。
[0120]实施例八
[0121]图9为本发明实施例八提供的一种优选的内存数据库实例的管理装置的结构框图,如图9所示,该装置包括核心模块901、主模块902、配置模块903、实例模块904、监控模块 905和定时任务模块906。
[0122]下面以Redis为例对本实施例的装置的工作过程进行说明。
[0123]用户可通过前端页面提交实例创建申请,该申请中包括待创建的Red i s实例的属性信息,核心(Core)模块负责接收创建申请,并依次调用其他模块来完成Redis实例的创建。
[0124] Core模块在接收到创建申请后,会将创建申请中的内容翻译为内部数据结构 (InstanceProp)。示例性的,图10为本发明实施例八提供的一种内部数据结构示意图,该内部数据结构包括6个部分,其中,Size对应Redis实例的容量大小,以GB为单位;Service对应 Redis实例所属的项目;Mode对应存储的类型,若Redis实例在创建完成后或运行过程中的实际容量大于Size,若存储类型为缓存时会进行key的删除操作,若存储类型为存储时会进行报错;Name对应Redis实例的名称,如StorageOl; CName为提供给外界的DNS地址;Port为即将生成的端口号。在Core模块创建该内部数据结构时,CName和Port初始为空,待后续调用主(Host)模块和配置(Config)模块后会填入数据。[〇125] 随后,Core模块依次调用Host模块、Conf ig模块、实例(Instance)模块、监控 (Monitor)模块和定时任务(Cron)模块。
[0126]Host模块中会存储所有候选服务器的运行状态,如剩余内存信息,根据申请信息中提供的待创建实例的容量大小,会确定待创建实例应该被调度到哪台候选服务器上,即确定目标服务器,并将目标服务器的机器信息以及生成的与CName对应的数据返回给Core 模块。
[0127]Config模块将待创建实例的属性信息翻译成Redis的配置项,且所生成的配置项中包含端口号(与Port对应的数据),并将配置项返回给Core模块。[〇128] Instance模块根据Host模块和Conf ig模块返回给Core模块的数据到目标服务器中启动Redis实例,以实现Redis实例的创建。
[0129] Monitor模块,Core模块在调用Monitor模块时,会将所创建的Redis实例的相关信息注册到Monitor模块,Monitor模块会定时调用监控命令获取Redis实例运行指标,如QPS 连接数、占用内存大小、CPU使用率及命中率等,并将运行指标数据发至influxDB。[〇13〇] Cron模块可定时执行任务,可负责每天固定时刻来调用Redis的BGSAVE命令将内存数据保存到硬盘上,并上传到备份服务器上。
[0131]此外,Core模块可提供回滚机制,在任何一步失效后都会调用取消接口并回滚到最开始的状态。
[0132]所创建的Redis实例的相关信息,如容量大小及名称等可存储在Redis数据库中。
[0133]在更新实例时,新的属性信息经过处理后可在Core模块进行与当前属性信息的比对,例如与当前属性信息进行计算差值,并由Core模块分别调用Host模块和Instance模块进行数据的更新。
[0134]在删除实例时,Core模块可按照与创建相反的顺序分别调用各模块并取消注册, 从而实现Redis实例的删除。
[0135]上述实施例中提供的内存数据库实例的管理装置、高可用内存数据库实例的管理装置及集群内存数据库实例的管理装置可执行本发明实施例所提供的相应方法,具备执行相应方法的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明相应实施例所提供的方法。
[0136]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解, 本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种内存数据库实例的管理方法,其特征在于,包括:获取待创建的内存数据库实例的属性信息,所述属性信息至少包括容量;根据候选服务器的运行状态信息以及所述属性信息确定目标服务器,所述运行状态信 息至少包括剩余内存信息;根据所述属性信息生成所述待创建的内存数据库实例的配置项;根据所述配置项在所述目标服务器启动预设实例应用程序,以创建内存数据库实例。2.根据权利要求1所述的方法,其特征在于,在根据所述配置项在所述目标服务器启动 预设实例应用程序之后,还包括:获取所述内存数据库实例的运行指标数据,并将所述运行指标数据提供给用户。3.根据权利要求2所述的方法,其特征在于,在将所述运行指标数据提供给用户之后, 还包括:定时对内存数据进行备份。4.根据权利要求1所述的方法,其特征在于,在根据所述配置项在所述目标服务器启动 预设实例应用程序之后,还包括:获取所述内存数据库实例的新属性信息;将所述新属性信息与所述属性信息进行比较,并根据比较结果对所述内存数据库实例 进行更新。5.根据权利要求1-4任一所述的方法,其特征在于,所述内存数据库实例为Redi s实例。6.—种高可用内存数据库实例的管理方法,其特征在于,包括:采用如权利要求1-5任一所述的内存数据库实例的管理方法创建至少两个内存数据库 实例作为子节点,其中,所述至少两个内存数据库实例被分别创建在不同的目标服务器中, 所述至少两个内存数据库实例对应的配置项中包含的端口号相同;将至少两个子节点中的一个子节点设置为主节点,将其他子节点设置为从节点,并生 成主从切换信息;创建所述至少两个子节点的高可用节点,所述高可用节点指向所述主节点,并通过所 述高可用节点向外界提供域名系统DNS地址;当监测到所述主节点出现故障时,根据所述主从切换信息控制所述高可用节点指向从 节点。7.—种集群内存数据库实例的管理方法,其特征在于,包括:采用如权利要求1-5任一所述的内存数据库实例的管理方法创建至少两个内存数据库 实例作为子节点,其中,所述至少两个内存数据库实例的容量为预设容量,所述至少两个内 存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商;创建所有子节点的高层节点,所述高层节点指向所有子节点,并通过所述高层节点向 外界提供DNS地址。8.根据权利要求7所述的方法,其特征在于,创建所有子节点的高层节点,所述高层节 点指向所有子节点,并通过所述高层节点向外界提供DNS地址,包括:为所有子节点创建至少一个代理实例;创建所述至少一个代理实例的高层节点,所述高层节点指向所有代理实例,并通过所 述高层节点向外界提供DNS地址。9.一种内存数据库实例的管理装置,其特征在于,包括:属性信息获取模块,用于获取待创建的内存数据库实例的属性信息,所述属性信息至 少包括容量;目标服务器确定模块,用于根据候选服务器的运行状态信息以及所述属性信息确定目 标服务器,所述运行状态信息至少包括剩余内存信息;配置项生成模块,用于根据所述属性信息生成所述待创建的内存数据库实例的配置 项;实例创建模块,用于根据所述配置项在所述目标服务器启动预设实例应用程序,以创 建内存数据库实例。10.根据权利要求9所述的装置,其特征在于,该装置还包括:运行指标数据获取模块,用于在根据所述配置项在所述目标服务器启动预设实例应用 程序之后,获取所述内存数据库实例的运行指标数据,并将所述运行指标数据提供给用户。11.根据权利要求10所述的装置,其特征在于,该装置还包括:备份模块,用于在将所述运行指标数据提供给用户之后,定时对内存数据进行备份。12.根据权利要求9-11任一所述的装置,其特征在于,所述内存数据库实例为Redis实 例。13.—种高可用内存数据库实例的管理装置,其特征在于,包括:创建模块,用于采用如权利要求1-5任一所述的内存数据库实例的管理方法创建至少 两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例被分别创建在不同 的目标服务器中,所述至少两个内存数据库实例对应的配置项中包含的端口号相同;主从设置模块,用于将至少两个子节点中的一个子节点设置为主节点,将其他子节点 设置为从节点,并生成主从切换信息;高可用节点创建模块,用于创建所述至少两个子节点的高可用节点,所述高可用节点 指向所述主节点,并通过所述高可用节点向外界提供域名系统DNS地址;切换模块,用于在监测到所述主节点出现故障时,根据所述主从切换信息控制所述高 可用节点指向从节点。14.一种集群内存数据库实例的管理装置,其特征在于,包括:创建模块,用于采用如权利要求1-5任一所述的内存数据库实例的管理方法创建至少 两个内存数据库实例作为子节点,其中,所述至少两个内存数据库实例的容量为预设容量, 所述至少两个内存数据库实例的数量为集群内存数据库实例的容量与所述预设容量的商;高层节点创建模块,用于创建所有子节点的高层节点,所述高层节点指向所有子节点, 并通过所述高层节点向外界提供DNS地址。
【文档编号】G06F17/30GK106021370SQ201610308385
【公开日】2016年10月12日
【申请日】2016年5月11日
【发明人】陈鹏
【申请人】智者四海(北京)技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1