一种数据处理的方法及相关设备与流程

文档序号:11590572阅读:260来源:国知局

本发明涉及计算机领域,尤其涉及一种数据处理的方法及相关设备。



背景技术:

缓存就是数据交换的缓冲区,当要读取数据时,会首先从缓存中读取需要的数据,如果命中,则直接执行,若未命中则需要到存储设备查找该数据。由于缓存的运行速度比存储快得多,故缓存的作用为帮助硬件更快地运行。

当前应用(如微信)的很多业务服务使用了缓存来减少对存储端的访问压力。过期(expire)机制是指缓存系统提供一种功能,业务设备可以在向缓存设备写入数据时,指定该数据的存活时长,当达到该存活时长,该数据失效。

当前对于缓存数据的使用,主要以expire机制为主,下面对expire机制的流程进行简要说明:1、业务设备去缓存里读取标识a对应的数据b,发现缓存设备中的数据b丢失;2、业务设备去存储设备里读取标识a对应的数据b,读取成功;3、业务设备把从存储读取到标识a对应的数据b,更新到缓存,并设置过期的周期为t1;4、当业务设备第二次去缓存里读取标识a对应的数据,缓存命中;5、当t2(t2<t1)时长后,前端业务更新了存储设备中的标识a对应的数据,此时标识a对应的数据c(缓存设备中标识a对应的数据已不是最新数据,还是数据b);6、若业务设备第三次去缓存设备里读取标识a对应的数据,缓存命中,但是该数据并不是最新数据c,而是数据b。

传统方式中的缓存使用方式,缓存数据有效性的存在问题,即优先从缓存里读到的数据并不一定是用户最新更新到存储设备里的数据。过期机制导致缓存数据与存储数据不一致,缓存数据不准确。



技术实现要素:

本发明实施例提供了一种数据处理的方法及相关设备。用于保证业务设备获取数据的准确性。

第一方面,本发明实施例中提供了一种数据处理的方法,包括:

向存储设备发送第一写入请求,所述第一写入请求携带目标数据及所述目标数据对应的标识,所述第一写入请求用于指示所述存储设备根据所述第一写入请求将所述目标数据与所述标识进行关联存储;

接收所述存储设备反馈的第一响应消息,所述第一响应消息用于指示所述目标数据在所述存储设备中的存储状态;

当所述第一响应消息指示所述目标数据写入所述存储设备成功时,向缓存设备发送第二写入请求,所述第二写入请求携带所述目标数据及所述目标数据对应的标识,所述第二写入请求用于指示所述缓存设备根据所述第二写入请求将所述目标数据与所述标识进行关联存储。

第二方面,本发明实施例中提供了一种数据处理的方法,所述方法应用于服务器,所述服务器包括缓存设备和存储设备;

获取写入请求,所述写入请求携带目标数据及所述目标数据对应的标识;

根据所述写入请求对所述目标数据与所述标识进行关联存储于所述存储设备;

当所述目标数据写入成功时,向所述业务设备发送第一响应消息,所述第一响应消息用于指示所述目标数据写入所述存储设备的状态;

接收所述业务设备发送的第二写入请求,所述第二写入请求携带所述目标数据及所述目标数据对应的标识,根据所述第二写入请求将所述缓存设备中所述目标数据与所述标识关联存储。

第三方面,本发明实施例中提供了一种业务设备,包括:

第一发送模块,用于向存储设备发送第一写入请求,所述第一写入请求携带目标数据及所述目标数据对应的标识,所述第一写入请求用于指示所述存储设备根据所述第一写入请求将所述目标数据与所述标识进行关联存储;

第一接收模块,接收所述存储设备反馈的第一响应消息,所述第一响应消息用于指示所述目标数据在所述存储设备中的存储状态;

第二发送模块,用于当所述第一接收模块接收的所述第一响应消息指示所述目标数据写入所述存储设备成功时,向缓存设备发送第二写入请求,所述第二写入请求携带所述目标数据及所述目标数据对应的标识,所述第二写入请求用于指示所述缓存设备根据所述第二写入请求将所述目标数据与所述标识进行关联存储。

第四方面,本发明实施例提供了一种服务器,包括:

第一接收模块,用于获取写入请求,所述写入请求携带目标数据及所述目标数据对应的标识;

控制模块,用于根据所述写入请求将所述第一接收模块获取的所述目标数据与所述标识关联存储于所述存储设备;

第一发送模块,用于当所述目标数据写入成功时,向所述业务设备发送第一响应消息,所述第一响应消息用于指示所述目标数据写入所述存储设备的状态;

第二接收模块,用于接收所述业务设备发送的第二写入请求,所述第二写入请求携带所述目标数据及所述目标数据对应的标识;

缓存模块,用于根据所述第二写入请求将所述目标数据与所述标识关联存储至所述缓存设备。

从以上技术方案可以看出,本发明实施例具有以下优点:

向存储设备发送第一写入请求,所述第一写入请求携带目标数据及所述目标数据对应的标识,所述第一写入请求用于指示所述存储设备根据所述第一写入请求将所述目标数据与所述标识进行关联存储;然后,接收所述存储设备反馈的第一响应消息,当所述第一响应消息指示所述目标数据写入所述存储设备成功时,向缓存设备发送第二写入请求,所述第二写入请求携带所述目标数据及所述目标数据对应的标识,所述第二写入请求用于指示所述缓存设备根据所述第二写入请求将所述目标数据与所述标识进行关联存储。本实施例中,当业务设备需要更新该标识对应的数据时,向存储设备写入目标数据,然后也会将该目标数据缓存到缓存设备中,从而使在存储设备和缓存设备中同一个标识对应的数据保持一致,以保证业务设备获取目标数据的准确性,也就是说,本发明实施例中,采用双写(写入存储设备的同时也向缓存设备写入目标数据)的方法,保证业务设备获取数据的准确性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例中一种通信系统的架构示意图;

图2为本发明实施例中一种数据处理的方法的一个实施例的步骤流程示意图;

图3为本发明实施例中一种通信系统的另一个实施例的架构示意图;

图4为本发明实施例中一种通信系统的另一个实施例的架构示意图;

图5为本发明实施例中一种数据处理的方法的另一个实施例的流程示意图;

图6为本发明实施例中一种业务设备的一个实施例的结构示意图;

图7为本发明实施例中一种业务设备的另一个实施例的结构示意图;

图8为本发明实施例中一种业务设备的另一个实施例的结构示意图;

图9为本发明实施例中一种业务设备的另一个实施例的结构示意图;

图10为本发明实施例中一种服务器的一个实施例的结构示意图;

图11为本发明实施例中一种服务器的另一个实施例的结构示意图;

图12为本发明实施例中一种服务器的另一个实施例的结构示意图;

图13为本发明实施例中一种服务器的另一个实施例的结构示意图。

具体实施方式

本发明实施例提供了一种数据处理的方法及相关设备,用于保证业务设备获取数据的准确性。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明实施例提供一种数据处理的方法,该方法应用于一种通信系统,请参阅图1所示,图1为本发明实施例中一种通信系统的架构示意图。该通信系统包括业务设备110、缓存设备120和存储设备130,该存储设备130用于存储业务设备对应的数据及该数据对应的标识(如key值),当业务设备需要更新该标识对应的数据时,向存储设备写入该标识对应的目标数据,然后也会将该目标数据缓存到缓存设备中,从而使在存储设备和缓存设备中同一个标识对应的数据保持一致,由于为了提高处理速率,业务设备下次需要获取该标识对应的数据时,首先向缓存获取该目标数据,可以保证业务设备获取目标数据的准确性,也就是说,本发明实施例中,采用双写(写入存储设备的同时也向缓存设备写入目标数据)的方法,业务设备只要是向存储设备写入数据,同时也会向缓存设备写入该数据。

本发明实施例中,图1中的架构只是举例说明,在实际的设备部署场景中,对于设备的部署形态可以有多种。例如,第一种形态:业务设备110、缓存设备120和存储设备130均是独立的设备。在这种形态中,并不限定该缓存设备的数量,例如,该缓存设备的数量一般可以为1至3,可以有效的减少缓存开销。本发明实施例中,该缓存设备的数量以1为举例说明,在实际的应用中,并不限定该缓存设备的数量。第二种形态:业务设备110和缓存设备120可以集成在一个设备中,而存储设备130是独立的设备。第三种形态:业务设备110是独立的设备,而缓存设备120和存储设备130可以集成在一个设备中。因此在实际的应用中,该通信系统的架构并不只限于图1中的示例。在第一种形态和第二种形态的架构中,属于独立缓存的架构,即缓存设备作为独立集群或设备部署,业务需要跨机访问缓存集群获取数据,缓存设备的数量较少,可以减少缓存开销。

在一个应用场景中,以微信的场景为例,该业务设备可以是微信服务中的多个业务中的任一个业务的服务器。例如,该业务设备可以为“滴滴打车”对应的服务器,或者“公积金缴费”对应的服务器等等,在业务设备在实际应用中并不限定其具体的业务范围。

下面以业务设备侧对本发明实施例中提供的方法进行描述。业务设备可以以服务器的形态存在,业务设备用于向存储设备发送第一写入请求,该第一写入请求携带了目标数据及目标数据对应的标识,该第一写入请求用于指示存储设备根据第一写入请求将标识与目标数据关联存储;然后,该业务设备接收存储设备反馈的第一响应消息,该第一响应消息用于指示目标数据在存储设备中的存储状态,该存储状态是指该目标数据存储成功或存储失败。当第一响应消息指示目标数据写入存储设备成功时,业务设备需要将该目标数据也写入缓存以保证存储设备中和缓存设备中的同一个标识对应的数据具有一致性。即该业务设备可以向缓存设备发送第二写入请求,该第二写入请求携带该目标数据及目标数据对应的标识,该第二写入请求用于指示缓存设备根据该第二写入请求将标识与目标数据关联存储。

例如,该业务设备以微信中“公积金”对应的业务设备为例进行说明,用户交纳当月(如3月)的公积金,然后,由客户端向业务设备提交3月份的公积金数额,业务设备确定目标数据,例如,该目标数据为当月的公积金数额,及个人账户余额等,该标识可以为该用户的账号。然后,该业务设备可以向该存储设备发送第一写入请求,该第一写入请求将当月缴纳的公积金数额及个人账户余额等更新的数据(目标数据)写入存储设备,并将该目标数据与该账户进行关联存储,在存储设备中,对该账户对应的数据进行更新,将该目标数据与该账户关联存储。

在存储设备中对该账户对应的数据进行更新之后,该业务设备也需要将当月缴纳的公积金数额及个人账户余额等(目标数据)写入该缓存设备中,这样缓存设备中和该存储设备中的该账户对应的数据一致,从而使得后续业务设备获取数据的正确性。

请参阅图2所示,图2为本发明实施例中一种数据处理的方法的步骤流程图。

本发明实施例提供的一种数据处理的方法的一个实施例,本实施例可以基于图1对应的架构。

步骤201、业务设备向存储设备发送第一写入请求,第一写入请求携带目标数据及目标数据对应的标识。

当有业务设备有数据需要更新时,该第一写入请求携带目标数据,可以理解的是,该目标数据为该标识对应的新的数据。

例如,若该目标数据为用户的基本信息中,也可以为该基本信息中的地址信息,不同的目标数据对应不同的标识。例如,该目标数据为用户的基本信息时,请参阅下表所示,该基本信息可以如下表1所示:

表1

当在一个业务中,例如,该业务为“出入境办理”,用户更换了电话号码,原来的电话号码为“1800000000”,将电话号码更改为“15000000000”,也就是说是基本信息中的“电话号码”改变了。在一种可能的实现方式中,该目标数据可以为上述表1中的基本信息。在另一种可能的实现方式中,该目标数据也可以为基本信息中的电话号码,当该目标数据为基本信息中的一项。

若该目标数据为上述表1中的基本信息,则该目标数据的标识为c,若该目标数据为电话号码,则该目标数据的标识为d,可以理解的是该标识为键值,而目标数据为该键值对应的值。或者该标识也可以为索引,只要保证该标识与目标数据具有对应关系即可,对于该标识的具体实现,本发明不限定。

需要说明的是,上述对于目标数据只是为了方便说明而举的例子,并不造成对本发明的限定性说明。

步骤202、存储设备接收该第一写入请求,并根据该第一写入请求将该目标数据与标识进行关联存储。

在一种实现方式中,该目标数据为第一次存储到该存储设备中的数据,在这种实现方式中,该存储设备直接将目标设备和该标识进行关联存储。

在第二种实现方式中,存储设备中已经存储了该标识及该标识对应的数据,存储设备可以将该标识对应的数据更新为目标数据。

例如,标识为d对应的数据用于表示“电话号码”对应的数据,在存储设备中,标识d对应的原数据为“1800000000”,然后,当存储设备接收到该目标数据后,可以将原数据更新为目标数据,也就是说,将标识d对应的原数据“1800000000”删除,将该标识d对应的数据更新为目标数据(如15000000000)。

第三种实现方式中,存储设备中已经存储了该标识及该标识对应的数据,当存储设备接收到目标数据时,将该目标数据与该标识关联存储,不需要删除该标识对应的原数据。

例如,若该目标数据为三月份的公积金缴费金额,该标识用于指示用户的账户,当然,与该账户关联保存的数据包括该账户的历史公积金缴费记录,例如,该存储设备中存储了该账户对应的1月份,2月份的公积金缴费金额,当存储设备接收到目标数据后,将该三月份的公积金缴费金额与标识关联存储,也就是说,该标识对应的数据增加了目标数据(如三月份的公积金缴费金额)。

步骤203、存储设备向业务设备反馈第一响应消息,第一响应消息用于指示目标数据在存储设备中的存储状态。

该存储状态可以指该存储设备对于该目标数据写入操作是成功还是失败。

步骤204、业务设备接收该第一响应消息。当该第一响应消息指示该目标数据写入成功时,业务设备向缓存设备发送第二写入请求,第二写入请求携带目标数据及目标数据对应的标识;

若该第一响应消息指示该目标数据写入成功,则该业务设备需要将该目标数据写入缓存,以保证该存储设备和该缓存设备中该标识对应的数据具有一致性,即均为更新之后的数据。

若该第一响应消息指示该目标数据写入失败,则此时存储设备和缓存设备中的数据都没有变化。对数据的一致性没有影响。

若该第一响应消息指示该目标数据写入成功时,业务设备向缓存设备发送第二写入请求,该第二写入请求用于请求将更新后的数据,即目标数据,缓存至缓存设备。

步骤205、缓存设备接收该第二写入请求,该缓存设备将目标数据与标识进行关联存储。

映射方法确定了写入缓存的数据放到缓存中什么位置。映射方法可以包括三种:全相联、直接相联和组相联。全相联就是数据可以映射到缓存中的任何位置。直接相联是指数据只能映射到缓存的唯一位置。组相联介于直接相联和全相联之间,这种机制将缓存划分成多个组,数据首先映射到缓存特定的组中,然后在组内全相联映射。本发明实施例中,对于映射方法并不限定。

步骤206、业务设备接收缓存设备反馈的第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态。

该第二响应消息用于指示该目标数据写入缓存设备成功还是失败。

步骤207、业务设备接收该第二响应消息。若该第二响应消息指示该目标数据写入失败,则业务设备向缓存设备发送数据删除请求,数据删除请求携带目标数据对应的标识。

在一种实现方式中,若在该缓存设备中该标识对应缓存了第一数据,该第一数据为该标识对应的未更新之前的数据,则当业务设备接收到第二响应消息时,该第二响应消息指示该目标数据写入缓存失败,则业务设备向该缓存设备发送数据删除请求,该数据删除请求用于指示该缓存设备将该标识对应的数据删除。

例如,该缓存设备中已经存储了1月份公积金缴费金额和2月份公积金缴费金额,目标数据为3月份公积金缴费金额,由于3月份公积金缴费金额写入缓存失败,但是3月份公积金缴费金额已经写入了存储设备,也就是说,在存储设备中,该标识对应的数据可以为1月公积金缴费金额、2月公积金缴费金额和3月份公积金缴费金额,而缓存设备中缓存的该标识对应的数据为1月公积金缴费金额和2月公积金缴费金额。当前存储设备和缓存设备中该标识对应的数据已经发生了不一致的情况,这时,业务设备就需要向缓存设备发送数据删除请求,发送该数据删除请求的目的就是为了将缓存设备中该标识对应的1月公积金缴费金额、2月公积金缴费金额删除,这样缓存设备中就不存在该标识对应的数据,若业务设备需要向缓存设备获取该标识对应的3公积金缴费金额时,发现缓存设备中该标识对应的数据丢失,则该业务设备就会向存储设备获取该标识对应的更新后的数据,并将目标数据再次缓存到缓存设备中,从而使得该业务设备获取到的该标识对应的数据都是更新后的数据,该业务设备从缓存设备获取到的数据是准确的。

步骤208、缓存设备根据数据删除请求将标识对应的数据删除。

缓存设备利用缓存设备的轻删除,或者删除操作幂等特点,将标识对应的数据删除。

需要说明的是,该步骤207和208为可选的步骤,也可以不执行,若该缓存设备中并没有存储该标识及对应的数据,举个例子,账户a的公积金数据是第一次存储到该存储设备中,缓存设备中并没有该账户a的公积金数据,则就不需要执行步骤207及208。

进一步的,当业务设备需要读取该标识对应的数据时,该业务设备读取数据的顺序是先向缓存设备获取该标识对应的数据,再向存储设备获取该标识对应的数据。

业务设备向缓存设备发送第一读取请求,第一读取请求携带标识,第一读取请求用于指示缓存设备根据读取请求反馈标识对应的目标数据;接收第三响应消息,第三响应消息用于指示在缓存设备中目标设备丢失;然后,该业务设备再向存储设备发送第二读取请求,第二读取请求携带标识,第二读取请求用于指示存储设备查找标识对应的目标数据;该业务设备接收存储设备发送的目标数据,该业务设备从该存储设备获取到该目标数据,但是缓存设备中还没有缓存该目标数据,这时,该业务设备向缓存设备发送第三写入请求,业务设备向缓存设备发送第三写入请求的目的在于,将获取的目标数据缓存至该缓存设备,该第三写入请求携带目标数据及目标数据对应的标识,该缓存设备接收到该第三写入请求,该缓存设备根据该第三写入请求将该目标数据及对应的标识进行存储。从而可以使得存储设备和缓存设备中的同一个标识对应的数据保持一致。

本实施例中,当业务设备需要更新该标识对应的数据时,向存储设备写入目标数据,然后也会将该目标数据缓存到缓存设备中,从而使在存储设备和缓存设备中同一个标识对应的数据保持一致,由于为了提高处理速率,业务设备下次需要获取该标识对应的数据时,首先向缓存获取该目标数据,可以保证业务设备获取目标数据的准确性,也就是说,本发明实施例中,采用双写(写入存储设备的同时也向缓存设备写入目标数据)的方法,保证业务设备获取数据的准确性。

可选的,当该第一响应消息指示该目标数据写入成功时,在想该缓存设备发送第二写入请求之前,业务设备也可以首先判断该目标数据是否缓存至缓存设备,若该目标数据需要缓存至该缓存设备,则该业务设备再向该缓存设备发送第二写入请求,若该业务设备判断该标识对应的目标数据不需要缓存至该缓存设备,则不执行向该缓存设备发送第二写入请求的步骤。

进一步的,该业务设备判断该目标数据是否缓存至缓存设备的实现方式可以为:

在一种实现方式中,通过判断该标识对应的历史数据在预置时间内被获取的次数,来确定是否将该目标数据缓存至该缓存设备。若该次数大于或者等于阈值,则表明该标识对应的数据为重要数据,则该业务设备向该缓存设备发送第二写入请求,该第二写入请求中携带目标数据及该目标数据对应的标识,该第二写入请求用于指示该缓存设备将该目标数据和该标识进行关联存储。

若该次数小于该阈值,则表明该标识对应的数据为非重要数据,则该业务设备向该缓存设备发送数据删除请求,该数据删除请求携带该标识,该数据删除请求用于指示该缓存设备将该标识对应的数据删除。

本实施例中,为了节省该缓存设备的存储空间,该业务设备可以先判断该标识对应的数据是否为重要数据,若该标识对应的数据为重要数据,则将该标识对应的目标数据关联存储至缓存设备,若该标识对应的数据为非重要数据,则将该缓存设备中该标识对应的数据删除。若该业务模块可以根据该标识对应的历史数据的获取次数,确定了该标识对应的目标数据被读取的概率较低,因此,不需要将该标识对应的目标数据缓存至该缓存设备,以节省缓存设备的存储空间。但是,为了避免低概率的事件发生,即业务设备从缓存设备读取该标识对应的数据,造成业务模块从该缓存设备中获取的该标识对应的数据与存储设备中该标识对应的数据不一致,则需要将该缓存设备中该标识对应的数据删除,这样,当业务设备向该缓存设备获取该标识对应的数据时,由于该缓存设备中该标识对应的数据丢失,则该业务设备需要向存储设备获取该标识对应的数据,也保证了该业务设备读取该标识对应的数据时,获取存储设备中更新之后的数据,保证了数据的有效性。

在另一种实现方式中,通过获取该缓存设备中的剩余存储量来确定是否将该目标数据缓存至该缓存设备中,业务设备获取该缓存设备中的剩余存储量,若该剩余存储量大于或者等于门限值,则业务设备将该目标数据缓存至该缓存设备中;若该剩余存储量小于门限值,则该业务设备向该缓存设备发送数据删除请求,该数据删除请求携带该标识,该数据删除请求用于指示该缓存设备将该标识对应的数据删除。

本实施例中,为了节省该缓存设备的存储空间,该业务设备可以先确定该缓存设备的剩余存储量,若该剩余存储量大于或者等于门限值,则可以将该目标数据写入该缓存设备中,若该剩余存储量小于该门限值,则将该缓存设备中该标识对应的数据删除。当业务设备向该缓存设备获取该标识对应的数据时,由于该缓存设备中该标识对应的数据丢失,则该业务设备需要向存储设备获取该标识对应的数据,也保证了该业务设备读取该标识对应的数据时,获取存储设备中更新之后的数据,保证了业务设备获取数据的有效性。

上述图2对应的实施例中的业务设备、缓存设备和存储设备分别为独立的设备。可选的,请参阅图3所示,图3为一种通信系统的另一个实施例的架构示意图。本实施例中提供了另一种应用场景,即该通信系统包括业务设备310和服务器320,缓存设备3210和存储设备3220可以集成于一个服务器320内。例如,该目标设备可以以服务器的形态存在,该缓存设备为服务器中的缓存区,该存储设备为该服务器中的存储区。

下面以从该服务器侧对本发明实施例中提供的一种数据处理的方法进行描述。

服务器获取业务设备发送的写入请求,写入请求携带目标数据及目标数据对应的标识。然后,该服务器可以根据写入请求将目标数据与该标识关联存储于存储设备中。

当目标数据写入成功时,向业务设备发送第一响应消息,第一响应消息用于指示目标数据写入存储设备的状态。然后,该服务器接收业务设备发送的第二写入请求,第二写入请求携带目标数据及目标数据对应的标识,该服务器根据该第二写入请求将该目标数据与该标识关联存储于该缓存设备中。该服务器将该目标数据写入该缓存设备中,包括两种状态,即写入成功和写入失败,若该目标数据写入该缓存设备成功,则存储设备和该缓存设备中该标识对应的数据一致,均包括该目标数据。

当目标数据写入缓存设备失败时,则该服务器向业务设备反馈的第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;然后,该服务器接收业务设备发送的删除数据请求,删除数据请求携带目标数据对应的标识;服务器将缓存设备中标识对应的数据删除。接收该数据删除请求的目的就是为了将缓存设备中该标识对应的未更新的数据删除,若业务设备需要向服务器获取该标识对应的目标数据(如3月份公积金缴费金额)时,发现该缓存设备中该标识对应的数据丢失,则该业务设备就会向存储设备获取该标识对应的更新后的数据,并将更新后的目标数据再次缓存到缓存设备中,从而使得该业务设备获取到的该标识对应的数据都是更新后的数据,该业务设备获取到的数据是准确的。

可选的,若业务设备需要读取数据时,该业务设备读取数据的顺序是先向缓存设备获取该标识对应的数据,再向存储设备获取该标识对应的数据。

该服务器接收业务设备发送的数据读取请求,数据读取请求携带目标数据的标识。然后,该服务器根据数据读取请求,在缓存设备中查找标识对应的目标数据。

可选的,若服务器根据该标识从该缓存设备查找到目标数据,则该服务器将该目标数据向业务设备反馈。

可选的,若该服务器确定缓存设备中不存在目标数据时,则从存储设备查找该标识对应的目标数据;然后,将该目标数据反馈给业务设备。

进一步的,该服务器接收业务设备发送的第三写入请求,第三写入请求携带目标数据及标识;该服务器根据第三写入请求,将标识及目标数据对应存储至缓存设备。

上述图2和图3对应的实施例为独立缓存的应用场景,该独立缓存是指缓存设备作为独立集群部署,业务需要跨机访问缓存设备获取数据。

请参阅图4所示,图4为一种通信系统的另一个实施例的架构示意图。在该通信系统的应用场景中,数据缓存的方式为本地缓存,该本地缓存是指缓存服务部署在前端业务设备本地,业务访问本机即可获取到缓存数据。该通信系统中,业务设备410和存储设备420,该业务设备410包括业务模块4101和缓存模块4102。在实际应用中该业务设备410可以为多台,该业务设备和该存储设备均可以以服务器的形态存在。在存储设备中可以维护一个映射关系表,该映射关系表中包括标识与业务设备的对应的关系。例如,标识a与第一业务设备对应,标识b与第二业务设备对应等等,该映射关系表用于当存储设备接收到写入请求时,将目标数据进行存储后,可以确定该标识对应的数据是哪个业务设备对应的数据,当有多个业务设备时,该存储设备可以确定每个标识对应的数据所对应的业务设备。为了方便说明,本实施例中,该业务设备可以以1台为例进行说明数据处理的过程。

请结合图5进行理解,图5为本发明实施例中提供的一种数据处理的方法的另一个实施例的流程示意图。

1、向存储设备写入标识对应的目标数据。

业务设备向存储设备发送第一写入请求,该第一写入请求携带目标数据及目标数据对应的标识,从而使该存储设备根据该第一写入请求将目标数据与标识进行关联存储,该存储设备写入该目标数据包括写入成功和写入失败这两个存储状态,存储设备向业务设备反馈第一响应消息,第一响应消息用于指示目标数据在存储设备中的存储状态。

当该第一响应消息只是该目标数据写入该存储设备失败时,表明在存储设备中该目标数据更新失败,此时,缓存模块中的该标识对应的数据与该存储设备中的该标识对应的数据还是一致的,因此,对缓存设备中的该标识对应的数据并没有影响,进一步的,该业务模块继续向该存储设备发送第一写入请求,直至该存储设备存储该目标数据成功。

2、业务模块向缓存模块写入标识对应的目标数据。

当第一响应消息指示目标数据写入存储设备成功时,业务设备将目标数据与标识进行关联存储至缓存模块。

3、请求删除缓存模块里该标识对应的数据。

业务模块接收缓存模块反馈的第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;当第二响应消息指示目标数据写入该缓存模块失败时,向缓存模块发送数据删除请求,数据删除请求携带目标数据对应的标识,数据删除请求用于指示缓存模块将标识对应的数据删除。

可选的,业务模块向缓存模块发送第一读取请求,第一读取请求携带标识,第一读取请求用于指示缓存设备根据读取请求反馈标识对应的目标数据;当业务模块接收到第三响应消息,该第三响应消息用于指示在缓存设备中目标设备数据丢失;则该业务设备向该存储设备发送第二读取请求,第二读取请求携带标识,第二读取请求用于指示存储设备查找标识对应的目标数据;然后,该业务设备接收该存储设备发送的目标数据;业务设备在将该将目标数据及对应的标识进行存储至该缓存模块。

上面对本发明实施例中提供的一种数据处理的方法进行了描述,请参阅图6所示,本发明实施例中提供了一种业务设备600的一个实施例包括:

第一发送模块601,用于向存储设备发送第一写入请求,第一写入请求携带目标数据及目标数据对应的标识,第一写入请求用于指示存储设备根据第一写入请求将目标数据与标识进行关联存储;

第一接收模块602,接收存储设备反馈的第一响应消息,第一响应消息用于指示目标数据在存储设备中的存储状态;

第二发送模块603,用于当第一接收模块602接收的第一响应消息指示目标数据写入存储设备成功时,向缓存设备发送第二写入请求,第二写入请求携带目标数据及目标数据对应的标识,第二写入请求用于指示缓存设备根据第二写入请求将目标数据与标识进行关联存储。

请参阅图7所示,在图6对应的实施例的基础上,本发明实施例提供了一种业务设备700的另一个实施例包括:

还包括第二接收模块604和第三发送模块605;

第二接收模块604,用于接收缓存设备反馈的第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;

第三发送模块605,用于当第二接收模块604接收的第二响应消息指示目标数据写入缓存设备失败时,向缓存设备发送数据删除请求,数据删除请求携带目标数据对应的标识,数据删除请求用于指示缓存设备将标识对应的数据删除。

请参阅图8所示,在图6对应的实施例的基础上,本发明实施例提供了一种业务设备800的另一个实施例包括:

还包括第四发送模块606、第三接收模块607、第五发送模块608和第六发送模块609;

第四发送模块606,用于向缓存设备发送第一读取请求,第一读取请求携带标识,第一读取请求用于指示缓存设备根据读取请求反馈标识对应的目标数据;

第三接收模块607,用于接收第三响应消息,第三响应消息用于指示在缓存设备中目标数据丢失;

第五发送模块608,用于当第三接收模块607接收的第三响应消息时,则向存储设备发送第二读取请求,第二读取请求携带标识,第二读取请求用于指示存储设备查找标识对应的目标数据;

第四接收模块610,用于接收存储设备发送的目标数据;

第六发送模块609,用于向缓存设备发送第三写入请求,第三写入请求携带第四接收模块610接收的目标数据及目标数据对应的标识,第三写入请求用于指示缓存设备将目标数据及对应的标识进行存储。

进一步的,图6至图8中的业务设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图6至图8中的业务设备可以采用图9所示的形式。该业务设备可以以服务器的形态存在。

图9是本发明实施例提供的业务设备结构示意图,该业务设备900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对业务设备中的一系列指令操作。更进一步地,处理器922可以设置为与存储介质930通信,在业务设备900上执行存储介质930中的一系列指令操作。

业务设备900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如windowsserver,macosx,unix,linux,freebsd等等。

上述实施例中由业务设备所执行的步骤可以基于该图9所示的业务设备结构。

本实施例中,该处理器922,用于使该业务设备执行上述方法实施例中该业务设备所执行的方法步骤:

向存储设备发送第一写入请求,第一写入请求携带目标数据及目标数据对应的标识,第一写入请求用于指示存储设备根据第一写入请求将目标数据与标识进行关联存储;

接收存储设备反馈的第一响应消息,第一响应消息用于指示目标数据在存储设备中的存储状态;

当第一响应消息指示目标数据写入存储设备成功时,向缓存设备发送第二写入请求,第二写入请求携带目标数据及目标数据对应的标识,第二写入请求用于指示缓存设备根据第二写入请求将目标数据与标识进行关联存储。

可选的,接收缓存设备反馈的第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;

当第二响应消息指示目标数据写入缓存设备失败时,向缓存设备发送数据删除请求,数据删除请求携带目标数据对应的标识,数据删除请求用于指示缓存设备将标识对应的数据删除。

可选的,向缓存设备发送第一读取请求,第一读取请求携带标识,第一读取请求用于指示缓存设备根据读取请求反馈标识对应的目标数据;

接收第三响应消息,第三响应消息用于指示在缓存设备中目标数据丢失;

向存储设备发送第二读取请求,第二读取请求携带标识,第二读取请求用于指示存储设备查找标识对应的目标数据;

接收存储设备发送的该目标数据;

向缓存设备发送第三写入请求,第三写入请求携带目标数据及目标数据对应的标识,第三写入请求用于指示缓存设备将目标数据及对应的标识进行存储。

本发明实施例还提供了一种计算机存储介质,用于储存为上述图9所示的业务设备所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。

请参阅图10所示,本发明实施例还提供了一种服务器1000的一个实施例包括:

第一接收模块1001,用于获取写入请求,写入请求携带目标数据及目标数据对应的标识;

控制模块1002,用于根据写入请求将第一接收模块1001获取的目标数据与标识关联存储于存储设备;

第一发送模块1003,用于当目标数据写入成功时,向业务设备发送第一响应消息,第一响应消息用于指示目标数据写入存储设备的状态;

第二接收模块1004,用于接收业务设备发送的第二写入请求,第二写入请求携带目标数据及目标数据对应的标识;

缓存模块1010,用于根据第二接收模块1004接收的第二写入请求将目标数据与标识关联存储至缓存设备。

请参阅图11所示,在图10对应的实施例的基础上,本发明实施例提供了一种服务器1100的一个实施例包括:

第二发送模块1005,用于当目标数据写入缓存设备失败时,向业务设备反馈第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;

第三接收模块1006,用于接收业务设备发送的删除数据请求,删除数据请求携带目标数据对应的标识;

删除模块1013,用于根据第三接收模块1006接收的删除数据请求将缓存设备中标识对应的数据删除。

请参阅图12所示,在图10对应的实施例的基础上,本发明实施例提供了一种服务器1200的一个实施例包括:

第四接收模块1007,用于获取数据读取请求,数据读取请求携带目标数据的标识;

查找模块1008,用于根据第四接收模块1007获取的数据读取请求,在缓存设备中查找标识对应的目标数据;

获取模块1009,用于当查找模块1008确定缓存设备中不存在目标数据时,从存储设备获取目标数据;

第三发送模块1012,用于将获取模块1009获取的目标数据向业务设备发送;

第五接收模块1011,用于接收业务设备发送的第三写入请求,第三写入请求携带目标数据及标识;

控制模块1002,还用于根据第三写入请求,将第五接收模块1011接收的标识及目标数据对应存储至缓存设备。

进一步的,图10至12中的服务器是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegratedcircuit,asic),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,图10至12中的服务器可以采用图13所示的形式。

图13是本发明实施例提供的服务器结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1322(例如,一个或一个以上处理器)和存储器1332,一个或一个以上缓存设备1342或存储设备1344的存储介质1330(例如一个或一个以上海量存储设备)。其中,存储器1332和存储介质1330可以是短暂存储或持久存储。存储在存储介质1330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,处理器1322可以设置为与存储介质1330通信,在服务器1300上执行存储介质1330中的一系列指令操作。

服务器1300还可以包括一个或一个以上电源1326,一个或一个以上有线或无线网络接口1350,一个或一个以上输入输出接口1358,和/或,一个或一个以上操作系统1341,例如windowsserver,macosx,unix,linux,freebsd等等。

处理器1322,用于使该服务器执行方法实施例中的方法步骤:

获取写入请求,写入请求携带目标数据及目标数据对应的标识;

根据写入请求对目标数据与标识进行关联存储于存储设备;

当目标数据写入成功时,向业务设备发送第一响应消息,第一响应消息用于指示目标数据写入存储设备的状态;

接收业务设备发送的第二写入请求,第二写入请求携带目标数据及目标数据对应的标识,根据第二写入请求将缓存设备中目标数据与标识关联存储。

可选的,当目标数据写入缓存设备失败时,向业务设备反馈第二响应消息,第二响应消息用于指示目标数据写入缓存设备的状态;

接收业务设备发送的删除数据请求,删除数据请求携带目标数据对应的标识;

将缓存设备中标识对应的数据删除。

可选的,获取数据读取请求,数据读取请求携带目标数据的标识;

根据数据读取请求,在缓存设备中查找标识对应的目标数据;

当确定缓存设备中不存在目标数据时,从存储设备获取目标数据;

将目标数据向业务设备发送;

接收业务设备发送的第三写入请求,第三写入请求携带目标数据及标识;

根据第三写入请求,将标识及目标数据对应存储至缓存设备。

本发明实施例还提供了一种计算机存储介质,用于储存为上述图13所示的服务器所用的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1