CN113641689A - 基于轻量级数据库的数据处理方法及设备 - Google Patents

基于轻量级数据库的数据处理方法及设备 Download PDF

Info

Publication number
CN113641689A
CN113641689A CN202110832254.XA CN202110832254A CN113641689A CN 113641689 A CN113641689 A CN 113641689A CN 202110832254 A CN202110832254 A CN 202110832254A CN 113641689 A CN113641689 A CN 113641689A
Authority
CN
China
Prior art keywords
data
database
memory
updating
memory database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110832254.XA
Other languages
English (en)
Inventor
白杰文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yunzhou Information Technology Co ltd
Original Assignee
Shanghai Yunzhou Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Yunzhou Information Technology Co ltd filed Critical Shanghai Yunzhou Information Technology Co ltd
Priority to CN202110832254.XA priority Critical patent/CN113641689A/zh
Publication of CN113641689A publication Critical patent/CN113641689A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种基于轻量级数据库的数据处理方法及设备,该方案通过数据持久化顺序的调整,使得数据库处理对数据更新的操作时,会先经过内存数据库保存,之后才会写入底层的持久化数据库中,所有更新数据的操作都不会直接去访问底层的持久化数据库,实现了对持久化数据库中数据访问的隔离,从而可以避免内存数据库中存储的数据滞后于持久化数据库,提升了数据的一致性。

Description

基于轻量级数据库的数据处理方法及设备
技术领域
本申请涉及信息技术领域,尤其涉及一种基于轻量级数据库的数据处理方法及设备。
背景技术
运维相关系统作为系统性辅助性工具类系统,在保障业务稳定运行的过程中,不应该引入更多加重系统负担的组件,但是运维系统所需要的数据实时性也很高,因此需要一种既轻量又方便灵活的数据库。现有开源方案采用的是redis(Remote DictionaryServer,远程字典服务)加mysql(一种关系数据库管理系统)的组合存储模式,使用redis作为内存数据库,为运维系统数据库的高速缓存,使用mysql作为持久化数据库,为运维系统数据库的持久化存储。
此种基于redis和mysql的组合方案,虽然能够满足业务要求,但是在部署上增加了很多工作量,需要在单独维护一套redis数据库,并且基于redis的缓存持久化到mysql策略较为复杂,要考虑很多缓存更新淘汰的实现方案,部署不便,对开发人员不是很友好。并且,由于业务数据会直接写入mysql数据库,然后通过redis作为缓存层来作为对外数据展示能力,当外部获取不到对应数据时候会直接去查询底层mysql数据库中的数据,因此可能出现内存数据库中存储的数据可能滞后于持久化数据库的情况发生,导致数据的一致性存在一定的不足,容易出现缓存击穿的情况。
发明内容
本申请的一个目的是提供一种基于轻量级数据库的数据处理方法及设备,用以解决现有技术中数据一致性不足的问题。
为实现上述目的,本申请提供了一种基于轻量级数据库的数据处理方法,所述轻量化数据库包括内存数据库和持久化数据库,内存数据库中定义有Key、Value的标识以及持久化数据库的数据表的表名,所述持久化数据库中的列标识与所述Key、Value的标识相同,所述方法包括:
获取数据库操作请求;
若所述数据库操作请求对应数据更新的操作,通过预先定义的内存数据库的路径访问所述内存数据库,更新所述内存数据库中的数据;
根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中。
进一步地,所述数据更新的操作包括对写入数据的操作、修改数据的操作或删除数据的操作。
进一步地,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为写入数据的操作,基于需要写入的数据内容,采用json结构体所定义的数据结构生成数据对象,并向数据对象中填充需要写入的数据内容,所述数据内容包括Key和Value。
进一步地,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为修改数据的操作,基于需要修改的数据内容,修改目标数据对象中Value对应的数据内容。
进一步地,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为删除数据的操作,基于需要删除的数据内容,删除目标数据对象。
进一步地,该方法还包括:
若所述数据库操作请求对应数据查询的操作,通过预先定义的内存数据库的路径访问所述内存数据库,基于所述数据库操作请求所确定的Key,查询数据内容的Value。
进一步地,根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中,包括:
根据所述内存数据库中定义的持久化数据库的数据表的表名,确定持久化数据库中的目标数据表;
根据所述内存数据库中的更新数据,对所述目标数据表的目标列中的数据内容进行更新,其中,所述目标列的列标识与更新数据所对应的Key和Value的标识相同。
进一步地,所述方法还包括:
从持久化数据库中获取数据,加载至内存数据库中,以实现数据的恢复。
基于本申请的另一方面,还提供了一种基于轻量级数据库的数据处理设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行所述的基于轻量级数据库的数据处理方法。
本申请实施例还提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现所述的基于轻量级数据库的数据处理方法。
与现有技术相比,本申请提供了一种基于轻量级数据库的数据处理方案,该方案中的所述轻量化数据库包括内存数据库和持久化数据库,内存数据库中定义有Key、Value的标识以及持久化数据库的数据表的表名,所述持久化数据库中的列标识与所述Key、Value的标识相同,该方案在实现数据处理时首先获取数据库操作请求,若所述数据库操作请求对应数据更新的操作,通过预先定义的内存数据库的路径访问所述内存数据库,更新所述内存数据库中的数据;然后根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中。由此,通过数据持久化顺序的调整,使得数据库处理对数据更新的操作时,会先经过内存数据库保存,之后才会写入底层的持久化数据库中,所有更新数据的操作都不会直接去访问底层的持久化数据库,实现了对持久化数据库中数据访问的隔离,从而可以避免内存数据库中存储的数据滞后于持久化数据库,提升了数据的一致性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1为本申请实施例中轻量级数据库进行初始化时的过程示意图;
图2为本申请实施例提供一种基于轻量级数据库实现相应的数据处理方法的处理流程图;
图3为本申请实施例中轻量级数据库进行数据更新的过程示意图;
图4为本申请实施例中轻量级数据库重启后内存数据库的数据恢复过程示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请一个典型的配置中,终端、服务网络的设备均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
本申请的一些实施例提供了一种基于轻量级数据库的数据处理方法通过数据持久化顺序的调整,使得数据库处理对数据更新的操作时,会先经过内存数据库保存,之后才会写入底层的持久化数据库中,所有更新数据的操作都不会直接去访问底层的持久化数据库,实现了对持久化数据库中数据访问的隔离,从而可以避免内存数据库中存储的数据滞后于持久化数据库,提升了数据的一致性。
在实际场景中,该方法的执行主体可以是各类网络设备或者也可以是运行于上述设备中的程序。所述网络设备包括但不限于如网络主机、单个网络服务器、多个网络服务器集或基于云计算的计算机集合等实现。在此,云由基于云计算(Cloud Computing)的大量主机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟计算机。
本申请实施例提供的一种基于轻量级数据库的数据处理方法中,所述轻量级数据库包括了内存数据库和持久化数据库,对该轻量级数据库进行初始化之后,使得内存数据库中定义有Key、Value的标识以及持久化数据库的数据表的表名,所述持久化数据库中的列标识与所述Key、Value的标识相同,由此可以基于所述轻量级数据库进行数据处理,以满足运维系统等对于数据库的使用需求。
图1示出了本申请实施例中所述轻量级数据库进行初始化时的过程,以linux系统为例,可以利用linux中文件系统的文件路径、保存文件内容还有文件系统本身的创建时间修改时间等能力来实现该初始化过程,具体可以至少包括如下的步骤:
1、定义内存数据库的url path,作为其访问的路径,将内存数据库的url path信息保存到文件系统本身元数据定义中。其中,内存数据库可以采用键值(key-value)数据库,相较于现有技术中redis和mysql的组合方案,不需要单独维护redis数据库,可以避免在部署时配置基于redis的缓存持久化到mysql的复杂策略,因此部署简单,对开发人员友好。
2、定义底层持久化层的持久化数据库的表名,在实际场景中,为了便于记忆理解,可以选择与内存数据库表名称相近,但是需要与后续创建持久化数据库表的建表语句中的表名称保持一致。其中,所述持久化数据库可以采用关系型数据库,如mysql等。
3、定义内存数据库的json结构体,作为保存的写入数据库的数据内容的结构,当数据保存时候将以对象形式保存在内存数据库中,以json字符串形式保存到持久化数据库对应的列中。
4、配置内存数据库对外展示的key、value的标识,以方便后续对数据库进行写入、删除、修改、查询等数据处理操作。在进行修改的操作时,可以通过获取key来查询对应的value,对value中json结构体值重新赋值实现修改,在进行数据删除的操作时,可以通过删除key来完成数据库记录的删除,在进行数据写入的操作时,可以通过新增key完成数据库记录的新增。
5、定义底层持久化使用的持久化数据库的建表语句,其中,表名与上面步骤2中定义的表名保持一致,持久化数据库中的列标识与已定义的内存数据库中的key、value的标识保持一致。
例如,在本申请的一些实施例中,可以采用如下的代码实现上述初始化过程:
Figure BDA0003175909710000061
Figure BDA0003175909710000071
其中,management是初始化的内存数据库的表名,install/management是定义的用于访问内存数据库的路径,即url path,ManagementZO为定义要持久化数据库的表名,与后续建表语句中的表名一致ManagementStruct::class为定义的用于保存数据内容的json结构体,jobUuid、detail分别为配置的内存数据库中key、value的标识,CREATETABLE IFNOT EXISTS ManagementZO所包含的相关内容为持久化数据库的建表语句,classManagementStruct所包含的相关内容为定义json结构体的具体内容。
在完成上述初始化处理之后,即可基于轻量级数据库实现相应的数据处理方法,所述方法的处理流程如图2所示,至少包括以下的处理步骤:
步骤S201,获取数据库操作请求。
所述数据库操作请求是指基于业务需求需要对数据库中的数据内容进行相应处理操作的请求。例如,相应处理操作可以是数据修改操作、数据删除操作、数据写入操作以及数据查询操作等。
步骤S202,若所述数据库操作请求对应数据更新的操作,通过预先定义的内存数据库的路径访问所述内存数据库,更新所述内存数据库中的数据。由于在初始化的过程中,已经预先定义了内存数据库的路径url path,因此当数据库操作请求对应的处理操作是对写入数据的操作、修改数据的操作或删除数据的操作等需要对数据库进行数据更新的操作时,可以直接通过url path来操作内存数据库,从而更新内存数据库中的数据。
步骤S203,根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中。由于所述内存数据库中定义的Key、Value的标识与持久化数据库中的列标识一致,且定义了持久化数据库的数据表的表名,因此在内存数据库中的数据发生更新之后,可以进一步将所述内存数据库中的更新数据同步至所述持久化数据库中,完成数据的持久化。整个数据更新的过程如图3所示,由于该轻量级数据库在处理对数据更新的操作时,会先经过内存数据库保存,之后才会写入底层的持久化数据库中,所有更新数据的操作都不会直接去访问底层的持久化数据库,实现了对持久化数据库中数据访问的隔离,从而可以避免内存数据库中存储的数据滞后于持久化数据库,提升了数据的一致性。
在本申请的一些实施例中,可以在将内存数据库中的更新数据同步至所述持久化数据库中时,可以先根据所述内存数据库中定义的持久化数据库的数据表的表名,确定持久化数据库中的目标数据表,然后根据所述内存数据库中的更新数据,对所述目标数据表的目标列中的数据内容进行更新。例如,初始化内存数据库a1时定义的持久化数据库的表名为ManagementZO,若通过url path来操作的内存数据库a1时,则可以自动关联到持久化数据库的数据表ManagementZO,将其作为本次处理的目标数据表。由于持久化数据库中的列标识内存数据库中定义的Key、Value的标识一致,在确定目标数据表之后,即可基于数据库操作请求所传入的key以及对应的value,确定目标数据表中的目标列,从而对其中的数据内容进行更新。
在更新所述内存数据库中的数据时,若所述数据更新的操作为写入数据的操作,基于需要写入的数据内容,采用json结构体所定义的数据结构生成数据对象,并向数据对象中填充需要写入的数据内容,所述数据内容包括Key和Value。其中,写入数据的操作即为向内存数据库中增加一条数据记录,在实际场景中可以采用如下的代码来根据定义的ManagementStruct结构体生成一个数据对象,并往对象中填充要写入的数据:
Figure BDA0003175909710000091
该段代码的含义即为根据定义的ManagementStruct的json结构体生成一个数据对象,并往对象中填充要写入的数据,具体数据的内容包括:1bf890b33ce84f1a9f477f7217c6b1b1、192.168.20.2、Prepare installmanagement node、ZStack、1625043351220、success等。
然后,基于初始化时定义的表名,使用jsonPut方法保存该条数据,从而实现数据写入的操作,具体代码如下:
management.jsonPut("1bf890b33ce84f1a9f477f7217c6b1b1",detail)。其中,key为"1bf890b33ce84f1a9f477f7217c6b1b1",value即为上面定义的json结构体中要保存的具体数据的内容。所有的key和value对应的数据都会保存在内存数据库中。
在本申请的另一些实施例中,若所述数据更新的操作为修改数据的操作,基于需要修改的数据内容,修改目标数据对象中Value对应的数据内容。
在实际场景中,具体的处理方式可以是通过表名management,并使用jsonUpdate方法传入需要修改的数据的key,基于key获取到value后,对value中保存的数据进行更新。仍以前述写入的数据为例,可以使用jsonUpdate方法传入key:"1bf890b33ce84f1a9f477f7217c6b1b1",来获取到value中的数据,并且直接更新掉这些数据。例如,将数据中的type字段由原来"ZStack"修改为"ZSha2",其对应的代码为:
management.jsonUpdate("1bf890b33ce84f1a9f477f7217c6b1b1"){
type="ZSha2"
}
修改后的数据为:
Figure BDA0003175909710000101
此外,若所述数据更新的操作为删除数据的操作,则基于需要删除的数据内容,删除目标数据对象。
在实际场景中,具体的处理方式可以是通过表名management,并使用delete方法传入指定的key,即可删除该key对应的数据对象。在删除之后,就无法通过key查询从内存数据库中查询到对应的数据了。仍以前述写入的数据为例,可以使用delete方法传入指定的key:"1bf890b33ce84f1a9f477f7217c6b1b1",数据库会通过key查询到对应的数据对象并删除,其对应的代码可以是:
management.delete("1bf890b33ce84f1a9f477f7217c6b1b1")
除了需要对数据进行更新的上述数据写入、数据修改以及数据删除的操作之外,所获取到的数据库操作请求还可能对应数据查询的操作。若所述数据库操作请求对应数据查询的操作,则可以通过预先定义的内存数据库的路径访问所述内存数据库,基于所述数据库操作请求所确定的Key,查询数据内容的Value。
在实际场景中,具体的处理方式可以是通过表名management,并使用jsonGet方法传入需要获取的数据的key,从而通过key查询到value,其中value中的数据内容即为需要查询的数据。仍以前述写入的数据为例,可以使用delete方法传入指定的key:"1bf890b33ce84f1a9f477f7217c6b1b1",数据库会通过key查询到对应的value中的数据内容,从而完成数据的查询。
在传统编程语言内置的hashmap实现的内存数据库,数据都是存在于内存之中依赖于运行时内存状态,当程序退出,或者断电关机重启后数据就会从内存中消失。在本申请实施例方案中在传统的内存数据库的基础上,又增加了持久化数据库,可以从持久化数据库中获取数据,加载至内存数据库中,以实现数据的恢复,从而可以保证数据的持久化。
例如,当轻量级数据库发生重启或者非人为意外操作断电后,其中的内存数据库中的数据会发生丢失,但是由于数据在更新之后都会同步至底层的持久化数据库中,避免了仅采用内存数据库时无法持久化数据的缺点,因此在丢失之后可以随时从持久化数据库恢复数据。图4示出了轻量级数据库重启后内存数据库的数据恢复过程,由于在初始化的过程中定义了对应的持久化数据库的数据表的表名,因此每次重启后都可以先当通过表名定位到对应的持久化数据库中的数据表,然后从中获取持久化的数据,加载至内存数据库中,以实现数据的恢复。在实际场景中,可以采用如下的代码实现数据恢复:
Figure BDA0003175909710000111
Figure BDA0003175909710000121
基于同一发明构思,本申请实施例中还提供了一种基于轻量级数据库的数据处理设备,该设备对应的方法是前述实施例中的基于轻量级数据库的数据处理方法,并且其解决问题的原理与该方法相似。
特别地,本申请实施例中的方法和/或实施例可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在该计算机程序被处理单元执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图或框图示出了按照本申请各种实施例的设备、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的针对硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个计算机可读指令,所述计算机可读指令可被处理器执行以实现前述本申请的多个实施例的方法和/或技术方案。
综上所述,本申请实施例提供的一种基于轻量级数据库的数据处理方案,该方案中的所述轻量化数据库包括内存数据库和持久化数据库,内存数据库中定义有Key、Value的标识以及持久化数据库的数据表的表名,所述持久化数据库中的列标识与所述Key、Value的标识相同,该方案在实现数据处理时首先获取数据库操作请求,若所述数据库操作请求对应数据更新的操作,通过预先定义的内存数据库的路径访问所述内存数据库,更新所述内存数据库中的数据;然后根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中。由此,通过数据持久化顺序的调整,使得数据库处理对数据更新的操作时,会先经过内存数据库保存,之后才会写入底层的持久化数据库中,所有更新数据的操作都不会直接去访问底层的持久化数据库,实现了对持久化数据库中数据访问的隔离,从而可以避免内存数据库中存储的数据滞后于持久化数据库,提升了数据的一致性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一些实施例中,本申请的软件程序可以通过处理器执行以实现上文步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种基于轻量级数据库的数据处理方法,其特征在于,所述轻量化数据库包括内存数据库和持久化数据库,内存数据库中定义有Key、Value的标识以及持久化数据库的数据表的表名,所述持久化数据库中的列标识与所述Key、Value的标识相同,所述方法包括:
获取数据库操作请求;
若所述数据库操作请求对应数据更新的操作,通过预先定义的内存数据库的路径访问所述内存数据库,更新所述内存数据库中的数据;
根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中。
2.根据权利要求1所述的方法,其特征在于,所述数据更新的操作包括对写入数据的操作、修改数据的操作或删除数据的操作。
3.根据权利要求2所述的方法,其特征在于,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为写入数据的操作,基于需要写入的数据内容,采用json结构体所定义的数据结构生成数据对象,并向数据对象中填充需要写入的数据内容,所述数据内容包括Key和Value。
4.根据权利要求3所述的方法,其特征在于,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为修改数据的操作,基于需要修改的数据内容,修改目标数据对象中Value对应的数据内容。
5.根据权利要求3所述的方法,其特征在于,更新所述内存数据库中的数据,包括:
若所述数据更新的操作为删除数据的操作,基于需要删除的数据内容,删除目标数据对象。
6.根据权利要求3所述的方法,其特征在于,该方法还包括:
若所述数据库操作请求对应数据查询的操作,通过预先定义的内存数据库的路径访问所述内存数据库,基于所述数据库操作请求所确定的Key,查询数据内容的Value。
7.根据权利要求1所述的方法,其特征在于,根据所述内存数据库中定义的Key、Value的标识以及持久化数据库的数据表的表名,将所述内存数据库中的更新数据同步至所述持久化数据库中,包括:
根据所述内存数据库中定义的持久化数据库的数据表的表名,确定持久化数据库中的目标数据表;
根据所述内存数据库中的更新数据,对所述目标数据表的目标列中的数据内容进行更新,其中,所述目标列的列标识与更新数据所对应的Key和Value的标识相同。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
从持久化数据库中获取数据,加载至内存数据库中,以实现数据的恢复。
9.一种基于轻量级数据库的数据处理设备,该设备包括用于存储计算机程序指令的存储器和用于执行计算机程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发所述设备执行权利要求1至8中任一项所述的方法。
10.一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令可被处理器执行以实现如权利要求1至8中任一项所述的方法。
CN202110832254.XA 2021-07-22 2021-07-22 基于轻量级数据库的数据处理方法及设备 Pending CN113641689A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110832254.XA CN113641689A (zh) 2021-07-22 2021-07-22 基于轻量级数据库的数据处理方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110832254.XA CN113641689A (zh) 2021-07-22 2021-07-22 基于轻量级数据库的数据处理方法及设备

Publications (1)

Publication Number Publication Date
CN113641689A true CN113641689A (zh) 2021-11-12

Family

ID=78418090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110832254.XA Pending CN113641689A (zh) 2021-07-22 2021-07-22 基于轻量级数据库的数据处理方法及设备

Country Status (1)

Country Link
CN (1) CN113641689A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024032A (zh) * 2010-11-29 2011-04-20 广州明朝网络科技有限公司 一种基于Erlang的分布式数据缓存和持久化的方法和系统
CN103116627A (zh) * 2013-01-31 2013-05-22 汉柏科技有限公司 一种高并发soa技术访问数据库的方法和系统
CN110109927A (zh) * 2019-04-25 2019-08-09 上海新炬网络技术有限公司 基于LSM树的Oracle数据库数据处理方法
CN111177161A (zh) * 2019-11-07 2020-05-19 腾讯科技(深圳)有限公司 数据处理方法、装置、计算设备和存储介质
CN111190899A (zh) * 2019-11-26 2020-05-22 泰康保险集团股份有限公司 一种埋点数据处理方法、装置、服务器及存储介质
CN111538463A (zh) * 2020-04-30 2020-08-14 电子科技大学 一种实现内存数据库持久化的方法
US10936500B1 (en) * 2020-11-10 2021-03-02 Memhive, Inc. Conditional cache persistence in database systems
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102024032A (zh) * 2010-11-29 2011-04-20 广州明朝网络科技有限公司 一种基于Erlang的分布式数据缓存和持久化的方法和系统
CN103116627A (zh) * 2013-01-31 2013-05-22 汉柏科技有限公司 一种高并发soa技术访问数据库的方法和系统
CN110109927A (zh) * 2019-04-25 2019-08-09 上海新炬网络技术有限公司 基于LSM树的Oracle数据库数据处理方法
CN111177161A (zh) * 2019-11-07 2020-05-19 腾讯科技(深圳)有限公司 数据处理方法、装置、计算设备和存储介质
CN111190899A (zh) * 2019-11-26 2020-05-22 泰康保险集团股份有限公司 一种埋点数据处理方法、装置、服务器及存储介质
CN111538463A (zh) * 2020-04-30 2020-08-14 电子科技大学 一种实现内存数据库持久化的方法
US10936500B1 (en) * 2020-11-10 2021-03-02 Memhive, Inc. Conditional cache persistence in database systems
CN112947856A (zh) * 2021-02-05 2021-06-11 彩讯科技股份有限公司 一种内存数据的管理方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
US9678969B2 (en) Metadata updating method and apparatus based on columnar storage in distributed file system, and host
US20190012085A1 (en) Key value based block device
CN111078147B (zh) 一种缓存数据的处理方法、装置、设备及存储介质
US9251183B2 (en) Managing tenant-specific data sets in a multi-tenant environment
US10083092B2 (en) Block level backup of virtual machines for file name level based file search and restoration
US10210191B2 (en) Accelerated access to objects in an object store implemented utilizing a file storage system
US8938430B2 (en) Intelligent data archiving
US10585760B2 (en) File name level based file search and restoration from block level backups of virtual machines
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
CN110134335B (zh) 一种基于键值对的rdf数据管理方法、装置及存储介质
US20210209057A1 (en) File system quota versioning
US8589454B2 (en) Computer data file merging based on file metadata
US20150363441A1 (en) Generating and accessing a data table
US9026553B2 (en) Data expanse viewer for database systems
US11334600B1 (en) Partial reloading in data synchronization
CN115562590A (zh) 一种云主机使用云硬盘的方法、系统、设备和存储介质
CN113641689A (zh) 基于轻量级数据库的数据处理方法及设备
US10114864B1 (en) List element query support and processing
US20140074785A1 (en) Open file rebalance
CN113127430B (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
US11194758B1 (en) Data archiving using a compute efficient format in a service provider environment
US11210270B2 (en) Mapping storage across storage providers
US11657046B1 (en) Performant dropping of snapshots by converter branch pruning
US11379147B2 (en) Method, device, and computer program product for managing storage system
US11294892B2 (en) Virtual archiving of database records

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination