CN105653566A - 一种实现数据库写访问的方法及装置 - Google Patents

一种实现数据库写访问的方法及装置 Download PDF

Info

Publication number
CN105653566A
CN105653566A CN201410725799.0A CN201410725799A CN105653566A CN 105653566 A CN105653566 A CN 105653566A CN 201410725799 A CN201410725799 A CN 201410725799A CN 105653566 A CN105653566 A CN 105653566A
Authority
CN
China
Prior art keywords
buffer memory
data
major key
database
mark
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.)
Granted
Application number
CN201410725799.0A
Other languages
English (en)
Other versions
CN105653566B (zh
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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410725799.0A priority Critical patent/CN105653566B/zh
Publication of CN105653566A publication Critical patent/CN105653566A/zh
Application granted granted Critical
Publication of CN105653566B publication Critical patent/CN105653566B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种实现数据库写访问的方法,实现了降低对数据库的依赖性,提高业务可用性的目的。例如,该方法可以包括:响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存;当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。另外,本申请还公开了一种实现数据库写访问的装置。

Description

一种实现数据库写访问的方法及装置
技术领域
本申请涉及数据库领域,尤其涉及一种实现数据库写访问的方法及装置。
背景技术
随着互联网的发展,出现了很多大型的互联网应用。这些互联网应用的数据依赖于后台数据库的支持。例如,出于稳定性考虑,后台数据库可以是稳定性较高的具有多个分库的数据库。
在互联网应用的业务侧向数据库写入数据时,为了便于SQL路由,业务侧需要先从数据库用于维护全局唯一标识的数据表获得序列号。在获得序列号后,根据数据库的格式要求以及获得的序列号生成库主键。业务侧将由库主键标识的数据直接写入数据库。
可见,目前对数据库的写访问对数据库具有强依赖性,一旦数据库出现问题,业务侧无法从数据库获得序列号,会发生写访问失败,进而导致互联网应用业务不可用。
发明内容
有鉴于此,本申请的目的在于提供一种实现数据库写访问的方法及装置,以实现降低对数据库的依赖性,提高业务可用性的目的。
在本申请实施例的第一个方面,提供了一种实现数据库写访问的方法。例如,该方法可以包括:响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存;当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
在本申请实施例的第二个方面,提供了一种实现数据库写访问的装置。例如,该装置可以包括:写入缓存单元,可以用于响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存。写入数据库单元,可以用于当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
可见,本申请具有如下有益效果:
由于本申请实施例在收到向数据库写入数据的请求时,无需生成用于在数据库中使用的库主键,而是生成用于在缓存中唯一标识所述数据的缓存主键,从而可以将由该缓存主键标识的该数据写入缓存,即使在接收到写入数据请求时数据库不可用,也不会发生写访问失败。当数据库可用时,可以再生成用于在所述数据库中唯一标识所述数据的库主键,从缓存中取得所述缓存主键标识的数据,将该数据由所述库主键标识并写入数据库。因此,本申请实施例实现的数据库写访问降低了对数据库的依赖性,达到了提高业务可用性的目的。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种实现数据库写访问的方法流程示意图;
图2为本申请另一实施例提供的一种实现数据库写访问的方法流程示意图;
图3为本申请又一实施例提供的一种实现数据库写访问的方法流程示意图;
图4为本申请实施例提供的一种实现数据库写访问的装置结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
例如,参见图1,为本申请实施例提供的一种实现数据库写访问的方法流程示意图。如图1所示,该方法可以包括:
S110、响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存。
一些可能的实施方式中,所述数据库可以为有多个分库的数据库。在该实施方式中,步骤S110生成的缓存主键可以包含用于确定分库的指定信息。例如,所述缓存主键可以根据UUID(UniversallyUniqueIdentifier,全球唯一标识)以及用于确定分库的指定信息生成缓存主键。其中,UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。例如,一些可能的实施方式中,数据库可以根据用户ID信息划分各个分库,则所述用于确定分库的指定信息可以为用户ID。例如,所述缓存主键可以由为所述数据生成的UUID以及提交该数据的用户的用户ID拼接而成。
可以理解的是,本申请实施例适于应用于具有多个分库的数据库,但并不仅限于此,本申请实施例也可以应用于单库的数据库。还需要说明的是,本申请实施例所述缓存可以是基于任意框架的数据库缓存,例如分布式数据库缓存等。
S120、当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
一些可能的实施方式中,本申请实施例还可以向发出所述请求的请求侧反馈所述缓存主键。请求侧得到该缓存主键后,可以根据自身的请求侧运行规则,在需要对该数据进行操作时,针对该缓存主键标识的数据发出操作指令。因此,本申请实施例还可以响应于接收到所述请求侧的操作指令,对所述操作指令携带的缓存主键所标识的数据执行相应操作。例如,操作指令可以包括删除数据、读取数据,修改数据等等。
例如,可以响应于接收到请求侧的操作指令,对所述缓存中所述缓存主键标识的数据执行相应操作。具体地,例如,可以响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据存在于所述缓存中,从所述缓存中读取出所述缓存主键标识的数据。更近一步地,还可以将读取出的数据反馈给请求侧。
再例如,本申请实施例在得到所述数据的库主键之后,还可以将所述数据的缓存主键与所述数据的库主键绑定。在该实施方式中,可以响应于接收到请求侧的操作指令,对所述数据库中由所述缓存主键绑定的库主键所标识的数据执行相应操作。
更具体地,例如,可以响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据未存在于所述缓存中,从所述数据库中读取出由所述缓存主键绑定的库主键所标识的数据。和/或者,响应于接收到请求侧的删除操作指令,从所述数据库中删除所述删除操作指令携带的缓存主键绑定的库主键所标识的数据。和/或者,响应于接收到请求侧的修改操作指令,对所述数据库中所述修改操作指令携带的缓存主键绑定的库主键所标识的数据执行相应修改操作。另外,如果所述删除命令携带的缓存主键标识的数据存在于所述数据库缓存中,从所述数据库缓存中删除所述删除命令携带的缓存主键标识的数据,以及,还可以相应删除所述缓存主键与库主键之间的绑定。
需要说明的是,本申请实施例提供的方法可以应用于任意架构的数据库访问系统中能够访问缓存的服务器侧。例如,在本申请实施例一些可能的实施方式中,数据库访问系统可以包括用户终端侧、业务服务器侧、缓存侧、数据库。其中,业务服务器侧、缓存侧以及数据库可以部署在相同或不同的服务器上,本申请对此并不进行限制。例如,在该实施方式中,本申请实施例提供的方法可以应用于业务服务器侧,其中,发出所述请求的请求侧可以为用户终端侧。再例如,本申请实施例提供的方法可以应用于与业务服务器侧及缓存侧有所区别的访问服务器侧,其中,发出所述请求的请求侧可以为业务服务器侧或用户终端侧。又例如,本申请实施例提供的方法可以应用于缓存侧,其中,发出所述请求的请求侧可以为业务服务器侧或用户终端侧。
可见,由于本申请实施例在收到请求侧向数据库写入数据的请求时,无需生成用于在数据库中使用的库主键,而是生成用于在缓存中唯一标识所述数据的缓存主键,该缓存主键即相当于该数据在缓存中的路由,从而可以将由该缓存主键标识的该数据写入缓存,即使在接收到写入数据请求时数据库不可用,也不会发生写访问失败。当数据库可用时,可以再生成用于在所述数据库中唯一标识所述数据的库主键,从缓存中取得所述缓存主键标识的数据,将该数据由所述库主键标识并写入数据库。因此,本申请实施例实现的数据库写访问降低了对数据库的依赖性,达到了提高业务可用性的目的。
可以理解的是,在上面提到的具有多个分库的数据库的实施方式中。所述具有多个分库的数据库,可以是对一个单独数据库进行分库分表之后得到的具有多个分库的数据库。由于具有多个分库的数据库在其中部分分库故障时,仍然还有其他可用的分库,因此,部分可用的数据库的业务仍然可以运行,一定程度上可以提高业务的可用性。因此,目前大型互联网应用的数据库通常为具有多个分库的数据库。但是,当数据库中用于维护全局唯一标识的数据表不能使用时,将导致所有业务的写访问都受到影响,因此,本申请实施例可以解决大型互联网应用对数据库的强依赖,即使所有的数据库不可用,也不会发生写访问失败,分库可用的业务仍然可以正常运行。
下面,以本申请实施例所述数据库为有多个分库的数据库为例,对本申请实施例一种可能的实施方式进行详细说明。例如,参见图2,该实施方式可以包括:
S210、响应于接收到请求侧向数据库写入数据的请求,为所述数据生成唯一标识该数据的UUID,根据所述UUID以及用于确定分库的指定信息生成所述缓存主键。
例如,一些可能的实施方式中,如图3所示,本申请实施例提供的方法可以应用于访问服务器侧320,其中,发出所述请求的请求侧可以为支付业务服务器侧310。访问服务器侧320可以与支付业务服务器侧310进行交互。当用户访问支付业务服务器侧310的网站做支付时,如果支付业务服务器侧310对支付数据验证通过,如图3所示,访问服务器侧320可以接收到支付业务服务器侧310发出的向数据库340写入支付数据的请求。在接收到该请求之后,所述访问服务器侧320可以为该支付数据生成UUID,并将该UUID与所述用户的用户ID拼接,生成该支付数据的缓存主键。
S220、将由所述缓存主键标识的所述数据写入所述缓存,以及,将所述数据在缓存中的版本标识设置为第一版本标识。
例如,结合上面支付的实施方式,如图3所示,所述访问服务器侧320可以将该支付数据写入缓存侧330,并将该支付数据在缓存侧330中的版本标识设置为0(即,第一版本标识),以表示该支付数据需要被写入到数据库340中。可以理解的是,对于缓存侧330中版本标识为非0的数据则无需写入到数据库340中。
再例如,如图3所示,在所述访问服务器侧320将支付数据写入缓存侧330之后,还可以向支付业务服务器侧310反馈写入成功的消息,以及反馈该支付数据的缓存主键,以便支付业务服务器侧310后续通过该缓存主键访问该支付数据。支付业务服务器侧310在接收到写入成功的消息后,还可以相应向用户反馈支付成功的消息。可见,即使数据库340此时不可用,支付业务服务器侧310也可以成功进行写访问。
S230、当所述数据库可用时,启动异步程序查询所述缓存中是否存在带有第一版本标识的数据。
例如,如图3所示,所述访问服务器侧320可以启动自身的一个或多个异步程序并行来查询所述缓存侧330中是否存在版本标识为0的数据。
S240、如果存在,所述异步程序从缓存中读取出由所述缓存主键标识的、带有第一版本标识的数据,从所述数据库用于维护全局唯一标识的数据表获得为该数据生成的序列号,根据库主键格式要求以及获得的序列号生成该数据的库主键。
例如,如图3所示,所述访问服务器侧320启动的异步程序可以从缓存侧330中读取出版本标识为0的数据,从数据库340获得序列号,根据序列号以及数据库的库主键的格式要求进一步生成该数据的库主键。
S250、所述异步程序将由所述库主键标识的所述数据写入其缓存主键包含的指定信息所确定的分库。
S260、所述异步程序在所述数据写入所述分库后,将所述数据在所述缓存中的版本标识设置为第二版本标识。
例如,如图3所示,所述异步程序可以将由所述库主键标识的所述数据写入其缓存主键包含的指定信息所确定的分库,并从数据库接收其返回的是否写入成功的结果,并更新所述数据在缓存侧330中的版本标识为1。
可见,本申请实施例提供了一种解决分库模式下库主键异步生成的策略,针对请求侧发出的写数据请求,根据UUID以及用于确定分库的指定信息生成缓存主键,将由缓存主键标识的数据暂时写入缓存,缓存主键的生成无需依赖数据库,同时又可以保证在数据库可用的情况下,由异步程序生成库主键以及将数据正常写入数据库,从而解决了大型互联网应用对数据库的强依赖,即使所有的数据库不可用,也不会发生写访问失败,分库可用的业务仍然可以正常运行,极大的提高了互联网应用的可用性。
与上述实现数据库写访问的方法相对应,本申请实施例还提供了一种实现数据库写访问的装置。
例如,参见图4,为本申请实施例提供的一种实现数据库写访问的装置结构示意图。如图4所示,该装置可以包括:
写入缓存单元410,可以用于响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存。写入数据库单元420,可以用于当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
可见,由于本申请实施例的写入缓存单元410在收到例如请求侧向数据库写入数据的请求时,无需生成用于在数据库中使用的库主键,而是生成用于在缓存中唯一标识所述数据的缓存主键,该缓存主键即相当于该数据在缓存中的路由,从而可以将由该缓存主键标识的该数据写入缓存,即使在接收到写入数据请求时数据库不可用,也不会发生写访问失败。而且写入数据库单元420当数据库可用时,可以再生成用于在所述数据库中唯一标识所述数据的库主键,从缓存中取得所述缓存主键标识的数据,将该数据由所述库主键标识并写入数据库。因此,本申请实施例实现的数据库写访问降低了对数据库的依赖性,达到了提高业务可用性的目的。
一些可能的实施方式中,该装置还可以包括:反馈单元430,可以用于向发出所述请求的请求侧反馈所述缓存主键。操作单元440,可以用于响应于接收到所述请求侧的操作指令,对所述操作指令携带的缓存主键所标识的数据执行相应操作。
结合上面的实施方式中,该装置还可以包括:绑定单元450,可以用于将所述数据的缓存主键与所述数据的库主键绑定。相应地,所述操作单元440可以包括:缓存操作子单元441,可以用于响应于接收到请求侧的操作指令,对所述缓存中所述缓存主键标识的数据执行相应操作。和/或者,数据库操作子单元442,可以用于响应于接收到请求侧的操作指令,对所述数据库中由所述缓存主键绑定的库主键所标识的数据执行相应操作。
例如,其中,所述缓存操作子单元441,可以用于响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据存在于所述缓存中,从所述缓存中读取出所述缓存主键标识的数据。
再例如,其中,所述数据库操作子单元442,可以包括:读取子单元4420,可以用于响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据未存在于所述缓存中,从所述数据库中读取出由所述缓存主键绑定的库主键所标识的数据。和/或者,删除子单元4421,可以响应于接收到请求侧的删除操作指令,从所述数据库中删除所述删除操作指令携带的缓存主键绑定的库主键所标识的数据。和/或者,修改子单元4422,可以用于响应于接收到请求侧的修改操作指令,对所述数据库中所述修改操作指令携带的缓存主键绑定的库主键所标识的数据执行相应修改操作。
一些可能的实施方式中,所述数据库可以为有多个分库的数据库。在该实施方式中,所述写入缓存单元410,具体可以用于为所述数据生成唯一标识该数据的UUID,根据所述UUID以及用于确定分库的指定信息生成所述缓存主键。且,还可以包括,版本设置单元460,可以用于在所述写入缓存单元将所述数据写入所述缓存之后,将所述数据在缓存中的版本标识设置为第一版本标识。相应地,所述写入数据库单元420可以包括:数据获取子单元421,可以用于当所述数据库可用时,启动异步程序从所述缓存中读取出由所述缓存主键标识的、带有第一版本标识的数据。库主键生成子单元422,可以用于从所述数据库用于维护全局唯一标识的数据表获得为该数据生成的序列号,根据库主键格式要求以及获得的序列号生成该数据的库主键。写入子单元423,可以用于将由所述库主键标识的所述数据写入其缓存主键包含的指定信息所确定的分库。且,该装置还可以包括版本更改单元461,可以用于在所述数据写入所述分库后,将所述数据在所述缓存中的版本标识设置为第二版本标识。
在上面的实施方式中,写入缓存单元410针对请求侧发出的写数据请求,根据UUID以及用于确定分库的指定信息生成缓存主键,将由缓存主键标识的数据暂时写入缓存,缓存主键的生成无需依赖数据库,同时又可以保证在数据库可用的情况下,由写入数据库单元420启动异步程序生成库主键以及将数据正常写入数据库,从而解决了大型互联网应用对数据库的强依赖,即使所有的数据库不可用,也不会发生写访问失败,分库可用的业务仍然可以正常运行,极大的提高了互联网应用的可用性。
需要注意的是,本申请实施例的数据获取子单元421、库主键生成子单元422、写入子单元423、版本设置单元460、版本更改单元461、绑定单元450、操作单元440、缓存操作子单元441、数据库操作子单元442、读取子单元4420、删除子单元4421、修改子单元4422以及反馈单元430在图4中以虚线绘制,以表示这些单元不是本申请实施例提供的实现数据库写访问的装置的必要单元。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (11)

1.一种实现数据库写访问的方法,其特征在于,包括:
响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存;
当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
2.根据权利要求1所述的方法,其特征在于,还包括:
向发出所述请求的请求侧反馈所述缓存主键;
响应于接收到所述请求侧的操作指令,对所述操作指令携带的缓存主键所标识的数据执行相应操作。
3.根据权利要求2所述的方法,其特征在于,还包括,将所述数据的缓存主键与所述数据的库主键绑定;
所述响应于接收到请求侧的操作指令,对所述操作指令携带的缓存主键所标识的数据执行相应操作包括:
响应于接收到请求侧的操作指令,对所述缓存中所述缓存主键标识的数据执行相应操作;
和/或者,
响应于接收到请求侧的操作指令,对所述数据库中由所述缓存主键绑定的库主键所标识的数据执行相应操作。
4.根据权利要求3所述的方法,其特征在于,所述响应于接收到请求侧的操作指令,对所述缓存中所述缓存主键标识的数据执行相应操作包括:
响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据存在于所述缓存中,从所述缓存中读取出所述缓存主键标识的数据;
所述响应于接收到请求侧的操作指令,对所述数据库中由所述缓存主键绑定的库主键所标识的数据执行相应操作包括:
响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据未存在于所述缓存中,从所述数据库中读取出由所述缓存主键绑定的库主键所标识的数据;
和/或者,
响应于接收到请求侧的删除操作指令,从所述数据库中删除所述删除操作指令携带的缓存主键绑定的库主键所标识的数据;
和/或者,
响应于接收到请求侧的修改操作指令,对所述数据库中所述修改操作指令携带的缓存主键绑定的库主键所标识的数据执行相应修改操作。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法应用于业务服务器侧,其中,发出所述请求的请求侧为用户终端侧;
或者,
所述方法应用于访问服务器侧或缓存侧,其中,发出所述请求的请求侧为业务服务器侧或用户终端侧。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述数据库为有多个分库的数据库;
其中,所述生成用于在缓存中唯一标识所述数据的缓存主键包括:为所述数据生成唯一标识该数据的UUID,根据所述UUID以及用于确定分库的指定信息生成所述缓存主键;
且,在将所述数据写入所述缓存之后,还包括,将所述数据在缓存中的版本标识设置为第一版本标识;
所述当数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库包括:
当所述数据库可用时,启动异步程序从所述缓存中读取出由所述缓存主键标识的、带有第一版本标识的数据;
从所述数据库用于维护全局唯一标识的数据表获得为该数据生成的序列号,根据库主键格式要求以及获得的序列号生成该数据的库主键;
将由所述库主键标识的所述数据写入其缓存主键包含的指定信息所确定的分库;
在所述数据写入所述分库后,将所述数据在所述缓存中的版本标识设置为第二版本标识。
7.一种实现数据库写访问的装置,其特征在于,包括:
写入缓存单元,用于响应于接收到向数据库写入数据的请求,生成用于在缓存中唯一标识所述数据的缓存主键,将由所述缓存主键标识的所述数据写入所述缓存;
写入数据库单元,用于当所述数据库可用时,从缓存中取得所述缓存主键标识的数据,生成用于在所述数据库中唯一标识所述数据的库主键,将由所述库主键标识的所述数据写入所述数据库。
8.根据权利要求7所述的装置,其特征在于,还包括:
反馈单元,用于向发出所述请求的请求侧反馈所述缓存主键;
操作单元,用于响应于接收到所述请求侧的操作指令,对所述操作指令携带的缓存主键所标识的数据执行相应操作。
9.根据权利要求8所述的装置,其特征在于,还包括:
绑定单元,用于将所述数据的缓存主键与所述数据的库主键绑定;
所述操作单元包括:
缓存操作子单元,用于响应于接收到请求侧的操作指令,对所述缓存中所述缓存主键标识的数据执行相应操作;
和/或者,
数据库操作子单元,用于响应于接收到请求侧的操作指令,对所述数据库中由所述缓存主键绑定的库主键所标识的数据执行相应操作。
10.根据权利要求9所述的装置,其特征在于,所述缓存操作子单元,用于响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据存在于所述缓存中,从所述缓存中读取出所述缓存主键标识的数据;
所述数据库操作子单元,包括:
读取子单元,用于响应于接收到请求侧的读操作指令,如果所述读操作指令携带的缓存主键标识的数据未存在于所述缓存中,从所述数据库中读取出由所述缓存主键绑定的库主键所标识的数据;
和/或者,
删除子单元,响应于接收到请求侧的删除操作指令,从所述数据库中删除所述删除操作指令携带的缓存主键绑定的库主键所标识的数据;
和/或者,
修改子单元,用于响应于接收到请求侧的修改操作指令,对所述数据库中所述修改操作指令携带的缓存主键绑定的库主键所标识的数据执行相应修改操作。
11.根据权利要求7-10任一项所述的装置,其特征在于,所述数据库为有多个分库的数据库;
其中,所述写入缓存单元,具体用于为所述数据生成唯一标识该数据的UUID,根据所述UUID以及用于确定分库的指定信息生成所述缓存主键;
且,还包括,版本设置单元,用于在所述写入缓存单元将所述数据写入所述缓存之后,将所述数据在缓存中的版本标识设置为第一版本标识;
所述写入数据库单元包括:
数据获取子单元,用于当所述数据库可用时,启动异步程序从所述缓存中读取出由所述缓存主键标识的、带有第一版本标识的数据;
库主键生成子单元,用于从所述数据库用于维护全局唯一标识的数据表获得为该数据生成的序列号,根据库主键格式要求以及获得的序列号生成该数据的库主键;
写入子单元,用于将由所述库主键标识的所述数据写入其缓存主键包含的指定信息所确定的分库;
版本更改单元,用于在所述数据写入所述分库后,将所述数据在所述缓存中的版本标识设置为第二版本标识。
CN201410725799.0A 2014-12-03 2014-12-03 一种实现数据库写访问的方法及装置 Active CN105653566B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410725799.0A CN105653566B (zh) 2014-12-03 2014-12-03 一种实现数据库写访问的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410725799.0A CN105653566B (zh) 2014-12-03 2014-12-03 一种实现数据库写访问的方法及装置

Publications (2)

Publication Number Publication Date
CN105653566A true CN105653566A (zh) 2016-06-08
CN105653566B CN105653566B (zh) 2019-08-02

Family

ID=56481308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410725799.0A Active CN105653566B (zh) 2014-12-03 2014-12-03 一种实现数据库写访问的方法及装置

Country Status (1)

Country Link
CN (1) CN105653566B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582666A (zh) * 2018-09-29 2019-04-05 阿里巴巴集团控股有限公司 数据主键生成方法、装置、电子设备及存储介质
CN110209677A (zh) * 2018-02-06 2019-09-06 北京京东尚科信息技术有限公司 更新数据的方法和装置
CN112632498A (zh) * 2020-12-28 2021-04-09 中国平安财产保险股份有限公司 基于多平台的身份识别方法、装置、设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法
US20090063489A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Accessing Data Entities
CN101706781A (zh) * 2009-09-29 2010-05-12 北京星网锐捷网络技术有限公司 一种数据库缓存集中管理方法和系统
US20110161339A1 (en) * 2009-12-30 2011-06-30 Sybase, Inc. Pending state management for mobile business objects
CN102117338A (zh) * 2011-04-02 2011-07-06 天脉聚源(北京)传媒科技有限公司 一种数据库缓存的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101131673A (zh) * 2006-08-22 2008-02-27 中兴通讯股份有限公司 一种通用缓存的方法
US20090063489A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Accessing Data Entities
CN101706781A (zh) * 2009-09-29 2010-05-12 北京星网锐捷网络技术有限公司 一种数据库缓存集中管理方法和系统
US20110161339A1 (en) * 2009-12-30 2011-06-30 Sybase, Inc. Pending state management for mobile business objects
CN102117338A (zh) * 2011-04-02 2011-07-06 天脉聚源(北京)传媒科技有限公司 一种数据库缓存的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110209677A (zh) * 2018-02-06 2019-09-06 北京京东尚科信息技术有限公司 更新数据的方法和装置
CN109582666A (zh) * 2018-09-29 2019-04-05 阿里巴巴集团控股有限公司 数据主键生成方法、装置、电子设备及存储介质
CN112632498A (zh) * 2020-12-28 2021-04-09 中国平安财产保险股份有限公司 基于多平台的身份识别方法、装置、设备及可读存储介质
CN112632498B (zh) * 2020-12-28 2024-02-02 中国平安财产保险股份有限公司 基于多平台的身份识别方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN105653566B (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
US8069224B2 (en) Method, equipment and system for resource acquisition
JP5705869B2 (ja) クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法
US20130305239A1 (en) Catalog-Based Software Component Management
JP6870466B2 (ja) 制御プログラム、制御方法、制御装置、及びデータベースサーバ
CN106817388B (zh) 虚拟机、宿主机获取数据的方法、装置及访问数据的系统
CN111061432B (zh) 一种业务迁移方法、装置、设备及可读存储介质
CN110825399B (zh) 一种应用程序的部署方法及装置
CN111127181A (zh) 一种凭证记账方法和装置
US20210157513A1 (en) Data reading method, apparatus, and system, and distributed system
CN105653566A (zh) 一种实现数据库写访问的方法及装置
US20130007377A1 (en) Message oriented middleware with integrated rules engine
CN114218619A (zh) 数据安全保护方法、装置、介质及电子设备
CN110798358B (zh) 分布式服务标识方法、装置、计算机可读介质及电子设备
CN110888847B (zh) 一种回收站系统及文件回收方法
CN109977317B (zh) 数据查询方法及装置
CN112230978A (zh) 一种多数据源动态切换方法、电子设备及存储介质
CN114911421B (zh) 基于csi插件的数据存储方法、系统、装置及存储介质
CN102946403B (zh) 一种用于云存储系统的解决文件冲突的方法及装置
US20160065679A1 (en) Registration of document services provided by an online document management system
CN109582487A (zh) 用于发送信息的方法和装置
CN112685613B (zh) 一种资源包查询的方法、装置及信息处理系统
CN109120692B (zh) 用于处理请求的方法和装置
CN113949637A (zh) 一种交换机资源智能分配部署方法及装置
CN113778975A (zh) 基于分布式数据库的数据处理方法及装置
CN114928604B (zh) 文件分发方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee after: Advanced innovation technology Co.,Ltd.

Address before: Cayman Islands Grand Cayman capital building, a four storey No. 847 mailbox

Patentee before: Alibaba Group Holding Ltd.