CN107644071A - 缓存更新方法、装置及数据存储系统 - Google Patents

缓存更新方法、装置及数据存储系统 Download PDF

Info

Publication number
CN107644071A
CN107644071A CN201710841667.8A CN201710841667A CN107644071A CN 107644071 A CN107644071 A CN 107644071A CN 201710841667 A CN201710841667 A CN 201710841667A CN 107644071 A CN107644071 A CN 107644071A
Authority
CN
China
Prior art keywords
target data
caching
data
database
renewal
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
CN201710841667.8A
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.)
Alibaba China Co Ltd
Original Assignee
Guangzhou I9Game 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 Guangzhou I9Game Information Technology Co Ltd filed Critical Guangzhou I9Game Information Technology Co Ltd
Priority to CN201710841667.8A priority Critical patent/CN107644071A/zh
Publication of CN107644071A publication Critical patent/CN107644071A/zh
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

本发明提供一种缓存更新方法、装置及数据存储系统,方法及装置应用于数据存储系统,数据存储系统包括数据库及缓存。方法包括:在接收到数据查询请求时,查询缓存中是否存在该数据查询请求对应的目标数据;若存在,检测数据库中存储的目标数据相对缓存中的目标数据是否有更新;若有更新,将所述数据库中存储的目标数据更新至所述缓存中。如此,既能够保证缓存数据更新的及时性,使用户从缓存中查询到的数据与数据库中一致,又能够避免缓存中同时更新多个数据对数据库负荷过大的问题。

Description

缓存更新方法、装置及数据存储系统
技术领域
本发明涉及数据存储技术领域,具体而言,涉及一种缓存更新方法、装置及数据存储系统。
背景技术
数据库查询中,用户可能使用相同的查询条件执行多次相同的查询操作。现有的数据库存储系统通常设置有用于数据交换的缓冲区域作为缓存,缓存用于存储用户近段时间的查询数据。当用户再次执行相同的查询时,可以直接从缓存中读取数据,而不必查询数据库。
使用缓存往往会面临缓存中的数据如何与数据库中的数据保持一致的问题。目前通常采用以下两种做法解决该问题:
第一,设置缓存过期时间,到达过期时间时缓存自动失效,当用户再次查询时需要重新在数据库中进行查询。然而,无论如何设置过期时间,总是会有一段时间缓存中的数据与数据库中的数据不一致。第二,记录所有查询时产生的缓存键并在数据库变化时根据记录的缓存键更新缓存。然而,当查询组合非常多时,缓存键也非常多,在根据记录的缓存键刷新数据的瞬间会对数据库造成巨大压力,进而影响数据存储系统的稳定。
发明内容
为了改善上述不足,本发明的目的在于提供一种缓存更新方法,应用于数据存储系统,所述数据存储系统包括数据库及缓存,所述方法包括:
在接收到数据查询请求时,查询所述缓存中是否存在该数据查询请求对应的目标数据;
若存在,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新;
若有更新,将所述数据库中存储的目标数据更新至所述缓存中。
本发明另一目的在于提供一种缓存更新装置,应用于数据存储系统,所述数据存储系统包括数据库及缓存,所述装置包括:
查询模块,用于在接收到数据查询请求时,查询所述缓存中是否存在该数据查询请求对应的目标数据;
更新检测模块,用于在所述缓存中存在该数据查询请求对应的目标数据时,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新;
缓存更新模块,用于在所述数据库中存储的目标数据相对所述缓存中的目标数据有更新时,将所述数据库中存储的目标数据更新至所述缓存中。
本发明的另一目的在与提供一种数据存储系统,所述数据存储系统包括数据库、缓存以及本发明提供的缓存更新装置。
本发明的另一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本发明提供的缓存更新方法。
相对于现有技术而言,本发明具有以下技术效果:
本发明提供的缓存更新方法、装置及数据存储系统,在查询到缓存中存在数据查询请求对应的目标数据时,检测数据库中存储的目标数据相对缓存中的目标数据是否有更新,若有更新,则更新缓存中与该数据查询请求对应的目标数据。通过上述设计,既能够保证用户查询到的数据与数据库中的数据一致,又能够避免同时更新多个目标数据对数据库造成的巨大压力。
附图说明
为了更清楚地说明本发明实施例的方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种数据存储系统的示意图;
图2为本发明实施例提供的一种缓存更新方法的流程示意图;
图3为图2所示步骤S120的一种子步骤示意图;
图4为图2所示步骤S120的又一种子步骤示意图;
图5为本发明实施例提供的一种缓存更新装置的功能模块框图。
图标:10-数据存储系统;100-数据库;200-缓存;300-缓存更新装置;310-查询模块;320-更新检测模块;330-缓存更新模块;340-时间更新模块;350-第一数据返回模块;360-第二数据返回模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和展示的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参阅图1,图1是本发明实施例提供的一种数据存储系统10的示意图,所述数据存储系统10包括数据库100、缓存200以及缓存更新装置300。其中,所述数据库100用于数据的长效存储,可以长时间地存储较大的数据量。所述缓存200可以进行较少量数据的高速读写。
在本实施例中,所述数据存储系统10可以是分布式系统,所述数据库100和缓存200可以设置于所述分布式系统中独立运行的电子设备中。例如,所述缓存200可以是分布式缓存组件(如,Redis、Memached等)。所述数据存储系统10也可以是一个独立的计算机系统或设备,所述数据库100、缓存200及缓存更新装置300可以是该计算机系统或设备中相对独立运行的部分。
请参阅图2,图2是本发明实施例提供的一种应用于图1所示数据存储系统10的缓存更新方法,下面对该方法的具体流程进行详细阐述。
步骤S110,在接收到数据查询请求时,查询所述缓存200中是否存在所述数据查询请求对应的目标数据。若所述缓存200中存在所述数据查询请求对应的目标数据,执行步骤S120。若所述缓存200中不存在所述数据查询请求对应的目标数据,执行步骤S140。
在本实施例中,当用户从所述数据存储系统10读取数据时,数据存储系统10会将数据库100中读写量较大的热数据加载至所述缓存200中,以便用户再次查询该热数据时直接从缓存200中读取,进而提高查询效率。
根据实际情况,数据存储系统10接收到用户终端向发送的数据查询请求时,会先查询所述缓存200中是否存储有与所述数据查询请求对应的目标数据。若所述缓存200中未存储与所述数据查询请求对应的目标数据,可以在所述数据库100中查询与所述数据查询请求对应的目标数据。针对查询到的目标数据,数据存储系统10将该目标数据加载至所述缓存200中,并返回给所述数据查询请求对应的用户终端。若所述缓存200中存储有与所述数据查询请求对应的目标数据,则判断是否需要更新所述缓存200中的该目标数据。
在本实施例中,缓存200中的数据可以键值对的形式存储,缓存200中的键值对又称缓存键。其中,键值对的键为数据查询请求中携带的查询语句(一条查询语句包括至少一个查询条件),所述键值对的值为该数据查询请求对应的目标数据。例如,基于数据查询请求中的查询语句x查询到的目标数据是y,针对此次查询,缓存200中记录的键值对的键为x,对应的值为y。
当缓存200以键值对的形式存储缓存数据时,步骤S110可以包括如下步骤:
在接收到数据查询请求时,获取所述数据查询请求中携带的查询语句;
以所述查询语句为键,查询所述缓存200中是否存在与所述键对应的值。
其中,若查询到所述缓存200中存在与所述键对应的值,查询到的值即为与所述数据查询请求对应的目标数据。
步骤S120,检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新。
其中,所述数据库100中存储的目标数据与所述缓存200中的目标数据均是指与所述数据查询请求对应的数据,但其中的具体信息可能有所不同。
例如,假设基于所述数据查询请求查询到的目标数据是一张列表,在这一情形下,所述数据库100中存储的目标数据或所述缓存200中的目标数据均是指该列表。当所述数据库100中存储的该列表中的信息发生变化时,所述数据库100中存储的该列表与所述缓存200中的该列表所包括的信息自然也变得不同。也即,所述数据库100中存储的列表相对所述缓存200中的列表有更新。
步骤S130,若所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新,将所述数据库100中存储的目标数据更新至所述缓存200中。
详细地,在检测到所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新的情况下,将所述数据库100中存储的更新后的目标数据加载至所述缓存200中,以替换所述缓存200中原本的目标数据。若无更新,则不对所述缓存200中的目标数据进行更新。
步骤S140,将所述数据库100中存储的目标数据加载至所述缓存200中,并将该目标数据返回给所述数据查询请求对应的用户终端。
在实际应用中,当查询条件较多时,可以组合得到大量的查询语句。也即,数据查询请求可能携带的查询语句的种类很多。对应地,缓存200中的缓存键也会有许多。通过上述设计,可以避免同时更新多个缓存键对数据库100造成的巨大负荷。
可选地,在本实施例中,步骤S120中检测所述数据库100中的目标数据相对所述缓存200中的该目标数据是否有更新的方式可以有多种。
例如图3所示,所述步骤S120可以包括步骤S121以及步骤S122两个子步骤。
步骤S121,检测记录的所述数据库100中的目标数据的更新时间是否晚于所述缓存200中记录的目标数据的加载时间。
步骤S122,若所述数据库100中的目标数据的更新时间晚于所述缓存200中记录的目标数据的加载时间,确定所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新。
其中,所述数据库100中的目标数据的更新时间即为所述数据库100中的目标数据发生变化的时间。在本实施例中,当所述数据库100中的某一数据发生变化时,可以记录该数据的变化时间,并将记录的变化时间与该数据相关联。
可选地,所述变化时间可以记录在所述数据库100中,也可以记录在缓存200中。本实施例优选为将变化时间记录在缓存200中,如此,既可以提高检测速度,又可以避免检测变化时间对数据库100性能造成影响。
所述缓存200中的目标数据的加载时间是指该目标数据从数据库100加载到缓存200的时间,并且是指当前时刻之前最近的一次加载发生的时间。
实施时,若检测到所述数据库100中存储的目标数据的更新时间晚于所述缓存200中记录的目标数据的加载时间,表明在当前时刻之前最近的一次加载之后,所述数据库100中存储的目标数据发生了变化。若检测到所述数据库100中的目标数据的更新时间早于或者等于所述缓存200中的目标数据的加载时间,则表明所述缓存200中的目标数据与所述数据库100中存储的目标数据一致,可以不必进行更新。
可选地,在所述步骤S120通过步骤S121及步骤S122实现的情况下,在步骤S130之后,所述方法还可以包括如下步骤:
更新记录的所述缓存200中的目标数据的加载时间。
详细地,更新记录的所述缓存200中的目标数据的加载时间是指将所述缓存200中的目标数据的加载时间更新为步骤S130的执行时间。
又例如图4所示,所述步骤S120可以包括步骤S123以及步骤S124两个子步骤。
步骤S123,检测记录的所述数据库100中的目标数据的标志位与所述缓存200中的目标数据的标志位是否相同。
步骤S124,若不同,则确定所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新。
在本实施例中,所述标志位随所述数据库100中的目标数据的变化而变化。其中,目标数据的标志位与该目标数据相关联。
作为一种实施方式,所述标志位可以为版本号。当所述数据库100中的目标数据发生变化时,该目标数据的版本号也随之变化。以上述目标数据是列表为例,假设所述数据库100中的列表当前版本号为A1,该列表加载至所述缓存200后,所述缓存200中的列表的版本号也是A1。当所述数据库100中的列表发生变化时,其版本号更新为A2,而所述缓存200中的列表的版本号仍旧为A1。
若用户在此时向所述数据存储系统10查询该列表,检测到的所述数据库100中的列表的版本号就与所述缓存200中的列表版本号不同,表明所述数据库100中的列表相对所述缓存200中的列表有更新。
作为另一种实施方式,所述标志位可以为所述数据库100中的目标数据的更新时间。假设数据库100中存储有数据data1,记录的所述数据库100最近一次更新data1的时间为t1,且缓存200中不存在data1。在这一情形下,当数据存储系统10接收到查询data1的数据查询请求时,会将所述数据库100中的data1加载至所述缓存200中,并记录t1作为标志位。
若另一用户终端U2再次查询data1,并且数据库100中存储的data1在用户终端U2进行该次查询前的t2时刻发生了更新,则记录的数据库100中的data1的更新时间变为由t1变为t2,相当于记录的数据库100中的data1的标志位由t1变为t2。然而,此时缓存200中的data1的标志位仍旧为t1,与数据库100中的data1的标志位不同。
若用户终端U2进行该次查询前数据库100中的data1未发生更新,那么所记录的数据库100中的data1的标志位仍旧为t1,与缓存200中的data1的标志位相同。
可选地,在本实施例中,所述缓存200中的目标数据的标志位记录在所述缓存200中。所述数据库100中的目标数据的标志位既可以记录在数据库100中,也可以记录在所述缓存200中。
其中,当所述数据库100中的目标数据的标志位记录在数据库100中时,可以直接记录在所述目标数据中。例如,当所述目标数据为列表时,所述标志位可以直接记录在该列表中。当所述数据库100中的该列表更新至所述缓存200中时,缓存200中记录的目标数据的标志位也随之发生改变,可以不必对缓存200中的目标数据的标志位进行额外的更新操作。
当所述数据库100中的目标数据的标志位记录在缓存200中时,在所述数据库100中的目标数据更新至所述缓存200中之后,也即,在步骤S130之后,所述方法还包括:
将所述缓存200中的目标数据的标志位更新为所述数据库100中的目标数据的标志位,以表征缓存200中的目标数据与数据库100中的目标数据一致。
可选地,在本实施例中,在接收到数据查询请求且检测到缓存200中存储有与数据查询请求对应的目标数据时,所述方法还可以包括如下步骤:
在检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新的同时,异步从所述缓存200中获取该目标数据并返回给所述数据查询请求对应的用户终端。
也即,在接收到数据查询请求时,若缓存200中存在与所述数据查询请求对应的目标数据,则立即将该目标数据返回给所述数据查询请求对应的用户终端,而不必管所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新,以及在有更新的情况下,所述缓存200中的目标数据是否完成更新。
在这一情形下,针对数据库100中的目标数据的每次更新,触发缓存200更新的用户所查询到的目标数据与数据库100中实际存储的目标数据可能不同,但能够保证绝大多数用户查询到的数据与数据库100中的数据一致,并且能在用户查询时立即返回数据给用户,用户体验更好。
此外,当数据库100中的目标数据相对缓存200中的目标数据没有更新时,缓存200中的目标数据本就与数据库100中的目标数据一致,也就没有必要等到检测完毕后再返回目标数据给用户。经发明人研究发现,在实际应用中,上述情形出现较多,因此,采用异步过程执行上述步骤只可能导致极少数用户所查询的数据不准确。
可选地,在接收到数据查询请求且检测到缓存200中存储有与数据查询请求对应的目标数据时,也可以先检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新。若无更新,则将缓存200中的目标数据返回给所述数据查询请求对应的用户终端。若有更新,则在将所述数据库100中存储的目标数据更新至所述缓存200中之后,再将所述缓存200中更新后的目标数据返回给所述数据查询请求对应的用户终端。
也即,在将所述数据库100存储的目标数据更新至所述缓存200中的步骤之后,所述方法还可以包括如下步骤:
从所述缓存200中获取更新后的目标数据并返回给所述数据查询请求对应的用户终端。
在这一情形下,检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新的步骤与将缓存200中的目标数据返回给数据查询请求对应的用户终端的步骤为同步过程。如此,可以保证每个用户从缓存200中获取到的数据都与数据库100中的数据一致,但每次查询都需要在检测有无更新后才将目标数据返回给用户,无法满足即时性。
通过上述设计,在用户每次查询时判断是否需要更新缓存200,能够保证用户查询到的数据与数据库100中的数据一致。每次更新时,至多更新用户该次查询的目标数据,更新数据量少,能够避免缓存键较多的情形下,同时更新大量数据对数据库100造成的巨大负荷。
此外,通过标志位、时间等标志数据来判断数据库100中的目标数据相对缓存200中的目标数据是否有更新,每次检测时只需读取目标数据的标志数据即可。然而通常情况下,数据库100中存储的目标数据(如,列表)的数据量远远大于标志数据。因此,通过上述设计,还可进一步降低数据库100的符合,提高数据存储系统10的性能。
如图5所示,本发明实施例还提供一种缓存更新装置300,所述缓存更新装置300包括查询模块310、更新检测模块320以及缓存更新模块330。
其中,所述查询模块310用于在接收到数据查询请求时,查询所述缓存200中是否存在所述数据查询请求对应的目标数据。
在本实施例中,关于所述查询模块310的描述具体可参考对图2所示步骤S110的详细描述,也即,步骤S110可由所述查询模块310执行。
可选地,在本实施例中,所述缓存200中的数据以键值对的形式存储,其中,键值对的键为数据查询请求中携带的查询语句,所述键值对的值为该数据查询请求对应的目标数据。
如此,所述查询模块310在接收到数据查询请求时,查询所述缓存200中是否存在该数据查询请求对应的目标数据的方式,可以包括:
在接收到数据查询请求时,获取该数据查询请求中携带的查询语句;
以所述查询语句为键,查询所述缓存200中是否存在与所述键对应的值。
所述更新检测模块320用于在所述缓存200中存在所述数据查询请求对应的目标数据时,检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新。
在本实施例中,关于所述更新检测模块320的描述具体可参考对图2所示步骤S120的详细描述,也即,步骤S120可由所述更新检测模块320执行。
可选地,在本实施例中,所述更新检测模块320检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新的方式,可以有多种。例如:
检测记录的所述数据库100中目标数据的更新时间与所述缓存200中记录的目标数据的加载时间是否相同,该加载时间是指目标数据从数据库100加载到缓存200的时间;
若不同,则确定所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新。
在这一情形下,所述缓存更新装置300还可以包括时间更新模块340,所述时间更新模块340用于在将所述数据库100中存储的目标数据更新至所述缓存200中之后,更新所述缓存200中记录的目标数据的加载时间。
又例如,所述更新检测模块320检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新的方式,可以包括:
检测记录的所述数据库100中目标数据的标志位与所述缓存200中的目标数据的标志位是否相同;
若不同,则确定所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新。
其中,目标数据的标志位可以为该目标数据的版本号或者为所述数据库100中的该目标数据发生变化的时间。
在本实施例中,当所述数据库100中的目标数据的标志位直接记录在所述数据库100的目标数据中时,若将数据库100中的目标数据更新至缓存200中的同时,缓存200中的目标数据的标志位也随之更新。而除此之外的其他情形,则需要在缓存200中的目标数据更新后,对缓存200中的目标数据的标志位进行更新,这一更新步骤也可通过上述时间更新模块340执行。
所述缓存更新模块330用于在所述数据库100中存储的目标数据相对所述缓存200中的目标数据有更新时,将所述数据库100中存储的目标数据更新至所述缓存200中。
在本实施例中,关于所述缓存更新模块330的描述具体可参考对图2所示步骤S130的详细描述,也即,步骤S130可由所述缓存更新模块330执行。
可选地,所述缓存更新装置300还可以包括第一数据返回模块350。所述第一数据返回模块350可以异步方式返回目标数据给用户终端,也可以同步方式返回目标数据给用户终端。
当以异步方式返回目标数据给用户终端时,所述第一数据返回模块350用于在检测所述数据库100中存储的目标数据相对所述缓存200中的目标数据是否有更新的同时,异步从所述缓存200中获取该目标数据并返回给所述数据查询请求对应的用户终端。
当以同步方式以异步方式返回目标数据给用户终端时,所述第一数据返回模块350用于在将所述数据库100存储的目标数据更新至所述缓存200中之后,从所述缓存200中获取更新后的目标数据并返回给所述数据查询请求对应的用户终端。
在本实施例中,关于所述第一数据返回模块350的描述具体可参考上述内容中对相关步骤的详细描述。
可选地,所述缓存更新装置300还可以包括第二数据返回模块360。
所述第二数据返回模块360用于在所述缓存200中不存在该目标数据时,将所述数据库100中存储的目标数据加载至所述缓存200中,并将该目标数据返回给所述数据查询请求对应的用户终端。
在本实施例中,关于所述第二数据返回模块360的描述具体可参考对图2所示步骤S140的详细描述,也即,步骤S140可以由所述加载返回模块执行。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被执行时实现本发明提供的缓存更新方法。
综上所述,本发明提供的缓存更新方法、装置及数据存储系统10,
在查询到缓存200中存在数据查询请求对应的目标数据时,检测数据库100中存储的目标数据相对缓存200中的目标数据是否有更新,若有更新,则更新缓存200中与该数据查询请求对应的目标数据。通过上述设计,既能够保证用户查询到的数据与数据库100中的数据一致,又能够避免同时更新多个目标数据对数据库100造成的巨大压力。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (20)

1.一种缓存更新方法,其特征在于,应用于数据存储系统,所述数据存储系统包括数据库及缓存,所述方法包括:
在接收到数据查询请求时,查询所述缓存中是否存在所述数据查询请求对应的目标数据;
若存在,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新;
若有更新,将所述数据库中存储的目标数据更新至所述缓存中。
2.根据权利要求1所述的方法,其特征在于,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的步骤,包括:
检测记录的所述数据库中的目标数据的更新时间是否晚于所述缓存中的目标数据的加载时间,该加载时间是指目标数据从数据库加载至缓存中的时间;
若是,则确定所述数据库中存储的目标数据相对所述缓存中的目标数据有更新。
3.根据权利要求2所述的方法,其特征在于,在将所述数据库中存储的目标数据更新至所述缓存中的步骤之后,所述方法还包括:
更新记录的所述缓存中的目标数据的加载时间。
4.根据权利要求1所述的方法,其特征在于,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的步骤,包括:
检测记录的所述数据库中的目标数据的标志位与所述缓存中的目标数据的标志位是否相同;
若不同,则确定所述数据库中存储的目标数据相对所述缓存中的目标数据有更新。
5.根据权利要求4所述的方法,其特征在于,目标数据的标志位为该目标数据的版本号或者为所述数据库中的该目标数据的更新时间。
6.根据权利要求1~5任一项所述的方法,其特征在于,当所述缓存中存在所述目标数据时,所述方法还包括:
在检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的同时,异步从所述缓存中获取该目标数据并返回给所述数据查询请求对应的用户终端。
7.根据权利要求1~5任一项所述的方法,其特征在于,在将所述数据库存储的目标数据更新至所述缓存中的步骤之后,所述方法还包括:
从所述缓存中获取更新后的目标数据并返回给所述数据查询请求对应的用户终端。
8.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
若所述缓存中不存在所述数据查询请求对应的目标数据,则将所述数据库中存储的目标数据加载至所述缓存中,并将该目标数据返回给所述数据查询请求对应的用户终端。
9.根据权利要求1~5任一项所述的方法,其特征在于,所述缓存中的数据以键值对的形式存储,其中,键值对的键为数据查询请求中携带的查询语句,所述键值对的值为该数据查询请求对应的目标数据;
在接收到数据查询请求时,查询所述缓存中是否存在所述数据查询请求对应的目标数据的步骤,包括:
在接收到数据查询请求时,获取所述数据查询请求中携带的查询语句;
以所述查询语句为键,查询所述缓存中是否存在与所述键对应的值。
10.一种缓存更新装置,其特征在于,应用于数据存储系统,所述数据存储系统包括数据库及缓存,所述装置包括:
查询模块,用于在接收到数据查询请求时,查询所述缓存中是否存在所述数据查询请求对应的目标数据;
更新检测模块,用于在所述缓存中存在所述数据查询请求对应的目标数据时,检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新;
缓存更新模块,用于在所述数据库中存储的目标数据相对所述缓存中的目标数据有更新时,将所述数据库中存储的目标数据更新至所述缓存中。
11.根据权利要求10所述的装置,其特征在于,所述更新检测模块检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的方式,包括:
检测记录的所述数据库中目标数据的更新时间是否晚于所述缓存中记录的目标数据的加载时间,该加载时间是指目标数据从数据库加载到缓存的时间;
若是,则确定所述数据库中存储的目标数据相对所述缓存中的目标数据有更新。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
时间更新模块,用于在将所述数据库中存储的目标数据更新至所述缓存中之后,更新记录的所述缓存中的目标数据的加载时间。
13.根据权利要求10所述的装置,其特征在于,所述更新检测模块检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的方式,包括:
检测记录的所述数据库中目标数据的标志位与所述缓存中的目标数据的标志位是否相同;
若不同,则确定所述数据库中存储的目标数据相对所述缓存中的目标数据有更新。
14.根据权利要求13所述的装置,其特征在于,目标数据的标志位为该目标数据的版本号或者为所述数据库中的该目标数据的更新时间。
15.根据权利要求10~14任一项所述的装置,其特征在于,所述装置还包括:
第一数据返回模块,用于在检测所述数据库中存储的目标数据相对所述缓存中的目标数据是否有更新的同时,异步从所述缓存中获取该目标数据并返回给所述数据查询请求对应的用户终端。
16.根据权利要求10~14任一项所述的装置,其特征在于,所述装置还包括:
第一数据返回模块,用于在将所述数据库存储的目标数据更新至所述缓存中之后,从所述缓存中获取更新后的目标数据并返回给所述数据查询请求对应的用户终端。
17.根据权利要求10~14任一项所述的装置,其特征在于,所述装置还包括:
第二数据返回模块,用于在所述缓存中不存在该目标数据时,将所述数据库中存储的目标数据加载至所述缓存中,并将该目标数据返回给所述数据查询请求对应的用户终端。
18.根据权利要求10~14任一项所述的装置,其特征在于,所述缓存中的数据以键值对的形式存储,其中,键值对的键为数据查询请求中携带的查询语句,所述键值对的值为该数据查询请求对应的目标数据;
所述查询模块在接收到数据查询请求时,查询所述缓存中是否存在该数据查询请求对应的目标数据的方式,包括:
在接收到数据查询请求时,获取该数据查询请求中携带的查询语句;
以所述查询语句为键,查询所述缓存中是否存在与所述键对应的值。
19.一种数据存储系统,其特征在于,所述数据存储系统包括数据库、缓存以及权利要求10~18任一项所述的缓存更新装置。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行时实现权利要求1~9任一项所述的方法。
CN201710841667.8A 2017-09-18 2017-09-18 缓存更新方法、装置及数据存储系统 Pending CN107644071A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710841667.8A CN107644071A (zh) 2017-09-18 2017-09-18 缓存更新方法、装置及数据存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710841667.8A CN107644071A (zh) 2017-09-18 2017-09-18 缓存更新方法、装置及数据存储系统

Publications (1)

Publication Number Publication Date
CN107644071A true CN107644071A (zh) 2018-01-30

Family

ID=61111657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710841667.8A Pending CN107644071A (zh) 2017-09-18 2017-09-18 缓存更新方法、装置及数据存储系统

Country Status (1)

Country Link
CN (1) CN107644071A (zh)

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108829743A (zh) * 2018-05-24 2018-11-16 平安科技(深圳)有限公司 缓存数据更新方法、装置、计算机设备以及存储介质
CN108959341A (zh) * 2018-04-04 2018-12-07 阿里巴巴集团控股有限公司 一种数据同步的方法、装置及设备
CN109063066A (zh) * 2018-07-20 2018-12-21 中国邮政储蓄银行股份有限公司 数据查询方法及装置、数据管理系统
CN109388656A (zh) * 2018-09-04 2019-02-26 中国建设银行股份有限公司 基于多级缓存的数据处理方法及系统、装置和存储介质
CN109542851A (zh) * 2018-11-30 2019-03-29 北京金山云网络技术有限公司 文件更新方法、装置及系统
CN109558421A (zh) * 2018-10-29 2019-04-02 中国建设银行股份有限公司 基于缓存的数据处理方法、系统、装置及存储介质
CN109657174A (zh) * 2018-12-25 2019-04-19 北京百度网讯科技有限公司 用于更新数据的方法和装置
CN109669878A (zh) * 2018-11-30 2019-04-23 环球雅途集团有限公司 一种最简化缓存数据操作方法
CN110008223A (zh) * 2019-03-08 2019-07-12 平安科技(深圳)有限公司 异步更新缓存的方法、装置、计算机设备和存储介质
CN110347707A (zh) * 2018-04-03 2019-10-18 艾玛迪斯简易股份公司 更新高速缓存数据
CN110515959A (zh) * 2019-07-25 2019-11-29 北京奇艺世纪科技有限公司 数据一致性实现方法、装置及可读存储介质
CN110633324A (zh) * 2019-09-18 2019-12-31 中化信息技术有限公司 用于同步数据的方法、装置、电子设备和计算机可读介质
CN110737680A (zh) * 2019-09-23 2020-01-31 贝壳技术有限公司 缓存数据管理方法、装置、存储介质及电子设备
CN110866045A (zh) * 2019-10-25 2020-03-06 广西英腾教育科技股份有限公司 一种数据并发统计方法、系统、介质及设备
CN111143711A (zh) * 2019-12-23 2020-05-12 贝壳技术有限公司 对象搜索方法及系统
CN111291079A (zh) * 2020-02-20 2020-06-16 京东数字科技控股有限公司 一种数据的查询方法和装置
CN111949725A (zh) * 2020-06-07 2020-11-17 中信银行股份有限公司 数据的查询方法、装置、电子设备及计算机可读存储介质
CN112883307A (zh) * 2021-02-03 2021-06-01 深圳市大成天下信息技术有限公司 一种缓存更新方法、装置和社交网络系统
CN112948399A (zh) * 2021-05-17 2021-06-11 太平金融科技服务(上海)有限公司深圳分公司 序列号生成方法、装置、计算机设备和存储介质
CN113010535A (zh) * 2021-03-12 2021-06-22 北京百度网讯科技有限公司 缓存数据的更新方法、装置、设备和存储介质
WO2021208228A1 (zh) * 2020-04-14 2021-10-21 苏宁易购集团股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN115576952A (zh) * 2022-11-14 2023-01-06 润芯微科技(江苏)有限公司 一种基于Unreal的车载安卓平台通信结构实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090401A (zh) * 2007-05-25 2007-12-19 金蝶软件(中国)有限公司 一种群集环境下的数据缓存方法及系统
CN104391862A (zh) * 2014-10-23 2015-03-04 北京锐安科技有限公司 一种缓存数据更新方法及装置
CN104657401A (zh) * 2014-10-21 2015-05-27 北京齐尔布莱特科技有限公司 一种web缓存的更新方法
CN106066877A (zh) * 2016-05-30 2016-11-02 北京皮尔布莱尼软件有限公司 一种异步更新数据的方法及系统
CN107038222A (zh) * 2017-03-24 2017-08-11 福建天泉教育科技有限公司 数据库缓存实现方法及其系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101090401A (zh) * 2007-05-25 2007-12-19 金蝶软件(中国)有限公司 一种群集环境下的数据缓存方法及系统
CN104657401A (zh) * 2014-10-21 2015-05-27 北京齐尔布莱特科技有限公司 一种web缓存的更新方法
CN104391862A (zh) * 2014-10-23 2015-03-04 北京锐安科技有限公司 一种缓存数据更新方法及装置
CN106066877A (zh) * 2016-05-30 2016-11-02 北京皮尔布莱尼软件有限公司 一种异步更新数据的方法及系统
CN107038222A (zh) * 2017-03-24 2017-08-11 福建天泉教育科技有限公司 数据库缓存实现方法及其系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JEFFREY F.HUGHES,等: "《Novell Netware 5网络指南》", 31 October 2000 *

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347707B (zh) * 2018-04-03 2024-06-28 艾玛迪斯简易股份公司 更新高速缓存数据
CN110347707A (zh) * 2018-04-03 2019-10-18 艾玛迪斯简易股份公司 更新高速缓存数据
WO2019192258A1 (zh) * 2018-04-04 2019-10-10 阿里巴巴集团控股有限公司 一种数据同步的方法、装置及设备
CN108959341A (zh) * 2018-04-04 2018-12-07 阿里巴巴集团控股有限公司 一种数据同步的方法、装置及设备
CN108959341B (zh) * 2018-04-04 2020-06-19 阿里巴巴集团控股有限公司 一种数据同步的方法、装置及设备
CN108829743A (zh) * 2018-05-24 2018-11-16 平安科技(深圳)有限公司 缓存数据更新方法、装置、计算机设备以及存储介质
CN109063066A (zh) * 2018-07-20 2018-12-21 中国邮政储蓄银行股份有限公司 数据查询方法及装置、数据管理系统
CN109063066B (zh) * 2018-07-20 2022-04-01 中国邮政储蓄银行股份有限公司 数据查询方法及装置、数据管理系统
CN109388656A (zh) * 2018-09-04 2019-02-26 中国建设银行股份有限公司 基于多级缓存的数据处理方法及系统、装置和存储介质
CN109558421A (zh) * 2018-10-29 2019-04-02 中国建设银行股份有限公司 基于缓存的数据处理方法、系统、装置及存储介质
CN109669878A (zh) * 2018-11-30 2019-04-23 环球雅途集团有限公司 一种最简化缓存数据操作方法
CN109542851A (zh) * 2018-11-30 2019-03-29 北京金山云网络技术有限公司 文件更新方法、装置及系统
CN109669878B (zh) * 2018-11-30 2021-04-02 环球雅途集团有限公司 一种最简化缓存数据操作方法
CN109657174A (zh) * 2018-12-25 2019-04-19 北京百度网讯科技有限公司 用于更新数据的方法和装置
CN109657174B (zh) * 2018-12-25 2023-06-02 北京百度网讯科技有限公司 用于更新数据的方法和装置
CN110008223A (zh) * 2019-03-08 2019-07-12 平安科技(深圳)有限公司 异步更新缓存的方法、装置、计算机设备和存储介质
CN110515959A (zh) * 2019-07-25 2019-11-29 北京奇艺世纪科技有限公司 数据一致性实现方法、装置及可读存储介质
CN110633324A (zh) * 2019-09-18 2019-12-31 中化信息技术有限公司 用于同步数据的方法、装置、电子设备和计算机可读介质
CN110633324B (zh) * 2019-09-18 2022-07-26 中化信息技术有限公司 用于同步数据的方法、装置、电子设备和计算机可读介质
CN110737680A (zh) * 2019-09-23 2020-01-31 贝壳技术有限公司 缓存数据管理方法、装置、存储介质及电子设备
CN110866045A (zh) * 2019-10-25 2020-03-06 广西英腾教育科技股份有限公司 一种数据并发统计方法、系统、介质及设备
CN111143711A (zh) * 2019-12-23 2020-05-12 贝壳技术有限公司 对象搜索方法及系统
CN111291079A (zh) * 2020-02-20 2020-06-16 京东数字科技控股有限公司 一种数据的查询方法和装置
WO2021208228A1 (zh) * 2020-04-14 2021-10-21 苏宁易购集团股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN111949725A (zh) * 2020-06-07 2020-11-17 中信银行股份有限公司 数据的查询方法、装置、电子设备及计算机可读存储介质
CN112883307A (zh) * 2021-02-03 2021-06-01 深圳市大成天下信息技术有限公司 一种缓存更新方法、装置和社交网络系统
CN112883307B (zh) * 2021-02-03 2023-10-20 深圳市大成天下信息技术有限公司 一种缓存更新方法、装置和社交网络系统
CN113010535A (zh) * 2021-03-12 2021-06-22 北京百度网讯科技有限公司 缓存数据的更新方法、装置、设备和存储介质
CN113010535B (zh) * 2021-03-12 2024-03-08 北京百度网讯科技有限公司 缓存数据的更新方法、装置、设备和存储介质
CN112948399B (zh) * 2021-05-17 2021-08-03 太平金融科技服务(上海)有限公司深圳分公司 序列号生成方法、装置、计算机设备和存储介质
CN112948399A (zh) * 2021-05-17 2021-06-11 太平金融科技服务(上海)有限公司深圳分公司 序列号生成方法、装置、计算机设备和存储介质
CN115576952A (zh) * 2022-11-14 2023-01-06 润芯微科技(江苏)有限公司 一种基于Unreal的车载安卓平台通信结构实现方法

Similar Documents

Publication Publication Date Title
CN107644071A (zh) 缓存更新方法、装置及数据存储系统
CN105549905B (zh) 一种多虚拟机访问分布式对象存储系统的方法
CN111737265B (zh) 区块数据访问方法、区块数据存储方法及装置
CN102047231A (zh) 数据存储和访问
CN104123238A (zh) 数据存储方法及装置
CN106326499B (zh) 一种数据处理方法及装置
CN109977129A (zh) 多级数据缓存方法及设备
CN104281535B (zh) 一种映射表在内存中的处理方法和装置
CN112181902B (zh) 数据库的存储方法、装置及电子设备
CN107273046B (zh) 一种基于固态盘阵列的数据处理方法及系统
CN110795363B (zh) 一种存储介质的热页预测方法和页面调度方法
CN104794228A (zh) 一种搜索结果提供方法及装置
CN103793439A (zh) 一种实时检索信息获取方法、装置及服务器
CN109683825A (zh) 一种存储系统在线数据压缩方法、装置及设备
CN105159602B (zh) 数据处理方法及存储设备
CN103841168B (zh) 数据副本更新方法及元数据服务器
CN107766258A (zh) 内存存储方法与装置、内存查询方法与装置
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
CN104834719A (zh) 应用于实时大数据场景下的数据库系统
CN110362776A (zh) 浏览器前端数据存储方法、装置、设备及可读存储介质
CN112035524B (zh) 列表数据查询方法、装置、计算机设备及可读存储介质
CN110874360A (zh) 一种基于固定容量的有序队列缓存方法及装置
CN103823634A (zh) 一种支持无随机写模式的数据处理方法及系统
CN111061654B (zh) 缓存刷新处理方法及装置和电子设备
CN108363773A (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
TA01 Transfer of patent application right

Effective date of registration: 20200526

Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province

Applicant after: Alibaba (China) Co.,Ltd.

Address before: 510000 Guangdong city of Guangzhou province Whampoa Tianhe District Road No. 163 Xiping Yun Lu Yun Ping square B radio tower 13 layer self unit 02 (only for office use)

Applicant before: GUANGZHOU UCWEB COMPUTER TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20180130

RJ01 Rejection of invention patent application after publication