CN106066877A - 一种异步更新数据的方法及系统 - Google Patents
一种异步更新数据的方法及系统 Download PDFInfo
- Publication number
- CN106066877A CN106066877A CN201610371514.7A CN201610371514A CN106066877A CN 106066877 A CN106066877 A CN 106066877A CN 201610371514 A CN201610371514 A CN 201610371514A CN 106066877 A CN106066877 A CN 106066877A
- Authority
- CN
- China
- Prior art keywords
- caching
- data
- target data
- caching system
- target
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/235—Update request formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种异步更新数据的方法及系统,涉及数据处理领域。所述方法:S1,接收到服务器发出获取目标数据的请求,判断缓存系统中是否存储目标数据,如果是,则进入S2;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后返回S1;S2,从缓存系统中获取缓存目标数据,向发出请求的服务器发送缓存的目标数据;同时,判断缓存的目标数据的缓存是否过期,如果是,则发送消息到缓存更新服务器,更新缓存系统中的缓存数据,如果否,则返回S2继续判断。本发明所述方法保证目标缓存数据一直存在于缓存系统中,通过另一个应用程序来更新缓存,这样缓存系统会一直有效并及时更新。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种异步更新数据的方法及系统。
背景技术
为提高站点和web应用程序的响应速度,改善客户的用户体验,缓存的使用是最常见也是最有效的技术,通常是将大的且使用频率较高的数据形成缓存,实现空间换取时间,所以在网站和应用程序的设计中如何合理的使用缓存显得尤为重要,其中,缓存数据的实效性就是其中的关键因素。
现有缓存技术中一般使用相对过期或绝对过期方式,这样可能会造成在同一时间点大量缓存数据集体失效的现象,一旦缓存数据过期,web服务将直接从数据存储设备中读取,而这种方式导致数据源服务器压力倍增,使web服务在该时间点访问较慢。
发明内容
本发明的目的在于提供一种异步更新数据的方法及系统,从而解决现有技术中存在的前述问题。
为了实现上述目的,本发明所述异步更新数据的方法,该方法包括:
S1,接收到服务器发出获取目标数据的请求,判断缓存系统中是否存储目标数据,如果是,则进入S2;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后返回S1;
S2,从缓存系统中获取缓存目标数据,向发出请求的服务器发送缓存的目标数据;同时,判断缓存的目标数据的缓存有效期是否过期,如果是,则发送消息到缓存更新服务器,更新缓存系统中的缓存数据,如果否,则返回S2继续判断。
优选地,从发出请求目标数据的服务器接收目标数据,分析所述目标数据,并获得所述目标数据的关键代码,判断缓存系统中是否存在与所述关键代码存在一一映射的数据,如果是,则缓存系统中存储目标数据,如果否,则缓存系统未存储目标数据。
优选地,在步骤S1之前,所述缓存系统中至少存储一个长有效期的数据。
优选地,步骤S2中,判断缓存的目标数据的缓存有效期是否过期,具体按照下述方法实现:获取缓存系统中存储的缓存目标数据的有效期,判断当前时间是否在所述有效期内,如果是,则所述缓存目标的缓存有效期没有过期,如果否,则所述缓存目标的缓存过期。
优选地,步骤S2,所述缓存更新服务器,更新缓存系统中的缓存数据,具体按照下述步骤实现:
缓存系统将过期的缓存目标数据以消息的形式发送到缓存更新服务器,所述缓存更新服务器判断接收到的缓存目标数据中携带的key是否已经被缓存,
如果是,则将该缓存目标数据存储到缓存系统中,并继续判断下一个消息;
如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,并继续判断下一个消息,直至完成缓存系统中数据的更新为止。
优选地,所述缓存系统为分布式缓存服务器。
本发明所述实现所述异步更新数据的方法的系统,所述系统包括:发出目标数据请求的请求服务器、缓存系统、第一判断模块、第二判断模块、更新模块和发送模块;
所述第一判断模块,判断缓存系统中是否存储目标数据,如果是,则将缓存系统中存储的缓存目标数据发送给发送模块;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后继续判断下一条请求中的目标数据在缓存系统中是否存在,直至向发出请求的服务器发送缓存的目标数据为止;
所述第二判断模块,判断缓存系统中存储的缓存目标数据的缓存是否过期,如果是,则发送消息到更新模块,更新缓存系统中的缓存数据,如果否,则继续判断下一条消息中的缓存数据是否过期;
更新模块,对缓存系统中的缓存数据进行更新;
发送模块,将缓存系统中存储的目标缓存数据发送给请求服务器。
本发明的有益效果是:
本发明所述方法保证目标缓存数据一直存在于缓存系统中,通过另一个应用程序来更新缓存,这样缓存系统会一直有效并及时更新。
通过消息队列来保证消息的同步,使缓存及时更新并能解耦业务和数据的更新,使web服务器和处理缓存的服务隔离,减少web服务器的压力。其中Rabbit MQ是一种高可用的消息队列,并且支持集群部署的中间件。
附图说明
图1是异步更新数据的方法流程示意图;
图2是缓存更新服务器更新缓存数据的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例
本实施例所述异步更新数据的方法,该方法包括:
S1,接收到服务器发出获取目标数据的请求,判断缓存系统中是否存储目标数据,如果是,则进入S2;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后返回S1,直至向发出请求的服务器发送缓存的目标数据为止;
S2,从缓存系统中获取缓存目标数据,向发出请求的服务器发送缓存的目标数据;同时,判断缓存的目标数据的缓存是否过期,如果是,则发送消息到缓存更新服务器,更新缓存系统中的缓存数据,如果否,则返回S2继续判断;其中,所述缓存系统为分布式缓存服务器。
更详细的解释说明:
(一)步骤S1中,判断缓存系统中是否存储目标数据,具体按照下述方法:从发出请求目标数据的服务器接收目标数据,分析所述目标数据,并获得所述目标数据的关键代码,判断缓存系统中是否存在与所述关键代码存在一一映射的数据,如果是,则缓存系统中存储目标数据,如果否,则缓存系统未存储目标数据。
在步骤S1之前,所述缓存系统中至少存储一个有效期长的数据。
(二)步骤S2中,判断缓存的目标数据的缓存是否过期,具体按照下述方法实现:获取缓存系统中存储的缓存目标数据的有效期,判断当前时间是否在所述有效期内,如果是,则所述缓存目标的缓存有效期没有过期,如果否,则所述缓存目标的缓存过期。
步骤S2,所述缓存更新服务器,更新缓存系统中的缓存数据,具体按照下述步骤实现:缓存系统将过期的缓存目标数据以消息的形式发送到缓存更新服务器,所述缓存更新服务器判断接收到的缓存目标数据中携带的key是否已经被缓存,如果是,则将该缓存目标数据存储到缓存系统中,并继续判断下一个消息;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,完成缓存系统中数据的更新。
一种实现如实施例1所述异步更新数据的方法的系统,所述系统包括:发出目标数据请求的请求服务器、缓存系统、第一判断模块、第二判断模块、更新模块和发送模块;
所述第一判断模块,判断缓存系统中是否存储目标数据,如果是,则将缓存系统中存储的缓存目标数据发送给发送模块;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后继续判断下一条请求中的目标数据在缓存系统中是否存在,直至向发出请求的服务器发送缓存的目标数据为止;
所述第二判断模块,判断缓存系统中存储的缓存目标数据的缓存是否过期,如果是,则发送消息到更新模块,更新缓存系统中的缓存数据,如果否,则继续判断下一条消息中的缓存数据是否过期;
更新模块,对缓存系统中的缓存数据进行更新;
发送模块,将缓存系统中存储的目标缓存数据发送给请求服务器。
通过采用本发明公开的上述技术方案,得到了如下有益的效果:
本发明所述方法保证目标缓存数据一直存在于缓存系统中,通过另一个应用程序来更新缓存,这样缓存系统会一直有效并及时更新。
通过消息队列来保证消息的同步,使缓存及时更新并能解耦业务和数据的更新,使web服务器和处理缓存的服务隔离,减少web服务器的压力。其中Rabbit MQ是一种高可用的消息队列,并且支持集群部署的中间件。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (7)
1.一种异步更新数据的方法,其特征在于,该方法包括:
S1,接收到服务器发出获取目标数据的请求,判断缓存系统中是否存储目标数据,如果是,则进入S2;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后返回S1;
S2,从缓存系统中获取缓存目标数据,向发出请求的服务器发送缓存的目标数据;同时,判断缓存的目标数据的缓存有效期是否过期,如果是,则发送消息到缓存更新服务器,更新缓存系统中的缓存数据,如果否,则返回S2继续判断。
2.根据权利要求1所述异步更新数据的方法,其特征在于,步骤S1中,判断缓存系统中是否存储目标数据,具体按照下述方法:
从发出请求目标数据的服务器接收目标数据,分析所述目标数据,并获得所述目标数据的关键代码,判断缓存系统中是否存在与所述关键代码存在一一映射的数据,如果是,则缓存系统中存储目标数据,如果否,则缓存系统未存储目标数据。
3.根据权利要求1所述异步更新数据的方法,其特征在于,在步骤S1之前,所述缓存系统中至少存储一个长有效期的数据。
4.根据权利要求1所述异步更新数据的方法,其特征在于,步骤S2中,判断缓存的目标数据的缓存有效期是否过期,具体按照下述方法实现:
获取缓存系统中存储的缓存目标数据的有效期,判断当前时间是否在所述有效期内,如果是,则所述缓存目标的缓存有效期没有过期,如果否,则所述缓存目标的缓存过期。
5.根据权利要求1所述异步更新数据的方法,其特征在于,步骤S2,所述缓存更新服务器,更新缓存系统中的缓存数据,具体按照下述步骤实现:
缓存系统将过期的缓存目标数据以消息的形式发送到缓存更新服务器,所述缓存更新服务器判断接收到的缓存目标数据中携带的key是否已经被缓存,
如果是,则将该缓存目标数据存储到缓存系统中,并继续判断下一个消息;
如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,并继续判断下一个消息,直至完成缓存系统中数据的更新为止。
6.根据权利要求1所述异步更新数据的方法,其特征在于,所述缓存系统为分布式缓存服务器。
7.一种实现如权利要求1-6任意一项所述异步更新数据的方法的系统,其特征在于,所述系统包括:发出目标数据请求的请求服务器、缓存系统、第一判断模块、第二判断模块、更新模块和发送模块;
所述第一判断模块,判断缓存系统中是否存储目标数据,如果是,则将缓存系统中存储的缓存目标数据发送给发送模块;如果否,则从源数据中读取需要的目标数据并缓存到缓存系统中,然后继续判断下一条请求中的目标数据在缓存系统中是否存在,直至向发出请求的服务器发送缓存的目标数据为止;
所述第二判断模块,判断缓存系统中存储的缓存目标数据的缓存有效期是否过期,如果是,则发送消息到更新模块,更新缓存系统中的缓存数据,如果否,则继续判断下一条消息中的缓存数据是否过期;
更新模块,对缓存系统中的缓存数据进行更新;
发送模块,将缓存系统中存储的目标缓存数据发送给请求服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610371514.7A CN106066877B (zh) | 2016-05-30 | 2016-05-30 | 一种异步更新数据的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610371514.7A CN106066877B (zh) | 2016-05-30 | 2016-05-30 | 一种异步更新数据的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106066877A true CN106066877A (zh) | 2016-11-02 |
CN106066877B CN106066877B (zh) | 2019-08-30 |
Family
ID=57420286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610371514.7A Active CN106066877B (zh) | 2016-05-30 | 2016-05-30 | 一种异步更新数据的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106066877B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897433A (zh) * | 2017-02-27 | 2017-06-27 | 福建中金在线信息科技有限公司 | 一种数据获取方法及装置 |
CN107071059A (zh) * | 2017-05-25 | 2017-08-18 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及系统 |
CN107644071A (zh) * | 2017-09-18 | 2018-01-30 | 广州爱九游信息技术有限公司 | 缓存更新方法、装置及数据存储系统 |
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
CN109783499A (zh) * | 2019-01-18 | 2019-05-21 | 成都宝瓜科技有限公司 | 一种数据缓存方法、装置和服务器 |
CN110753099A (zh) * | 2019-10-12 | 2020-02-04 | 平安健康保险股份有限公司 | 分布式缓存系统以及缓存数据更新方法 |
CN112749195A (zh) * | 2020-12-30 | 2021-05-04 | 广州凡科互联网科技股份有限公司 | 一种异步延时加载缓存的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954754B2 (en) * | 2001-04-16 | 2005-10-11 | Innopath Software, Inc. | Apparatus and methods for managing caches on a mobile device |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN101404649A (zh) * | 2008-11-11 | 2009-04-08 | 阿里巴巴集团控股有限公司 | 一种基于cache的数据处理系统及其方法 |
CN103401950A (zh) * | 2013-08-21 | 2013-11-20 | 网宿科技股份有限公司 | 缓存异步刷新方法、缓存服务器处理请求方法和系统 |
CN104391862A (zh) * | 2014-10-23 | 2015-03-04 | 北京锐安科技有限公司 | 一种缓存数据更新方法及装置 |
CN104572860A (zh) * | 2014-12-17 | 2015-04-29 | 北京皮尔布莱尼软件有限公司 | 一种数据处理方法和系统 |
CN105373369A (zh) * | 2014-08-25 | 2016-03-02 | 北京皮尔布莱尼软件有限公司 | 一种异步缓存方法、服务器及系统 |
-
2016
- 2016-05-30 CN CN201610371514.7A patent/CN106066877B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6954754B2 (en) * | 2001-04-16 | 2005-10-11 | Innopath Software, Inc. | Apparatus and methods for managing caches on a mobile device |
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN101404649A (zh) * | 2008-11-11 | 2009-04-08 | 阿里巴巴集团控股有限公司 | 一种基于cache的数据处理系统及其方法 |
CN103401950A (zh) * | 2013-08-21 | 2013-11-20 | 网宿科技股份有限公司 | 缓存异步刷新方法、缓存服务器处理请求方法和系统 |
CN105373369A (zh) * | 2014-08-25 | 2016-03-02 | 北京皮尔布莱尼软件有限公司 | 一种异步缓存方法、服务器及系统 |
CN104391862A (zh) * | 2014-10-23 | 2015-03-04 | 北京锐安科技有限公司 | 一种缓存数据更新方法及装置 |
CN104572860A (zh) * | 2014-12-17 | 2015-04-29 | 北京皮尔布莱尼软件有限公司 | 一种数据处理方法和系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334505A (zh) * | 2017-01-19 | 2018-07-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
CN108334505B (zh) * | 2017-01-19 | 2022-01-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存系统 |
CN106897433A (zh) * | 2017-02-27 | 2017-06-27 | 福建中金在线信息科技有限公司 | 一种数据获取方法及装置 |
CN107071059A (zh) * | 2017-05-25 | 2017-08-18 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及系统 |
CN107071059B (zh) * | 2017-05-25 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及系统 |
CN107644071A (zh) * | 2017-09-18 | 2018-01-30 | 广州爱九游信息技术有限公司 | 缓存更新方法、装置及数据存储系统 |
CN109783499A (zh) * | 2019-01-18 | 2019-05-21 | 成都宝瓜科技有限公司 | 一种数据缓存方法、装置和服务器 |
CN109783499B (zh) * | 2019-01-18 | 2023-09-22 | 成都宝瓜科技有限公司 | 一种数据缓存方法、装置和服务器 |
CN110753099A (zh) * | 2019-10-12 | 2020-02-04 | 平安健康保险股份有限公司 | 分布式缓存系统以及缓存数据更新方法 |
CN110753099B (zh) * | 2019-10-12 | 2023-09-29 | 平安健康保险股份有限公司 | 分布式缓存系统以及缓存数据更新方法 |
CN112749195A (zh) * | 2020-12-30 | 2021-05-04 | 广州凡科互联网科技股份有限公司 | 一种异步延时加载缓存的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106066877B (zh) | 2019-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106066877A (zh) | 一种异步更新数据的方法及系统 | |
CN103856569B (zh) | 一种同步域名系统资源信息的方法及设备 | |
RU2264651C2 (ru) | Распределённый кэш (сверхоперативная память) для системы беспроводной связи | |
CN106790629A (zh) | 数据同步装置及其实现数据同步的方法、客户端访问系统 | |
CN113010818B (zh) | 访问限流方法、装置、电子设备及存储介质 | |
CN105512053B (zh) | 移动透明计算系统服务器端多用户访问的镜像缓存方法 | |
US20170193416A1 (en) | Reducing costs related to use of networks based on pricing heterogeneity | |
CN102394880B (zh) | 内容分发网络中的跳转响应处理方法和设备 | |
CN106599239A (zh) | 网页内容数据获取方法及服务器 | |
CN103064932A (zh) | 一种静态化页面的处理系统和方法 | |
CN105915612A (zh) | 推送消息获取、消息推送方法及装置 | |
CN105677754B (zh) | 获取文件系统中子项元数据的方法、装置和系统 | |
CN106210022A (zh) | 一种用于处理论坛高并发数据请求的系统和方法 | |
CN110445626B (zh) | 区块打包、广播方法和系统、设备及存储介质 | |
CN106230978A (zh) | 分布式缓存同步方法、装置及系统 | |
US20170155741A1 (en) | Server, method, and system for providing service data | |
CN106446075A (zh) | 页面请求处理方法及装置 | |
WO2019041670A1 (zh) | 一种降低功能页面请求次数的方法、存储介质、设备及系统 | |
US20150006622A1 (en) | Web contents transmission method and apparatus | |
CN105893429A (zh) | 用于优化web缓存的方法及系统 | |
CN112312145B (zh) | 接入服务器、突发流量的缓存方法、系统、计算机设备及可读存储介质 | |
CN105357260B (zh) | 实现虚拟桌面的系统、vdi数据缓存方法和vdi缓存设备 | |
CN110019359A (zh) | 一种防止缓存击穿的方法、装置及系统 | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
EP2901658A2 (en) | Request-agnostic caching for a data resource collection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |