CN113779082A - 一种更新数据的方法和装置 - Google Patents

一种更新数据的方法和装置 Download PDF

Info

Publication number
CN113779082A
CN113779082A CN202110009562.2A CN202110009562A CN113779082A CN 113779082 A CN113779082 A CN 113779082A CN 202110009562 A CN202110009562 A CN 202110009562A CN 113779082 A CN113779082 A CN 113779082A
Authority
CN
China
Prior art keywords
data
cache data
cache
updating
source
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
CN202110009562.2A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110009562.2A priority Critical patent/CN113779082A/zh
Publication of CN113779082A publication Critical patent/CN113779082A/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/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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

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

Abstract

本发明公开了一种更新数据的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:通过创建新的数据缓存,利用管道模型将从数据源获取的待更新的目标缓存数据写入到新的数据缓存中,并删除旧的数据缓存完成数据更新;当接收数据查询请求时,在更新数据完成之前,由旧的缓存数据提供查询请求的返回数据,克服了由于更新数据过程中的数据动态变化导致的返回结果异常;同时利用管道模型更新数据,提高了数据更新的速度,进而克服了在更新数据过程中产生异常数据的问题。

Description

一种更新数据的方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种更新数据的方法和装置。
背景技术
在大型的应用系统中,通常使用缓存和数据源相结合的方式,通过缓存接收并处理数据查询请求以提高数据的访问效率,进而提高应用系统的性能和效率,还提高了应用系统数据的稳定性和容错能力;为了使缓存和数据源的数据同步,往往需要定期对缓存进行更新。
目前,在缓存中,当数以百万或千万的大批量数据需要更新时,更新的过程通常因为采用逐条更新数据的方法而持续一段时间,在更新数据未完成之前,存在查询该缓存所获取的返回数据结果异常的问题;并且由于更新时间较长,在更新的过程中,若由于网络或应用的原因导致出现了大量异常数据时,需要逐条检查并修复,耗时较长。
发明内容
有鉴于此,本发明实施例提供一种更新数据的方法和装置,能够通过创建新的数据缓存,利用管道模型将从数据源获取的待更新的目标缓存数据写入到新的数据缓存中,并删除旧的数据缓存完成数据更新;当接收查询请求时,在删除旧的数据缓存之前(即在更新数据完成之前),由旧的缓存数据提供查询请求的返回数据,克服了由于更新数据过程中的数据动态变化导致的返回结果异常;同时利用管道模型更新数据,提高了数据更新的速度,进而克服了在更新数据过程中产生异常数据的问题。
为实现上述目的,根据本发明实施例的一个方面,提供了一种更新数据的方法,其特征在于,包括:根据接收的更新当前缓存数据请求,确定当前缓存数据标识对应的第一缓存数据,确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
可选地,所述更新数据的方法,其特征在于,
确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据,还包括:确定所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据。
可选地,所述更新数据的方法,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据。
可选地,所述更新数据的方法,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:若所述第一数据源获取所述原始数据源的所述全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列获取所述增量数据。
可选地,所述更新数据的方法,其特征在于,
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述更新数据的方法,其特征在于,
删除所述第一缓存数据,还包括:在删除所述第一缓存数据之前,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述更新数据的方法,其特征在于,
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的对应值。
为实现上述目的,根据本发明实施例的第二方面,提供了一种更新数据的装置,其特征在于,包括:处理更新请求模块和执行数据更新模块;其中,
所述处理更新请求模块,用于根据接收的更新缓存数据请求,确定当前缓存数据标识对应的第一缓存数据;确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;
所述执行数据更新模块,用于创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
可选地,所述更新数据的装置,其特征在于,
确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据,还包括:确定所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据。
可选地,所述更新数据的装置,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据。
可选地,所述更新数据的装置,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:若所述第一数据源获取所述原始数据源的所述全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列获取所述增量数据。
可选地,所述更新数据的装置,其特征在于,
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述更新数据的装置,其特征在于,
删除所述第一缓存数据,还包括:在删除所述第一缓存数据之前,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述更新数据的装置,其特征在于,
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的对应值。
为实现上述目的,根据本发明实施例的第三方面,提供了一种更新数据的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述更新数据的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述更新数据的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过创建新的数据缓存,利用管道模型将从数据源获取的待更新的目标缓存数据写入到新的数据缓存中,并删除旧的数据缓存完成数据更新;当接收查询请求时,在删除旧的数据缓存之前(即在更新数据完成之前),由旧的缓存数据提供查询请求的返回数据,克服了由于更新数据过程中的数据动态变化导致的返回结果异常;同时利用管道模型更新数据,提高了数据更新的速度,进而克服了在更新数据过程中产生异常数据的问题。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一实施例提供的一种更新数据的方法的流程示意图;
图2是本发明一实施例提供的一种更新缓存数据的流程示意图;
图3是本发明一个实施例提供的一种查询缓存数据的流程示意图;
图4是本发明一个实施例提供的一种更新数据的装置的结构示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种更新数据的方法,该方法可以包括以下步骤:
步骤S101:根据接收的更新缓存数据的请求,确定当前缓存数据标识对应的第一缓存数据;确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据。
具体地,在一个应用系统中,通常需要定期更新缓存数据保证数据的一致性。当接收到更新缓存数据的请求时,首先确定当前缓存数据标识对应的第一缓存数据;第一缓存数据例如为Redis(Remote Dictionary Server,远程字典服务)缓存数据,本发明以Redis作为执行缓存的工具;并且,选择性地,第一缓存数据以哈希表的数据结构存储。
进一步地,获取所述当前缓存标识以及对应值,其中,例如所述当前缓存数据标识以及对应值是以键值对的形式存储的,本发明对当前缓存数据标识以及对应值的具体格式和具体内容不做限定。在如下示例键值对<”current-data-key”:”userinfo-12345-2019”>中,其中,current-data-key为当前缓存数据标识;userinfo-12345-2019为对应的第一缓存数据,当接收更新缓存数据的请求时,确定当前缓存数据标识对应的第一缓存数据为userinfo-12345-2019;userinfo-12345-2019为第一缓存数据的标识,在下文的描述中,“userinfo-12345-2019”即代表第一缓存数据,例如:“userinfo-12345-2019”代表一个哈希表结构的数据表,本发明对第一缓存数据(标识)的具体内容不做限定;进一步地,获取第一缓存数据对应的第一数据源,并从第一数据源中获取需要更新的数据(即目标缓存数据);即,所述第一数据源包含更新的目标缓存数据。
进一步地,所述第一数据源可以为元数据,元数据具有对应的原始数据源(例如:MySQL数据库等),元数据(metadata)为关于数据的数据,元数据一般对应的是结构化数据(例如:MySQL数据库等),利用元数据来描述数据资源后,有利于为资源提供灵活的检索以及在不同系统之间进行数据交换等。关于元数据的标准和使用方法为现有技术,本发明对元数据不再赘述。进一步地,原始数据源包含目标缓存数据,即,确定所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据;再进一步地,原始数据源可以是一个或者多个,例如:原始数据源A提供全量数据、原始数据源B提供部分数据、原始数据源(也可以为增量数据源)C提供增量数据;可以理解的是,目标缓存数据的数据数量第一缓存数据中现有的数据数量可以为不一致;目标缓存数据的内容与第一缓存数据中现有的数据内容的重合度可以是0%到100%;即,所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据;所述原始数据源提供部分数据、全量数据(即原始数据源所包含的全部数据)中的任意一种或多种;根据部分和/或全量数据组成目标缓存数据。另外,在原始数据源提供了全量数据后,又接收到新的增量数据,并且增量数据需要被缓存,则第一数据源通过消息队列获取增量数据,即,若所述第一数据源获取所述原始数据源的所述全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列从获取所述增量数据;通过该方法可以保证第一数据源与原始数据源同步的过程中,原始数据源接收了新增数据而造成的数据不一致的情况。
步骤S102:创建第二缓存数据,利用管道模型将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据作为所述当前缓存数据。
具体地,如步骤S101所描述,获取目标缓存数据后,执行数据更新,首先创建第二缓存数据,例如:第二缓存数据的标识为“userinfo-12345-2020”,在下文的描述中,“userinfo-12345-2020”即代表第二缓存数据,该标识可以根据设定规则动态生成的,优选地,取第一缓存数据标识的内容结合当前时间信息等,本发明对第二缓存数据标识的具体内容不做限定;在本申请中,第一缓存数据指示为旧的待更新的缓存数据,第二缓存数据为新创建的包含更新数据的缓存数据。
进一步地,利用管道模型将目标缓存数据写入第二缓存数据(userinfo-12345-2020),其中,管道模型是通过管道技术实现的,管道技术可以一次性发送多条命令并在执行完后一次性将结果返回,通过减少客户端与Redis的通信次数来实现降低往返延时时间,而且管道技术实现的原理是队列,从而保证数据的顺序性;尤其适用于海量数据的传输,例如:当数据量为10万或100万时,数据更新可以瞬间(微妙级或毫秒级)完成;利用管道模型更新数据可以使用如下示例的函数方法:Pipeline.hMSet(“userinfo-12345-2020”,”目标缓存数据的标识”);由此可见,利用管道模型,和现有的第一缓存数据更新数据(对第一缓存数据进行更新数据时,利用数据库写入方法,逐条地执行数据的更新)的方法对比,提高了更新数据的速度。
进一步地,在完成第二缓存数据的数据更新(写入)之后,删除第一缓存数据,并将所述第二缓存数据作为所述当前缓存数据;例如,步骤S101键值对示例中<”current-data-key”:”userinfo-12345-2019”>,userinfo-12345-2019为第一缓存数据;在本步骤中,在缓存数据更新之后,删除userinfo-12345-2019,以释放空间和资源,进一步地,并将第二缓存数据作为所述当前缓存数据,即设置键值对的值为<”current-data-key”:”userinfo-12345-2020”>;即,存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的关联值。
进一步地,在执行上述缓存数据更新的过程中,接收到数据查询的请求时,处理请求的方法如下:
1)在删除所述第一缓存数据之前,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识所关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述请求的返回数据。具体地,当删除第一缓存数据时,表示缓存数据更新已完成,相反地,在缓存数据更新的过程中,接收到数据查询当前缓存数据请求(例如:请求中包含current-data-key),利用”current-data-key”:”userinfo-12345-2019”的对应关系,确定被查询的当前缓存数据为第一缓存数据,则利用第一缓存数据(userinfo-12345-2019)提供返回数据,由于在更新过程中,对第一缓存数据不存在读写操作以及数据变更,由此提高了返回数据的正确性,降低了数据异常的风险。
2)在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。具体地,在删除所述第一缓存数据之后(即更新缓存数据已完成),若接收到数据查询当前缓存数据(例如:请求中包含current-data-key)请求,利用<”current-data-key”:”userinfo-12345-2020”>的对应关系,确定被查询的当前缓存数据为第二缓存数据则利用第二缓存数据(例如:userinfo-12345-2020)提供返回数据。
如图2所示,本发明实施例提供了一种更新缓存数据的方法,该方法可以包括以下步骤:
步骤S201:接收更新当前缓存数据的请求。
具体地,根据接收的更新当前缓存数据的请求,确定当前缓存数据标识对应的第一缓存数据;关于确定当前缓存数据标识对应的第一缓存数据的具体描述与步骤S101的描述一致,在此不再赘述。
步骤S202:确定对应于第一缓存数据对应的目标缓存数据。
具体地,确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;其中,获取所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据。关于第一数据源和对应的原始数据源的描述与步骤S101的描述一致,在此不再赘述。
步骤S203:第一数据源从原始数据源获取全量数据。
具体地,第一数据源从原始数据源获取全量数据作为目标缓存数据的一部分,即,所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据。具体地,关于从原始数据源获取全量数据、部分数据的描述与步骤S101的描述一致,在此不再赘述。
步骤S204:第一数据源从增量数据源获取增量数据。
具体地,若所述第一数据源获取所述原始数据源的全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列从获取所述增量数据。关于增量数据的描述与步骤S101的描述一致,在此不再赘述。
步骤S205:将目标缓存数据写入第二缓存数据,完成更新缓存数据。
具体地,创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据。关于创建第二缓存数据并写入缓存数据的描述与步骤S102的描述一致,在此不再赘述。
步骤S206:删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
具体地,将所述第二缓存数据与所述当前缓存数据标识关联的具体描述与步骤S102的描述一致,在此不再赘述。
如图3所示,本发明实施例提供了一种查询缓存数据的方法,该方法可以包括以下步骤;
步骤S301:接收查询当前缓存数据的请求。
具体地,接收当前缓存数据的请求,根据当前缓存数据的标识所对应的值,确定为请求提供返回数据的缓存数据的标识;关于当前缓存数据标识与第一缓存数据或第二缓存数据关联的描述与步骤S101的描述一致,在此不再赘述。
步骤S302:数据更新前和过程中,从第一缓存数据获取返回数据。
具体地,在数据更新前以及数据更新过程中(即在删除所述第一缓存数据之前),当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述请求的返回数据。关于数据更新前和过程中处理缓存数据查询请求的描述与步骤S102的描述一致,在此不再赘述。
步骤S303:数据更新后,从第二缓存数据获取返回数据。
具体地,在数据更新完成后,删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的关联值。
进一步地,在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。关于数据更新后处理缓存数据查询请求的描述与步骤S102的描述一致,在此不再赘述。
如图4所示,本发明实施例提供了一种更新数据的装置400,其特征在于,包括:处理更新请求模块401和执行数据更新模块402;其中,
所述处理更新请求模块401,用于根据接收的更新缓存数据的请求,确定当前缓存数据标识对应的第一缓存数据;确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;
所述执行数据更新模块402,用于创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
可选地,所述处理更新请求模块401,还用于确定所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据。
可选地,所述处理更新请求模块401,包括所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据。
可选地,所述处理更新请求模块401,包括若所述第一数据源获取所述原始数据源的所述全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列获取所述增量数据。
可选地,所述执行数据更新模块402,还用于删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述执行数据更新模块402,还用于在删除所述第一缓存数据之前,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述查询请求的返回数据。
可选地,所述执行数据更新模块402,还用于存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的对应值。
本发明实施例还提供了一种更新数据的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图5示出了可以应用本发明实施例的更新数据的方法或更新数据的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种客户端应用,例如管理数据源的客户端应用等。
终端设备501、502、503可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的更新缓存数据请求进行处理,并利用更新后的缓存数据提供来自终端设备的查询请求的返回数据。
需要说明的是,本发明实施例所提供的更新数据的方法一般由服务器505执行,相应地,更新数据的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括处理更新请求模块和执行数据更新模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,执行数据更新模块还可以被描述为“创建新的缓存数据完成数据更新,删除旧的缓存数据的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据接收的更新当前缓存数据请求,确定当前缓存数据标识对应的第一缓存数据,确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
由此可见,本发明实施例提供的更新数据的方法和装置,能够通过创建新的数据缓存,利用管道模型将从数据源获取的待更新的目标缓存数据写入到新的数据缓存中,并删除旧的数据缓存完成数据更新;当接收查询请求时,在删除旧的数据缓存之前(即在更新数据完成之前),由旧的缓存数据提供查询请求的返回数据,克服了由于更新数据过程中的数据动态变化导致的返回结果异常;同时利用管道模型更新数据,提高了数据更新的速度,进而克服了在更新数据过程中产生异常数据的问题。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种更新数据的方法,其特征在于,包括:
根据接收的更新当前缓存数据请求,确定当前缓存数据标识对应的第一缓存数据,确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;
创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
2.根据权利要求1所述的方法,其特征在于,
确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据,还包括:
确定所述第一数据源对应的原始数据源,所述第一数据源从所述原始数据源获取更新的所述目标缓存数据。
3.根据权利要求2所述的方法,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:
所述第一数据源通过至少一个所述原始数据源获取所述目标缓存数据,根据所述原始数据源提供的部分数据和/或全量数据,组成所述目标缓存数据。
4.根据权利要求3所述的方法,其特征在于,
所述第一数据源从所述原始数据源获取更新的所述目标缓存数据,还包括:
若所述第一数据源获取所述原始数据源的所述全量数据后,所述原始数据源接收了增量数据,所述第一数据源通过消息队列获取所述增量数据。
5.根据权利要求1所述的方法,其特征在于,
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:
在删除所述第一缓存数据之后,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第二缓存数据,并从所述第二缓存数据中获取对应于所述查询请求的返回数据。
6.根据权利要求5所述的方法,其特征在于,
删除所述第一缓存数据,还包括:
在删除所述第一缓存数据之前,当接收查询所述当前缓存数据的请求时,确定所述当前缓存数据标识关联的所述第一缓存数据,并从所述第一缓存数据中获取对应于所述查询请求的返回数据。
7.根据权利要求1-6任一所述的方法,其特征在于
删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联,包括:
存储所述当前缓存标识以及对应值,在删除所述第一缓存数据之后,存储第二缓存数据的标识作为所述当前缓存数据标识的对应值。
8.一种更新数据的装置,其特征在于,包括:处理更新请求模块和执行数据更新模块;其中,
所述处理更新请求模块,用于根据接收的更新缓存数据请求,确定当前缓存数据标识对应的第一缓存数据;确定第一缓存数据对应的第一数据源,所述第一数据源包含更新的目标缓存数据;
所述执行数据更新模块,用于创建第二缓存数据,利用管道模型,将所述第一数据源包含的所述目标缓存数据写入所述第二缓存数据;删除所述第一缓存数据,并将所述第二缓存数据与所述当前缓存数据标识关联。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202110009562.2A 2021-01-05 2021-01-05 一种更新数据的方法和装置 Pending CN113779082A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110009562.2A CN113779082A (zh) 2021-01-05 2021-01-05 一种更新数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110009562.2A CN113779082A (zh) 2021-01-05 2021-01-05 一种更新数据的方法和装置

Publications (1)

Publication Number Publication Date
CN113779082A true CN113779082A (zh) 2021-12-10

Family

ID=78835401

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110009562.2A Pending CN113779082A (zh) 2021-01-05 2021-01-05 一种更新数据的方法和装置

Country Status (1)

Country Link
CN (1) CN113779082A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887399A (zh) * 2010-06-28 2010-11-17 北京用友政务软件有限公司 服务器端无障碍存取高速缓存数据的方法
CN106294205A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 缓存数据处理方法及装置
US20180262566A1 (en) * 2016-01-29 2018-09-13 Huawei Technologies Co., Ltd. Caching Method and System Based on Cache Cluster
CN110633296A (zh) * 2018-05-31 2019-12-31 北京京东尚科信息技术有限公司 数据查询方法、装置、介质及电子设备
CN111147599A (zh) * 2019-12-31 2020-05-12 北京奇艺世纪科技有限公司 缓存数据的更新方法、装置、服务器及存储介质
CN112131260A (zh) * 2020-09-30 2020-12-25 中国民航信息网络股份有限公司 一种数据查询方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101887399A (zh) * 2010-06-28 2010-11-17 北京用友政务软件有限公司 服务器端无障碍存取高速缓存数据的方法
CN106294205A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 缓存数据处理方法及装置
US20180262566A1 (en) * 2016-01-29 2018-09-13 Huawei Technologies Co., Ltd. Caching Method and System Based on Cache Cluster
CN110633296A (zh) * 2018-05-31 2019-12-31 北京京东尚科信息技术有限公司 数据查询方法、装置、介质及电子设备
CN111147599A (zh) * 2019-12-31 2020-05-12 北京奇艺世纪科技有限公司 缓存数据的更新方法、装置、服务器及存储介质
CN112131260A (zh) * 2020-09-30 2020-12-25 中国民航信息网络股份有限公司 一种数据查询方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卢满怀;: "基于GPS的"滑行车"游艺机运行参数测量系统设计", 电气自动化, no. 04, 15 July 2009 (2009-07-15) *

Similar Documents

Publication Publication Date Title
CN110019350B (zh) 基于配置信息的数据查询方法和装置
CN109657174B (zh) 用于更新数据的方法和装置
CN108011949B (zh) 用于获取数据的方法和装置
CN111338834B (zh) 数据存储方法和装置
CN113190517B (zh) 数据集成方法、装置、电子设备和计算机可读介质
CN111241189A (zh) 一种同步数据的方法和装置
CN112948498A (zh) 一种分布式系统全局标识的生成方法和装置
CN116737662A (zh) 业务数据处理的方法、装置、电子设备和存储介质
CN109614383B (zh) 数据复制方法、装置、电子设备及存储介质
CN115982148A (zh) 数据库表的处理方法、装置、电子设备和存储介质
CN112148705A (zh) 数据迁移的方法和装置
CN116049142A (zh) 数据处理方法、装置、电子设备及存储介质
CN113420400B (zh) 一种路由关系建立方法、请求处理方法、装置及设备
CN113076343B (zh) 数据查询方法、装置、设备及存储介质
CN113779082A (zh) 一种更新数据的方法和装置
CN113760928A (zh) 一种缓存数据更新系统和方法
CN113127430B (zh) 镜像信息处理方法、装置、计算机可读介质及电子设备
CN109087097B (zh) 一种更新链码同一标识的方法和装置
CN112711572A (zh) 适用于分库分表的在线扩容方法和装置
CN113760861A (zh) 一种数据迁移的方法和装置
CN113742376A (zh) 一种同步数据的方法、第一服务器以及同步数据的系统
CN113779048A (zh) 一种数据处理方法和装置
CN113268488B (zh) 数据持久化的方法和装置
CN111581930A (zh) 在线表格数据处理方法、装置、电子设备和可读介质
CN113760860B (zh) 一种数据读取方法和装置

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