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

内存数据库的数据持久化方法、装置以及存储介质

文献发布时间:2024-04-18 19:58:30


内存数据库的数据持久化方法、装置以及存储介质

技术领域

本公开涉及数据库技术领域,尤其涉及一种内存数据库的数据持久化方法、装置以及存储介质。

背景技术

内存数据库由于速度快,响应快,使用简单,广泛用于各种场景,比如金融行业、传统互联网行业、游戏行业等。内存数据库大多数场景用来缓存数据,部分场景用来存储数据,由于内存数据库的自身特性,为了提高资源利用率,多数公司都会采用单机多实例的方式部署,并且用于内存数据库部署的服务器磁盘性能都不是特别好。为了保障存储数据的内存数据库数据安全,我们需要开启数据持久化功能,将数据持续的持久化到磁盘当中,还需要定时全量持久化内存中的数据,保证服务重启后能快速提供服务。

现有技术中,内存数据库集群的每个节点单独配置自己全量持久化策略,如果一台服务器上的多个内存数据库实例都在同一时间内全量持久化数据,则很容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能。

发明内容

本申请提出了一种内存数据库的数据持久化方法、装置以及存储介质,旨在至少在一定程度上解决相关技术中的技术问题之一。

本申请第一方面实施例提出了一种内存数据库的数据持久化方法,包括:根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断目标内存数据库是否满足持久化要求;以及如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。

本申请第二方面实施例提出了一种内存数据库的数据持久化装置,包括:确定模块,用于根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断模块,用于判断目标内存数据库是否满足持久化要求;以及持久化模块,用于在目标内存数据库满足持久化要求时,对目标内存数据库进行数据持久化。

本申请第三方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例的内存数据库的数据持久化方法。

本申请第四方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请实施例公开的内存数据库的数据持久化方法。

本实施例中,通过根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断目标内存数据库是否满足持久化要求;以及如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。因此,可以根据时间信息对多个内存数据库进行数据持久化,避免了对全部内存数据库同时进行数据持久化而降低内存数据库性能的问题,达到了在进行数据持久化的过程中兼顾内存数据库性能的技术效果。进而解决了相关技术中同时进行数据持久化容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能的技术问题。

本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。

附图说明

本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本公开一实施例提出的内存数据库的数据持久化方法的流程示意图;

图2是本公开实施例提出的内存数据库的数据持久化系统的示意图;

图3是本公开另一实施例提出的内存数据库的数据持久化装置的示意图;

图4示出了适于用来实现本申请实施方式的示例性计算机设备的框图。

具体实施方式

下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本公开,而不能理解为对本公开的限制。相反,本公开的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

针对背景技术中提到的内存数据库集群同时进行数据持久化容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能的技术问题,本实施例技术方案提供了一种内存数据库的数据持久化方法,下面结合具体的实施例对该方法进行说明。

其中,需要说明的是,本实施例的内存数据库的数据持久化方法的执行主体可以为内存数据库的数据持久化装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。

图1是根据本公开一实施例提供的内存数据库的数据持久化方法的流程示意图。参考图1所示,该方法包括:

S101:根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息。

本公开实施例提出的内存数据库的数据持久化方法可以针对多个内存数据库进行数据持久化,其中,内存数据库例如可以是集群的形式,也即是说,本公开实施例还可以针对多个内存数据库集群中的目标内存数据库集群进行数据持久化。

图2是本公开实施例提出的内存数据库的数据持久化系统的示意图,如图2所示,在实际应用中,数据持久化系统可以包括多台服务器,例如:服务器1和服务器2,多台服务器可以运行多个内存数据库集群,例如:服务器1上运行集群1、集群2以及集群3等,并且每个内存数据库集群还可以包括对应的副本内存数据库,例如:服务器2上运行集群1、集群2以及集群3对应的副本1、副本2以及副本3,而本实施例的内存数据库的数据持久化方法例如可以由数据持久化系统的持久化控制器执行。

其中,多个内存数据库中当前需要进行数据持久化的内存数据库可以被称为目标内存数据库。而持久化策略用于记录多个内存数据库可执行持久化的时间信息,其中,时间信息例如包括可执行持久化的时间段、持久化时间间隔等信息。

举例而言,例如多个内存数据库包括内存数据库1、内存数据库2以及内存数据库3,持久化策略中可以记录内存数据库1、内存数据库2以及内存数据库3可执行持久化的时间段分别是:9:00-10:00、12:00-13:00、20:00-21:00;持久化时间间隔分别是:10分钟、20分钟、15分钟。本公开实施例可以根据持久化策略,确定待持久化的目标内存数据库,例如:当前时间为9:00,则确定内存数据库1作为该目标内存数据库。其中,持久化策略中的时间信息可以根据实际应用场景进行定义,此处不作限制。

也即是说,本公开实施例提供的持久化策略可以自定义多个内存数据库中每个内存数据库可以执行数据持久化的时间信息,在对内存数据库进行数据持久化过程中,不需要将全部的内存数据库同时进行数据持久化,而是根据时间信息从确定待持久化的目标内存数据库,因此在数据持久化过程中可以减轻磁盘的负担,保证内存数据库集群的正常工作效率。

S102:判断目标内存数据库是否满足持久化要求。

上述确定目标内存数据库后,进一步地,本公开实施例可以判断目标内存数据库是否满足持久化要求,即:判断是否可以对该目标内存数据库进行数据持久化。

在实际应用中,如图2所示,例如可以设置相应的判断条件作为持久化要求,将与该目标内存数据库相关的信息和判断条件进行对比,进而判断目标内存数据库是否满足持久化要求,持久化要求的判断条件可以根据实际场景而确定,此处不作限制。

S103:如果内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。

进一步地,如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化,即:在目标内存数据库满足持久化要求的情况下,对目标内存数据库进行数据持久化。一些实施例中,可以对目标内存数据库进行全量数据持久化,或者还可以对目标数据库进行增量数据持久化,此处不作限制。

本实施例中,通过根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息,并判断目标内存数据库是否满足持久化要求;以及如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。因此,可以根据时间信息对多个内存数据库进行数据持久化,避免了对全部内存数据库同时进行数据持久化而降低内存数据库性能的问题,达到了在进行数据持久化的过程中兼顾内存数据库性能的技术效果。进而解决了相关技术中同时进行数据持久化容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能的技术问题。

可选地,一些实施例中,判断内存数据库是否满足持久化要求,包括:判断目标内存数据库是否与副本内存数据库对应。

具体地,如图2所示,多个内存数据库(集群)可以分别对应有副本内存数据库,例如:内存数据库集群1对应的副本内存数据库为副本1,内存数据库集群2对应的副本内存数据库为副本2,内存数据库集群3对应的副本内存数据库为副本3。在判断内存数据库是否满足持久化要求时,可以判断目标内存数据库是否为副本内存数据库,也即是说,本公开实施例的内存数据库的数据持久化方法主要针对副本内存数据库进行,从而可以避免在主内存数据库做数据持久化,保证了内存数据库集群稳定运行。

可选地,一些实施例中,判断目标内存数据库是否满足持久化要求,还包括:获取部署目标内存数据库的服务器的运行信息;以及若运行信息表征服务器的资源使用情况满足数据持久化的资源条件,则目标内存数据库满足持久化要求。

具体地,本公开实施例在判断目标内存数据库是否满足持久化要求的时还可以结合服务器的运行信息。在实际应用中,首先获取部署目标内存数据库的服务器的运行信息,该运行信息可以包括:服务器内存、CPU、磁盘容量、磁盘能力等信息,此处不作限制。进一步地,判断运行信息是否满足目标内存数据库的持久化要求,即判断运行信息是否满足目标内存数据库的要求。一些实施例,在运行信息表征服务器的资源使用情况满足数据持久化的资源条件的情况下,则判定目标内存数据库满足持久化要求。从而,在判断目标内存数据库是否可以执行持久化时还可以结合服务器的硬件运行环境信息,保证了硬件资源合理分配,使得数据持久化进程可以稳定进行。

如图2所示,也即是说,本公开实施例在进行数据持久化的过程中,首先根据持久化策略(即:每个内存数据库集群可进行数据持久化时间段、时间间隔等信息)开始持久化,进一步地判断内存数据库是否可以进行数据持久化,例如:判断进行数据持久化的目标内存数据库是否为副本内存数据库,和/或服务器的内存、CPU、磁盘容量、磁盘能力是否满足持久化要求。最终,在满足判断条件的情况下进行数据持久化,在不满足判断条件的情况下不进行数据持久化。

可选地,一些实施例中,服务器运行有目标内存数据库的多个目标内存数据库实例,并且对目标内存数据库进行数据持久化,包括:对多个目标内存数据库实例依次进行数据持久化。

具体地,多个内存数据库分别对应多个目标内存数据库实例,也即是说,服务器上可以运行多个目标内存数据库实例。在对目标内存数据库进行数据持久化的操作中,可以依次对多个目标内存数据库实例进行数据持久化,例如:以串行化的方式对服务器上运行的目标内存数据库实例进行全量持久化。从而,内存数据库中的数据可以按顺序进行持久化,保证了持久化数据与缓存数据一致。此外,对多个目标内存数据库实例进行串行数据持久化,还可以提高数据持久化的效率,提高资源利用率。

可选地,一些实施例中,根据预设持久化策略确定待持久化的目标内存数据库之前,还可以关闭多个内存数据库自动持久化策略,即:关闭内存数据库自动全量持久化的策略,并开启本公开实施例提供的持久化策略进行数据持久化。

本实施例中,通过根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断目标内存数据库是否满足持久化要求;以及如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。因此,可以根据时间信息对多个内存数据库进行数据持久化,避免了对全部内存数据库同时进行数据持久化而降低内存数据库性能的问题,达到了在进行数据持久化的过程中兼顾内存数据库性能的技术效果。进而解决了相关技术中同时进行数据持久化容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能的技术问题。此外,本实施例还可以避免在主节点(主内存数据库)做全量数据持久化,能根据配置策略避开业务高峰期,并且采用串行化单机多实例的数据库全量持久化,最大限度的避免持久化影响业务。

图3是根据本公开另一实施例提供的内存数据库的数据持久化装置的示意图,如图3所示,该内存数据库的数据持久化装置30包括:

确定模块301,用于根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断模块302,用于判断目标内存数据库是否满足持久化要求;以及持久化模块303,用于在目标内存数据库满足持久化要求时,对目标内存数据库进行数据持久化。

可选地,一些实施例中,判断模块302,包括:第一判断子模块,用于判断目标内存数据库是否与副本内存数据库对应。

可选地,一些实施例中,判断模块302,包括:获取子模块,用于获取部署目标内存数据库的服务器的运行信息;以及第二判断子模块,用于在运行信息表征服务器的资源使用情况满足数据持久化的资源条件的情况下,判定目标内存数据库满足持久化要求。。

可选地,一些实施例中,服务器运行有目标内存数据库的多个目标内存数据库实例,并且持久化模块303,具体用于:对多个目标内存数据库实例依次进行数据持久化。

可选地,一些实施例中,持久化模块303,具体用于:对目标内存数据库进行全量数据持久化。

可选地,一些实施例中,装置30还包括:关闭模块,用于关闭多个内存数据库的自动持久化策略。

需要说明的是,前述对内存数据库的数据持久化方法的解释说明也适用于本实施例的装置,此处不再赘述。

本实施例中,通过根据预设持久化策略确定待持久化的目标内存数据库,其中,持久化策略用于记录多个内存数据库可执行持久化的时间信息;判断目标内存数据库是否满足持久化要求;以及如果目标内存数据库满足持久化要求,则对目标内存数据库进行数据持久化。因此,可以根据时间信息对多个内存数据库进行数据持久化,避免了对全部内存数据库同时进行数据持久化而降低内存数据库性能的问题,达到了在进行数据持久化的过程中兼顾内存数据库性能的技术效果。进而解决了相关技术中同时进行数据持久化容易导致服务器磁盘性能达到瓶颈,影响内存数据库的性能的技术问题。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

为了实现上述实施例,本申请还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行如本申请前述实施例提出的内存数据库的数据持久化方法。

图4示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图4显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图4所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。

尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的内存数据库的数据持久化方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 内存数据库锁的实现方法和装置及计算机可读存储介质
  • 一种内存数据库备份管理方法、装置、终端及存储介质
  • 分层存储方法、分层存储装置及计算机可读存储介质
  • 文件获取方法及装置、文件传送方法及装置、存储介质
  • 图像生成方法、装置,图像显示方法、装置和存储介质
  • 数据持久化存储方法、装置、计算机设备及存储介质
  • 数据持久化处理方法、装置、系统及可读存储介质
技术分类

06120116496591