数据更新方法、装置、电子设备及可读存储介质与流程

专利2022-06-29  84


本申请涉及数据处理技术领域,具体而言,涉及一种数据更新方法、装置、电子设备及可读存储介质。



背景技术:

现有技术中涉及到远程字典服务(remotedictionaryserver,简称redis)缓存的场景较多,redis缓存中可以缓存数据库中的数据字段,方便读写接口进行快速地读写操作。

然而,当数据库中的数据字段的具体值发生更新时,为了保持数据的一致性,需要对存有发生更新的数据字段的多个redis缓存分别逐个进行更新操作,使得数据更新的复杂度高、效率低。



技术实现要素:

本申请实施例的目的在于提供一种数据更新方法、装置、电子设备及可读存储介质,用以改善现有技术中数据更新的复杂度高、效率低的问题。

第一方面,本申请实施例提供了一种数据更新方法,用于更新至少一个缓存中的数据,所述方法包括:databus确定数据库中的预设数据字段更新;所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值。

在上述的实施方式中,利用databus来确定数据库中的预设数据字段更新,并且获取预设数据字段的具体数值的最新值;然后再利用databus查找存储有相同的预设数据字段的至少一个缓存,至少一个缓存均与该databus连接,在查找出至少一个缓存后,可以将至少一个缓存中的每个缓存的预设数据字段的具体值更新为最新数值。利用databus来一次性对多个缓存进行预设数据字段的数据更新,提高了数据更新的效率,降低了数据更新的复杂度。

在一个可能的设计中,在所述databus确定数据库中的预设数据字段更新之前,所述方法还包括:多个更新接口中的任一更新接口发送数据字段更新指令至所述数据库,以使所述数据库根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库更新的预设数据字段以及所述预设数据字段的最新值。

在上述的实施方式中,数据字段更新指令可以由多个更新接口中的任一更新接口发送向数据库,数据字段更新指令包括欲更新的预设数据字段以及预设数据字段的最新值。数据字段更新指令可以由用户触发,并经更新接口后直接向数据库传递。提高了数据字段更新指令的传输速度。

在一个可能的设计中,所述databus确定数据库中的预设数据字段更新,包括:接收所述数据库中的预设数据字段的当前值;将所述当前值与databus对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,其中,所述databus对应的预设数据字段的历史值为存储在所述databus对应的内存缓存区中的预设数据字段的预设历史时刻的值;若所述当前值与所述历史值不相同,确定所述数据库中的预设数据字段更新。

在上述的实施方式中,databus可以接收数据库中的预设数据字段的当前值,然后将当前值与存储在databus对应的内存缓存区中的预设数据字段的预设历史时刻的值进行比对,预设历史时刻为databus对应的内存缓存区中接收到预设数据字段的最新的一个时刻。若两者不相同,则说明数据库中的预设数据字段发生了更新,且该更新尚未被databus记录在对应的内存缓存区中。

在一个可能的设计中,所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值,包括:在所述数据库中的预设数据字段的值发生更新时,所述databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中;所述databus将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存,以进行所述至少一个缓存中预设数据字段的更新。

在上述的实施方式中,databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中,然后将时间最近的变化值同时发送给至少一个缓存,从而实现了与databus连接的多个缓存中的预设数据字段的更新。由于databus与存储预设数据字段的多个缓存之间的连接关系是预先确定的,因此,可以快速、高效地实现多个缓存中的预设数据字段的更新。

第二方面,本申请实施例提供了一种数据更新装置,用于更新至少一个缓存中的数据,所述装置包括:更新确定模块,用于通过databus确定数据库中的预设数据字段更新;数据字段更新模块,用于通过所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值。

在上述的实施方式中,利用databus来确定数据库中的预设数据字段更新,并且获取预设数据字段的具体数值的最新值;然后再利用databus查找存储有相同的预设数据字段的至少一个缓存,至少一个缓存均与该databus连接,在查找出至少一个缓存后,可以将至少一个缓存中的每个缓存的预设数据字段的具体值更新为最新数值。利用databus来一次性对多个缓存进行预设数据字段的数据更新,提高了数据更新的效率,降低了数据更新的复杂度。

在一个可能的设计中,所述装置还包括:更新指令发送模块,用于通过多个更新接口中的任一更新接口发送数据字段更新指令至所述数据库,以使所述数据库根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库更新的预设数据字段以及所述预设数据字段的最新值。

在上述的实施方式中,数据字段更新指令可以由多个更新接口中的任一更新接口发送向数据库,数据字段更新指令包括欲更新的预设数据字段以及预设数据字段的最新值。数据字段更新指令可以由用户触发,并经更新接口后直接向数据库传递。提高了数据字段更新指令的传输速度。

在一个可能的设计中,更新确定模块,具体用于接收所述数据库中的预设数据字段的当前值;将所述当前值与databus对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,其中,所述databus对应的预设数据字段的历史值为存储在所述databus对应的内存缓存区中的预设数据字段的预设历史时刻的值;若所述当前值与所述历史值不相同,确定所述数据库中的预设数据字段更新。

在上述的实施方式中,databus可以接收数据库中的预设数据字段的当前值,然后将当前值与存储在databus对应的内存缓存区中的预设数据字段的预设历史时刻的值进行比对,预设历史时刻为databus对应的内存缓存区中接收到预设数据字段的最新的一个时刻。若两者不相同,则说明数据库中的预设数据字段发生了更新,且该更新尚未被databus记录在对应的内存缓存区中。

在一个可能的设计中,所述数据字段更新模块,具体用于在所述数据库中的预设数据字段的值发生更新时,所述databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中;所述databus将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存,以进行所述至少一个缓存中预设数据字段的更新。

在上述的实施方式中,databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中,然后将时间最近的变化值同时发送给至少一个缓存,从而实现了与databus连接的多个缓存中的预设数据字段的更新。由于databus与存储预设数据字段的多个缓存之间的连接关系是预先确定的,因此,可以快速、高效地实现多个缓存中的预设数据字段的更新。

第三方面,本申请实施例提供了一种电子设备,包括上述第一方面或第一方面的任一可选的实现方式所述的方法。

第四方面,本申请提供一种可读存储介质,该可读存储介质上存储有可执行程序,该可执行程序被处理器运行时执行第一方面或第一方面的任一可选的实现方式所述的方法。

第五方面,本申请提供一种可执行程序产品,所述可执行程序产品在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

为使本申请实施例所要实现的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了现有技术进行数据更新的示意图;

图2示出了本申请实施例进行数据更新的示意图;

图3示出了本申请实施例提供的数据更新方法的流程示意图;

图4示出了图3中步骤s110的具体步骤的流程示意图;

图5示出了图3中步骤s120的具体步骤的流程示意图;

图6示出了本申请实施例提供的数据更新装置的示意性结构框图。

具体实施方式

在介绍本申请实施例之前,先对现有的技术方案进行简要说明:

多个更新接口110可以与至少一个缓存120连通,请参见图1,至少一个缓存120可以是一个缓存,也可以是多个缓存,即多个更新接口110可以与同一个缓存120连通,多个更新接口110还可以分别与不同的缓存120连通。至少一个缓存120与数据库130连通。

多个更新接口110中的每个更新接口可用于更新数据库130中的不同的数据字段,例如更新接口1用于更新数据库130中数据字段x的具体值,更新接口2用于更新数据库130中数据字段y的具体值,更新接口3用于更新数据库130中数据字段z的具体值。

更新接口110可以通过各自的更新指令来更新数据库130中对应的数据字段,更新指令可以由用户触发。不妨以更新接口1为例,更新接口1可以发送更新指令到数据库130,使得数据库130中的x的具体值由1更新为2。

更新接口1在更新过数据库130中的具体的数据字段x后,会查找与更新接口1连接的,且缓存有数据字段x的至少一个缓存;并且在查找到缓存有数据字段x的至少一个缓存后,更新接口1令对应的缓存中的数据字段x失效,以使该缓存能够从数据库130中获得新的数据字段x的具体值。

在一更新接口110令数据库130中的一数据字段的具体值发生更新后,还需要由该更新接口110逐个查找与该更新接口110连接的缓存120,并且令存有相同的数据字段的缓存120中的具体值也发生更新。由于需要更新接口110逐个查找与其连接的缓存,使得数据更新的复杂度较高,效率较低。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

请参见图2,在本申请实施例对应的数据更新方法所在的架构中,多个更新接口110可以与数据库130直接连通,数据库130与databus140连通,databus140与至少一个缓存120连通。

利用databus140来确定数据库130中的预设数据字段更新,并且获取具体数值的最新值;然后再利用databus140查找存储有相同的预设数据字段的至少一个缓存120;在查找出至少一个缓存120后,可以将至少一个缓存120中的每个缓存的预设数据字段的具体值更新为最新数值。利用databus140一次性对多个缓存120进行预设数据字段的数据更新,可提高数据更新的效率,降低数据更新的复杂度。

请参见图3,图3示出了本申请实施例提供的数据更新方法,该方法可以由电子设备执行,电子设备可以为服务器,该方法具体包括如下步骤s110至步骤s120:

步骤s110,databus140确定数据库130中的预设数据字段更新。

databus140是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。详情请参见图2,databus140与数据库130连通,可以实时检测数据库130中的某个预设数据字段是否发生更新。

在一种具体实施方式中,请参见图4,databus140确定数据库130中的预设数据字段是否更新的方式具体包括如下步骤s111至步骤s113:

步骤s111,接收所述数据库130中的预设数据字段的当前值。

databus140可以接收数据库130中的预设数据字段的当前值,当前值为存储在数据库130中的预设数据字段的最新时刻的值。

步骤s112,将所述当前值与databus140对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,若否,执行步骤s113。

其中,所述databus140对应的预设数据字段的历史值为存储在所述databus140对应的内存缓存区中的预设数据字段的预设历史时刻的值。上述的预设历史时刻为把预设数据字段的具体值存入内存缓存区的最新一次的时刻。

若当前值与历史值不相同,则表示存储在数据库130的预设数据字段的最新时刻的值与最新一次时刻存入内存缓存区的预设数据字段的具体值不同,即预设数据字段的具体值在存入内存缓存区后又发生了更新,因此,执行步骤s113。

步骤s113,确定所述数据库130中的预设数据字段更新。

databus140可以接收数据库130中的预设数据字段的当前值,然后将当前值与存储在databus140对应的内存缓存区中的预设数据字段的预设历史时刻的值进行比对,预设历史时刻为databus140对应的内存缓存区中接收到预设数据字段的最新的一个时刻。若两者不相同,则说明数据库130中的预设数据字段发生了更新,且该更新尚未被databus140记录在对应的内存缓存区中。

可选地,每次预设数据字段发生更新时,还可以带有每次更新指令对应的身份标识,预设数据字段更新过的具体数值以及更新指令的身份标识均可以存储在数据库130中。databus140可以通过获取预设数据字段所对应的更新指令的身份标识,并判断身份标识是否变化的方式来确定预设数据字段是否更新。

步骤s120,databus140获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus140连接的至少一个缓存120中的预设数据字段更新为所述最新值。

在确定数据库130发生了更新之后,databus140从数据库130获取预设数据字段的最新值,并且查找与databus140连接的,同时存储预设数据字段的至少一个缓存120,将上述缓存中的预设数据字段更新为最新值。

利用databus140来确定数据库130中的预设数据字段更新,并且获取预设数据字段的具体数值的最新值;然后再利用databus140查找存储有相同的预设数据字段的至少一个缓存120,至少一个缓存120均与该databus140连接,在查找出至少一个缓存120后,可以将至少一个缓存120中的每个缓存的预设数据字段的具体值更新为最新数值。利用databus140一次性对多个缓存120进行预设数据字段的数据更新,提高了数据更新的效率,降低了数据更新的复杂度。

在一种具体实施方式中,请参见图5,图5示出了步骤s120的具体步骤的流程示意图,具体包括步骤s121至步骤s122:

步骤s121,在所述数据库130中的预设数据字段的值发生更新时,所述databus140将所述数据库130中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus140对应的内存缓存区中。

请参见图2,不妨以更新接口2为例进行具体说明:

更新接口2在t1时刻将数据字段y的具体值由a0更新为a1,在t2时刻将数据字段y的具体值由a1更新为a2,在t3时刻将数据字段y的具体值由a2更新为a3,其中,t1时刻早于t2时刻,t2时刻早于t3时刻。databus140可以在与databus140对应的内存缓存区中按照时间顺序存储:

t1时刻,数据字段y的具体值为a1;

t2时刻,数据字段y的具体值为a2;

t3时刻,数据字段y的具体值为a3。

其中t3时刻为最新的时刻,由于在步骤s120中databus140获取到了预设数据字段的最新值,即a3便为数据库130中更新过的最新值。

步骤s122,所述databus140将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存120,以进行所述至少一个缓存120中预设数据字段的更新。

接上文的举例继续进行说明:

与databus140对应的内存缓存区中时间最近的变化值便为t3时刻的具体值a3,databus140将数据字段y的具体值a3向存储有数据字段y且与所述databus140连接的至少一个缓存120发送,从而可以实现缓存120中数据字段y的更新。由于databus140与存储预设数据字段的多个缓存120之间的连接关系是预先确定的,因此,可以快速、高效地实现多个缓存120中的预设数据字段的更新。

可选地,在步骤s110之前,所述方法还可以包括:多个更新接口110中的任一更新接口110发送数据字段更新指令至所述数据库130,以使所述数据库130根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库130更新的预设数据字段以及所述预设数据字段的最新值。

数据字段更新指令可以由多个更新接口110中的任一更新接口110发送向数据库130,数据字段更新指令包括欲更新的预设数据字段以及预设数据字段的最新值。数据字段更新指令可以由用户触发,并经更新接口110后直接向数据库130传递,提高了数据字段更新指令的传输速度。

请参见图6,图6示出了本申请实施例提供的数据更新装置,所述装置400包括:

更新确定模块410,用于通过databus140确定数据库130中的预设数据字段更新。

数据字段更新模块420,用于通过所述databus140获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus140连接的至少一个缓存120中的预设数据字段更新为所述最新值。

更新确定模块410,具体用于接收所述数据库130中的预设数据字段的当前值;将所述当前值与databus140对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,其中,所述databus140对应的预设数据字段的历史值为存储在所述databus140对应的内存缓存区中的预设数据字段的预设历史时刻的值;若所述当前值与所述历史值不相同,确定所述数据库130中的预设数据字段更新。

所述数据字段更新模块420,具体用于在所述数据库130中的预设数据字段的值发生更新时,所述databus140将所述数据库130中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus140对应的内存缓存区中;所述databus140将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存120,以进行所述至少一个缓存120中预设数据字段的更新。

所述装置还包括:

更新指令发送模块,用于通过多个更新接口110中的任一更新接口110发送数据字段更新指令至所述数据库130,以使所述数据库130根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库130更新的预设数据字段以及所述预设数据字段的最新值。

图6示出的数据更新装置与图3示出的数据更新方法相对应,在此便不做赘述。

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

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

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。


技术特征:

1.一种数据更新方法,其特征在于,用于更新至少一个缓存中的数据,所述方法包括:

databus确定数据库中的预设数据字段更新;

所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值。

2.根据权利要求1所述的方法,其特征在于,在所述databus确定数据库中的预设数据字段更新之前,所述方法还包括:

多个更新接口中的任一更新接口发送数据字段更新指令至所述数据库,以使所述数据库根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库更新的预设数据字段以及所述预设数据字段的最新值。

3.根据权利要求1所述的方法,其特征在于,所述databus确定数据库中的预设数据字段更新,包括:

接收所述数据库中的预设数据字段的当前值;

将所述当前值与databus对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,其中,所述databus对应的预设数据字段的历史值为存储在所述databus对应的内存缓存区中的预设数据字段的预设历史时刻的值;

若所述当前值与所述历史值不相同,确定所述数据库中的预设数据字段更新。

4.根据权利要求1所述的方法,其特征在于,所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值,包括:

在所述数据库中的预设数据字段的值发生更新时,所述databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中;

所述databus将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存,以进行所述至少一个缓存中预设数据字段的更新。

5.一种数据更新装置,其特征在于,用于更新至少一个缓存中的数据,所述装置包括:

更新确定模块,用于通过databus确定数据库中的预设数据字段更新;

数据字段更新模块,用于通过所述databus获取所述预设数据字段的最新值,并将存储有所述预设数据字段且与所述databus连接的至少一个缓存中的预设数据字段更新为所述最新值。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

更新指令发送模块,用于通过多个更新接口中的任一更新接口发送数据字段更新指令至所述数据库,以使所述数据库根据所述数据字段更新指令对所述预设数据字段进行更新,其中,所述数据字段更新指令包括欲令所述数据库更新的预设数据字段以及所述预设数据字段的最新值。

7.根据权利要求5所述的装置,其特征在于,

更新确定模块,具体用于接收所述数据库中的预设数据字段的当前值;

将所述当前值与databus对应的预设数据字段的历史值进行比对,判断所述当前值与所述历史值是否相同,其中,所述databus对应的预设数据字段的历史值为存储在所述databus对应的内存缓存区中的预设数据字段的预设历史时刻的值;

若所述当前值与所述历史值不相同,确定所述数据库中的预设数据字段更新。

8.根据权利要求5所述的装置,其特征在于,所述数据字段更新模块,具体用于在所述数据库中的预设数据字段的值发生更新时,所述databus将所述数据库中发生更新的预设数据字段更新后的变化值按照时间顺序存储在与databus对应的内存缓存区中;

所述databus将所述内存缓存区中时间最近的变化值发送给所述至少一个缓存,以进行所述至少一个缓存中预设数据字段的更新。

9.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行时执行如权利要求1-4任一项所述的方法。

10.一种可读存储介质,其特征在于,该可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1-4任一项所述的方法。

技术总结
本申请提供一种数据更新方法、装置、电子设备及可读存储介质,用于更新至少一个缓存中的数据,包括:Databus确定数据库中的预设数据字段更新;Databus获取预设数据字段的最新值,并将存储有预设数据字段且与Databus连接的至少一个缓存中的预设数据字段更新为最新值。利用Databus来确定数据库中的预设数据字段更新,并且获取预设数据字段的具体数值的最新值;然后再利用Databus查找存储有相同的预设数据字段的至少一个缓存,至少一个缓存均与该Databus连接,在查找出至少一个缓存后,可以将至少一个缓存中的每个缓存的预设数据字段的具体值更新为最新数值。利用Databus来一次性对多个缓存进行预设数据字段的数据更新,提高了数据更新的效率,降低了数据更新的复杂度。

技术研发人员:郭志昊
受保护的技术使用者:江苏满运软件科技有限公司
技术研发日:2020.02.12
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-25581.html

最新回复(0)