一种缓存数据的更新方法及装置与流程

文档序号:12596519阅读:220来源:国知局
一种缓存数据的更新方法及装置与流程

本发明的实施方式涉及数据处理技术领域,更具体地,本发明的实施方式涉及一种缓存数据的更新方法及装置。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

缓存也即数据交换的缓冲区(Cache),计算机在读取数据时,会首先从缓存中查询需要的数据,若在缓存中查询到需要的数据,则直接返回查询到的数据,若在缓存中未查询到需要的数据,则从数据库(或者内存)中查询。由于缓存的运行速度比数据库快得多,故缓存的作用就是帮助计算机更快地运行。

为了提高计算机的运行速度,通常将使用频率较高的数据写入到缓存中,现有技术中通常采用以下两种方案,具体来说:

方案一、周期更新缓存数据。在写入数据时,只将数据写入到数据库中,对数据库做更新操作,而不将数据写入缓存,不更新缓存中的数据,同时启动一个定时任务,定时的从数据库中获取数据,经过计算,将数据写入到缓存中,更新缓存中的数据。计算机访问数据时,直接在缓存中查询数据,如果发现缓存中不存在需要的数据,则直接返回空数据。

此种方案一方面需要将数据写入到数据库,另一方面需要定时获取数据库中的数据,经过计算写入到缓存中,在数据量较大的时候,性能瓶颈非常明显;缓存中的数据在未失效或者未过期时,其实是不必进行更新的,每次更新缓存中的全部数据,计算量较大;缓存中的数据在定时刷新周期内若发生变更,则变更的数据不能够及时的更新到缓存中,会造成查询到过期的数据,而且访问缓存中的数据时,失效的缓存查询不到需要的数据,会直接返回空数据,用户体验很差,没有补偿机制。

方案二、将数据同时写入数据库和缓存中。在写入数据时,除了将数据写入数据库之外,同时冗余计算,将数据写入到缓存中。计算机访问数据,若发现缓存中不存在需要的数据,就穿透到数据库中进行查询,在数据库中查询到数据后,将查询到的数据写入缓存中,然后返回查询到的数据,如果数据库中也未查询到需要的数据,则直接返回空数据。

此种方案中,在写入数据时,增加了很多额外的计算操作,让写入数据与计算读取逻辑耦合,当业务种类多时,代码会变得臃肿,难以维护,而且在缓存中未查询到数据时,缓存穿透到数据库中查询需要的数据,在高并发时会导致数据库瘫痪,同时缓存穿透的设计,让非法用户能利用不存在的缓存数据的标识,直接攻击数据库,造成数据库瘫痪。

因此,目前亟需一种缓存数据的更新方法,以及时更新缓存中的数据,降低计算量,同时提高数据库的安全性。



技术实现要素:

出于现有缓存数据更新方案中,周期更新缓存数据的方案,性能瓶颈较为明显,计算量大,且缓存数据不能得到及时更新,导致查询到过期数据;而将数据同时写入数据库和缓存中的方案,写入数据时冗余计算,计算量大,且缓存中查询不到的数据通过缓存穿透到数据库中进行查询,降低了数据库的安全性。

为此,非常需要一种改进的缓存数据的更新方法,以及时更新缓存中的数据,降低计算量,同时提高数据库的安全性。

在本上下文中,本发明的实施方式期望提供一种缓存数据的更新方法及装置。

在本发明实施方式的第一方面中,提供了一种缓存数据的更新方法,包括:

将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;

从所述队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;

利用查询到的数据更新缓存中所述待更新缓存数据的标识对应的数据。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,包括:在将目标数据写入数据库时,将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,包括:在缓存中查询目标数据且未查询到目标数据时,则将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述从所述队列中获取待更新缓存数据的标识,包括:从所述队列中批量获取待更新缓存数据的标识;则所述根据获取到的待更新缓存数据的标识,从数据库中查询数据,包括:对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据。

在一种可能的实施方式中,本发明实施例提供的上述方法中,所述待更新缓存数据的标识包括:业务标识和数据标识;则所述对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据,包括:对所述待更新缓存数据的数据标识进行归并处理,得到归并处理后的数据标识列表;针对所述归并处理后的数据标识列表中每个数据标识:根据该数据标识对应的业务标识以及预先配置的业务标识与数据刷新接口的对应关系,确定该数据标识对应的数据刷新接口,并调用确定出的数据刷新接口,从数据库中查询该数据标识对应的数据。

在本发明实施方式的第二方面中,提供了一种缓存数据的更新装置,包括:

处理单元,用于将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;

查询单元,用于从所述队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;

更新单元,用于利用查询到的数据更新缓存中所述待更新缓存数据的标识对应的数据。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元,具体用于:在将目标数据写入数据库时,将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述处理单元,具体用于:在缓存中查询目标数据且未查询到目标数据时,则将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述查询单元,具体用于:从所述队列中批量获取待更新缓存数据的标识;对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据。

在一种可能的实施方式中,本发明实施例提供的上述装置中,所述待更新缓存数据的标识包括:业务标识和数据标识;则所述查询单元对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据,具体用于:对所述待更新缓存数据的数据标识进行归并处理,得到归并处理后的数据标识列表;针对所述归并处理后的数据标识列表中每个数据标识:根据该数据标识对应的业务标识以及预先配置的业务标识与数据刷新接口的对应关系,确定该数据标识对应的数据刷新接口,并调用确定出的数据刷新接口,从数据库中查询该数据标识对应的数据。

在本发明实施方式的第三方面中,提供了一种缓存数据的更新装置,例如,可以包括存储器和处理器,其中,处理器可以用于读取存储器中的程序,执行下列过程:

将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;

从所述队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;

利用查询到的数据更新缓存中所述待更新缓存数据的标识对应的数据。

在本发明实施方式的第四方面中,提供了一种程序产品,其包括程序代码,当所述程序产品运行时,所述程序代码用于执行以下过程:

将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;

从所述队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;

利用查询到的数据更新缓存中所述待更新缓存数据的标识对应的数据。

根据本发明实施方式的缓存数据的更新方法及装置,通过将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据,进而利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据,利用队列的消息通知,在将待更新缓存数据的标识添加到队列中时,即触发从队列中获取待更新缓存数据的标识,进而根据获取到的待更新缓存数据的标识,从数据库中查询数据,并更新缓存数据,从而避免了周期更新缓存数据的性能瓶颈,降低了缓存数据更新的计算量,并能够及时更新缓存中的数据,同时在缓存中未查询到数据时,只需要将该数据的标识添加到用于存储待更新缓存数据信息的队列中,即可从数据库中查询数据并更新缓存中的数据,避免通过缓存穿透到数据库中查询数据,提高了数据库的安全性。

附图说明

通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示意性地示出了根据本发明实施方式的应用场景示意图;

图2示意性地示出了根据本发明实施方式的缓存数据的更新方法实施例流程示意图;

图3示意性地示出了根据本发明另一实施例的缓存数据的更新装置的结构示意图;

图4示意性地示出了根据本发明又一实施例的缓存数据的更新装置的结构示意图;

图5示意性地示出了根据本发明再一实施例的用于缓存数据的更新方法的程序产品示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种缓存数据的更新方法及装置。

此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。

发明概述

本发明人发现,现有缓存数据更新方案中,周期更新缓存数据的方案,性能瓶颈较为明显,计算量大,且缓存数据不能得到及时更新,导致查询到过期数据;而将数据同时写入数据库和缓存中的方案,写入数据时冗余计算,计算量大,且缓存中查询不到的数据通过缓存穿透到数据库中进行查询,降低了数据库的安全性。现有技术中缺乏一种改进的缓存数据的更新方法,以及时更新缓存中的数据,降低计算量,同时提高数据库的安全性。

为此,本发明提供了一种缓存数据的更新方法及装置,缓存数据的更新方法可以包括:将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据。

在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。

应用场景总览

首先参考图1,如图1所示,为本发明实施例提供的缓存数据的更新方法的应用场景示意图,包括队列101、数据库102和缓存103。在需要更新缓存103中的数据时,将待更新缓存数据的标识添加到队列101中,例如:在将数据写入数据库102时,将该数据的标识作为待更新缓存数据的标识添加到队列101中;再例如:在缓存103中查询数据未查询到时,将该数据的标识作为待更新缓存数据的标识添加到队列101中,实时监测队列101中是否有待更新缓存数据的标识写入,在有待更新缓存数据的标识写入到队列101中时,触发从队列101中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识从数据库102中查询数据,利用查询到的数据更新缓存103中待更新缓存数据的标识对应的数据。

其中,数据库、缓存以及队列之间进行通信。数据库缓存和队列可以位于任何终端设备中。

示例性方法

下面结合图1的应用场景,参考图2来描述根据本发明示例性实施方式的缓存数据的更新方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。

图2为本发明提供的一种缓存数据的更新方法的实施例的流程示意图,主要包括更新缓存中数据的流程,执行主体可以为应用场景总览中的数据库102和缓存103所在的终端设备,如图2所示,本发明实施例提供的一种缓存数据的更新方法,包括如下步骤:

步骤201,将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

值得说明的是,队列是一种用于存储数据的结构。本步骤中,队列用于存储待更新缓存数据信息,队列可以是预先建立的,也可以是更新缓存中的数据时建立的,本发明对此不做限定。在需要更新缓存中的数据时,将待更新缓存数据的标识添加到队列中。

具体实施时,在将待更新缓存数据的标识添加到队列中时,为了避免后台(数据库和缓存所在终端设备的系统)的代码臃肿以及队列中数据的读写耦合,本发明实施例中的队列采用统一写入接口,并定义统一写入接口的参数为待更新缓存数据的标识,在将待更新缓存数据的标识添加到队列中时,只需通过统一写入接口向队列传输待更新缓存数据的标识即可。

步骤202,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据。

具体实施时,为了及时更新缓存中的数据,可以对队列进行实时监测,在监测到队列中有待更新缓存数据的标识写入时,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据。

当然,需要说明的是,由于本发明实施例通过队列存储待更新缓存数据的标识,而为了及时更新缓存中的数据,又需要对队列进行实时监测,因此,在对队列进行实时监测时,可以使用队列的消息通知功能,具体来说,在建立用于存储待更新数据信息的队列时,预先配置队列的消息通知功能,在队列中有新的待更新缓存数据的标识写入时,即通知对队列进行实时监测的进程(或者设备)从队列中获取待更新缓存数据的标识,从而可以避免对队列进行实时监测的进程不断监测队列中是否有待更新缓存数据的标识写入,降低系统开销。

步骤203,利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据。

在根据获取到的待更新缓存数据的标识,从数据库中查询到数据之后,即可利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据,也即将缓存中待更新缓存数据的标识对应的数据修改为从数据库中查询到的数据。

本发明实施例,通过将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据,进而利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据,利用队列的消息通知,在将待更新缓存数据的标识添加到队列中时,即触发从队列中获取待更新缓存数据的标识,进而根据获取到的待更新缓存数据的标识,从数据库中查询数据,并更新缓存数据,从而避免了周期更新缓存数据的性能瓶颈,降低了缓存数据更新的计算量,并能够及时更新缓存中的数据,同时在缓存中未查询到数据时,只需要将该数据对应的标识添加到用于存储待更新缓存数据信息的队列中,即可从数据库中查询数据并更新缓存中的数据,避免了通过缓存穿透到数据库中查询数据,提高了数据库的安全性。

具体实施步骤201时,在需要更新缓存中的数据时,将待更新缓存数据的标识添加到队列中。而为了能够及时的更新缓存中的数据,提高缓存中数据的有效性,本发明实施例中,将待更新缓存数据的标识添加到队列中,包括以下两种实施方式,具体来说:

实施方式一、在将目标数据写入数据库时,将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

本实施方式中,在将数据写入数据库时,同时将数据的标识作为待更新缓存数据的标识添加到队列中,队列中有待更新缓存数据的标识写入时,触发从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识从数据库中查询数据,更新缓存中该待更新缓存数据的标识对应的数据,从而在将数据写入数据库时,及时更新缓存中的数据,提高缓存中数据的有效性。

实施方式二、在缓存中查询目标数据且未查询到目标数据时,则将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

本实施例中,在缓存中查询数据且未查询到数据时,将数据的标识作为待更新缓存数据的标识添加到队列中,队列中有待更新缓存数据的标识写入时,触发从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识从数据库中查询数据,更新缓存中该待更新缓存数据的标识对应的数据,从而及时更新缓存中的数据,使得在下次从缓存中查询同样的数据时,能够查询到数据,而且在更新缓存中数据的过程中,无缓存穿透,可避免非法用户利用不存在的缓存数据的标识攻击数据库,提升了数据库的安全性。

具体实施步骤202时,从队列中获取待更新缓存数据的标识,根据获取到的待更新缓存数据的标识,从数据库中查询数据,包括:从队列中批量获取待更新缓存数据的标识;对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据。

在队列中有新的待更新缓存数据的标识写入时,通知对队列进行实时监测的进程(或者设备)从队列中获取待更新缓存数据的标识,但是具体实施时,从通知对队列进行实时监测的进程从队列中获取待更新缓存数据的标识的时刻,也即发出通知的时刻,到对队列进行实时监测的进程从队列中获取待更新缓存数据的标识的时刻之间存在一定的时间间隔,在这个时间间隔内,队列中可能还存在待更新缓存数据的标识写入,因此,在从队列中获取待更新数据的标识时,为了提高效率,较为优选地,本发明实施例,从队列中批量获取待更新缓存数据的标识。

由于从队列中批量获取待更新缓存数据的标识,而批量获取的待更新缓存数据的标识中可能存在重复的待更新缓存数据的标识,例如:短时间内同一个数据多次写入数据库或者短时间内从缓存中多次查询同一数据均为查询到数据,因此,在从队列中批量获取待更新缓存数据的标识之后,对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据,从而进一步提高更新缓存中数据的效率。

具体实施时,为了避免更新缓存中的数据时,使用繁杂的分支判断,例如:使用分支判断判断数据属于何种业务;再例如:使用分支判断数据属于何种商品,同时方便对批量获取到的缓存数据的标识进行归并处理,本发明实施例要求缓存中数据的标识包括两部分,具体来说,缓存中数据的标识包括:业务标识和数据标识,其中,业务标识用于标识数据所属的业务,例如:商品可以使用“product”,评论可以使用“comment”;而数据标识是缓存中数据的唯一标识,例如:缓存中商品编号为“P1111”的商品的数据标识可以使用“P1111”。业务标识和数据标识可以以特殊符号进行连接,例如:以业务标识为前缀部分,以数据标识为后缀部分,使用特殊符号“-”进行连接,则缓存中商品编号为“P1111”的缓存数据的标识即为“product-P1111”。

当然,在本发明其它实施例中,缓存中数据的标识也可以由一部分或者两个以上的部分组成,只要可以区分不同业务的不同数据即可。在本发明其它实施例中,待更新缓存数据的标识包括业务标识和数据标识时,数据标识也可以作为前缀部分,业务标识也可以作为后缀部分,而在连接业务标识和数据标识时,也可以使用其它的符号,也可以不使用符号。

本发明实施例缓存中数据的标识均包括:业务标识和数据标识,且数据标识为缓存中数据的唯一标识,则对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据,包括:对待更新缓存数据的数据标识进行归并处理,得到归并处理后的数据标识列表;针对归并处理后的数据标识列表中每个数据标识:根据该数据标识对应的业务标识以及预先配置的业务标识与数据刷新接口的对应关系,确定该数据标识对应的数据刷新接口,并调用确定出的数据刷新接口,从数据库中查询该数据标识对应的数据。

具体实施时,在对批量获取到的待更新缓存数据的标识进行归并处理时,对批量获取到的待更新缓存数据的数据标识进行归并处理,以去除重复的数据标识,得到归并处理后的数据标识列表。较为优选地,在对批量获取的待更新缓存数据的数据标识进行归并处理时,还可以以一定的规则对待更新缓存数据的数据标识进行排序,例如:以首字母的顺序对待更新缓存数据的数据标识进行排序。

在得到归并处理后的数据标识列表之后,针对归并处理后的数据标识列表中每个数据标识:根据该数据标识对应的业务标识以及预先配置的业务标识与数据刷新接口的对应关系,确定该数据标识对应的数据刷新接口,然后将数据标识传入数据刷新接口,调用数据刷新接口从数据库中查询该数据标识对应的数据。

较为优选地,数据刷新接口包括批量刷新接口,则在得到归并处理后的数据标识列表之后,获取归并处理后的数据标识列表中每个数据标识对应的业务标识,并对获取到的业务标识进行去重处理,得到去重处理后的业务标识列表,针对去重处理后的业务标识列表中的每个业务标识:根据该业务标识以及预先配置的业务标识与批量刷新接口的对应关系,确定该业务标识对应的批量刷新接口,然后基于归并处理后的数据标识列表,将归并处理后的数据标识列表中与该业务标识对应的所有数据标识以列表的形式传入确定出的批量刷新接口,调用批量刷新接口从数据库中查询传入的每个数据标识对应的数据。其中,缓存数据的数据标识是唯一的,但是缓存数据的业务标识并不是唯一的,也即每个业务标识可以对应多个数据标识,但是每个数据标识只能对应一个业务标识。

值得说明的是,具体实施时,本发明实施例可以要求每个接入缓存的业务在接入缓存时,提供注册消息,注册消息包括每个业务的业务标识与其数据刷新接口的对应关系,在接收到注册消息之后,从注册消息中获取每个业务的业务标识与其数据刷新接口的对应关系,并记录该对应关系作为预先配置的业务标识与数据刷新接口的对应关系。其中,数据刷新接口的调用参数为每个缓存数据的数据标识,数据刷新接口在获取到每个缓存数据的数据标识之后,根据获取到的缓存数据的数据标识从数据库中查询数据。

下面结合两个具体的实施例,对本发明实施例的缓存数据的更新方法进行说明。

作为较为具体的实施例,业务A接入缓存时,向后台(数据库和缓存所在终端设备的系统)提供注册信息,该注册信息包括业务A的业务标识以及业务A的数据刷新接口,后台记录业务A的业务标识以及业务A的数据刷新接口的对应关系。后台向数据库中写入业务A中商品B的数据x时,同时将数据x的业务标识和数据标识添加到用于存储待更新缓存数据信息的队列中,向队列中写入数据x的业务标识和数据标识的操作,触发从队列中获取数据x的业务标识和数据标识,在获取到数据x的业务标识和数据标识之后,根据预先存储的业务标识与数据刷新接口的对应关系,确定数据x的业务标识对应的数据刷新接口,将数据x的数据标识传入确定出的数据刷新接口,并调用数据刷新接口,从数据库中查询数据,利用查询到的数据更新缓存中待更新缓存数据x的标识对应的数据。

作为另一较为具体的实施例,在用户利用数据u的业务标识和数据标识从缓存中查询数据时,若在缓存中未查询到数据,则将数据u的业务标识和数据标识添加到用于存储待更新缓存数据信息的队列中,向队列中写入数据u的业务标识和数据标识的操作,触发从队列中获取数据u的业务标识和数据标识,在获取到数据u的业务标识和数据标识之后,根据预先存储的业务标识与数据刷新接口的对应关系,确定数据u的业务标识对应的数据刷新接口,将数据u的数据标识传入确定出的数据刷新接口,并调用数据刷新接口,从数据库中查询数据,利用查询到的数据更新缓存中数据u的标识对应的数据。

示例性设备

在介绍了本发明示例性实施方式的方法之后,接下来,参考图3描述本发明示例性实施方式的缓存数据的更新装置。

图3为本发明实施例提供的一种缓存数据的更新装置的结构示意图之一,如图3所示,可以包括如下单元:

处理单元301,用于将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中;

查询单元302,用于从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据;

更新单元303,用于利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据。

优选地,处理单元301,具体用于:在将目标数据写入数据库时,将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

优选地,处理单元301,具体用于:在缓存中查询目标数据且未查询到目标数据时,则将目标数据的标识作为待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中。

优选地,查询单元302,具体用于:

从队列中批量获取待更新缓存数据的标识;

对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据。

优选地,待更新缓存数据的标识包括:业务标识和数据标识;

则查询单元302对批量获取到的待更新缓存数据的标识进行归并处理,并根据归并处理后的待更新缓存数据的标识,从数据库中查询数据,具体用于:

对待更新缓存数据的数据标识进行归并处理,得到归并处理后的数据标识列表;

针对归并处理后的数据标识列表中每个数据标识:

根据该数据标识对应的业务标识以及预先配置的业务标识与数据刷新接口的对应关系,确定该数据标识对应的数据刷新接口,并调用确定出的数据刷新接口,从数据库中查询该数据标识对应的数据。

示例性设备

在介绍了本发明示例性实施方式的方法和装置之后,接下来,介绍根据本发明的另一示例性实施方式的缓存数据的更新装置。

所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

在一些可能的实施方式中,根据本发明的缓存数据的更新装置可以至少包括至少一个处理单元、以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的缓存数据的更新方法中的步骤。例如,所述处理单元可以执行如图2中所示的步骤201,将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,步骤202,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据,步骤203,利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据。

下面参照图4来描述根据本发明的这种实施方式的缓存数据的更新装置40。图4显示的缓存数据的更新装置40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图4所示,缓存数据的更新装置40以通用计算设备的形式表现。缓存数据的更新装置40的组件可以包括但不限于:上述至少一个处理单元401、上述至少一个存储单元402、连接不同系统组件(包括处理单元401和存储单元402)的总线403。

总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储单元402可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)4021和/或高速缓存存储器4022,还可以进一步包括只读存储器(ROM)4023。

存储单元402还可以包括具有一组(至少一个)程序模块4024的程序/实用工具4025,这样的程序模块4024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

缓存数据的更新装置40也可以与一个或多个外部设备404(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与缓存数据的更新装置40交互的设备通信,和/或与使得该缓存数据的更新装置40能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口405进行。并且,缓存数据的更新装置40还可以通过网络适配器406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器406通过总线403与缓存数据的更新装置40的其它模块通信。应当理解,尽管图中未示出,可以结合缓存数据的更新装置40使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

示例性程序产品

在一些可能的实施方式中,本发明提供的缓存数据的更新方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的缓存数据的更新方法中的步骤,例如,所述计算机设备可以执行如图2中所示的步骤201,将待更新缓存数据的标识添加到用于存储待更新缓存数据信息的队列中,步骤202,从队列中获取待更新缓存数据的标识,并根据获取到的待更新缓存数据的标识,从数据库中查询数据,步骤203,利用查询到的数据更新缓存中待更新缓存数据的标识对应的数据。

所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

如图5所示,描述了根据本发明的实施方式的缓存数据的更新装置的程序产品50,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。

此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

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