CN106066877B - 一种异步更新数据的方法及*** - Google Patents
一种异步更新数据的方法及*** Download PDFInfo
- Publication number
- CN106066877B CN106066877B CN201610371514.7A CN201610371514A CN106066877B CN 106066877 B CN106066877 B CN 106066877B CN 201610371514 A CN201610371514 A CN 201610371514A CN 106066877 B CN106066877 B CN 106066877B
- Authority
- CN
- China
- Prior art keywords
- caching
- data
- target data
- caching system
- server
- 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.)
- Active
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 (6)
1.一种异步更新数据的方法,其特征在于,该方法包括:
S1,接收到服务器发出获取目标数据的请求,判断缓存***中是否存储目标数据,如果是,则进入S2;如果否,则从源数据中读取需要的目标数据并缓存到缓存***中,然后返回S1;
S2,从缓存***中获取缓存目标数据,向发出请求的服务器发送缓存的目标数据;同时,判断缓存的目标数据的缓存有效期是否过期,如果是,则发送消息到缓存更新服务器,更新缓存***中的缓存数据,如果否,则返回S2继续判断;
步骤S2,所述缓存更新服务器,更新缓存***中的缓存数据,具体按照下述步骤实现:
缓存***将过期的缓存目标数据以消息的形式发送到缓存更新服务器,所述缓存更新服务器判断接收到的缓存目标数据中携带的key是否已经被缓存,
如果是,则将该缓存目标数据存储到缓存***中,并继续判断下一个消息;
如果否,则从源数据中读取需要的目标数据并缓存到缓存***中,并继续判断下一个消息,直至完成缓存***中数据的更新为止。
2.根据权利要求1所述异步更新数据的方法,其特征在于,步骤S1中,判断缓存***中是否存储目标数据,具体按照下述方法:
从发出请求目标数据的服务器接收目标数据,分析所述目标数据,并获得所述目标数据的关键代码,判断缓存***中是否存在与所述关键代码存在一一映射的数据,如果是,则缓存***中存储目标数据,如果否,则缓存***未存储目标数据。
3.根据权利要求1所述异步更新数据的方法,其特征在于,在步骤S1之前,所述缓存***中至少存储一个长有效期的数据。
4.根据权利要求1所述异步更新数据的方法,其特征在于,步骤S2中,判断缓存的目标数据的缓存有效期是否过期,具体按照下述方法实现:
获取缓存***中存储的缓存目标数据的有效期,判断当前时间是否在所述有效期内,如果是,则所述缓存目标的缓存有效期没有过期,如果否,则所述缓存目标的缓存过期。
5.根据权利要求1所述异步更新数据的方法,其特征在于,所述缓存***为分布式缓存服务器。
6.一种实现如权利要求1-5任意一项所述异步更新数据的方法的***,其特征在于,所述***包括:发出目标数据请求的请求服务器、缓存***、第一判断模块、第二判断模块、更新模块和发送模块;
所述第一判断模块,判断缓存***中是否存储目标数据,如果是,则将缓存***中存储的缓存目标数据发送给发送模块;如果否,则从源数据中读取需要的目标数据并缓存到缓存***中,然后继续判断下一条请求中的目标数据在缓存***中是否存在,直至向发出请求的服务器发送缓存的目标数据为止;
所述第二判断模块,判断缓存***中存储的缓存目标数据的缓存有效期是否过期,如果是,则发送消息到更新模块,更新缓存***中的缓存数据,如果否,则继续判断下一条消息中的缓存数据是否过期;
更新模块,对缓存***中的缓存数据进行更新;
发送模块,将缓存***中存储的目标缓存数据发送给请求服务器。
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 CN106066877A (zh) | 2016-11-02 |
CN106066877B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108334505B (zh) * | 2017-01-19 | 2022-01-07 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置、服务器及库存*** |
CN106897433A (zh) * | 2017-02-27 | 2017-06-27 | 福建中金在线信息科技有限公司 | 一种数据获取方法及装置 |
CN107071059B (zh) * | 2017-05-25 | 2018-10-02 | 腾讯科技(深圳)有限公司 | 分布式缓存服务实现方法、装置、终端、服务器及*** |
CN107644071A (zh) * | 2017-09-18 | 2018-01-30 | 广州爱九游信息技术有限公司 | 缓存更新方法、装置及数据存储*** |
CN109783499B (zh) * | 2019-01-18 | 2023-09-22 | 成都宝瓜科技有限公司 | 一种数据缓存方法、装置和服务器 |
CN110753099B (zh) * | 2019-10-12 | 2023-09-29 | 平安健康保险股份有限公司 | 分布式缓存***以及缓存数据更新方法 |
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 | 北京皮尔布莱尼软件有限公司 | 一种数据处理方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN106066877A (zh) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106066877B (zh) | 一种异步更新数据的方法及*** | |
US8700735B1 (en) | Multi-level cache with synch | |
CN111464615B (zh) | 请求处理方法、装置、服务器及存储介质 | |
US10187445B2 (en) | System, method and browser client for enabling browser data synchronization | |
CN104714965B (zh) | 静态资源去重方法、静态资源管理方法及装置 | |
US20180089138A1 (en) | Application architecture supporting multiple services and caching | |
CN106790629A (zh) | 数据同步装置及其实现数据同步的方法、客户端访问*** | |
CN105915612A (zh) | 推送消息获取、消息推送方法及装置 | |
CN104335524B (zh) | 用于客户端侧页面处理的公共web可访问数据存储 | |
CN112711730B (zh) | 一种数据的缓存方法、装置、存储介质及电子设备 | |
CN104239509B (zh) | 多版本gis切片服务*** | |
WO2019041670A1 (zh) | 一种降低功能页面请求次数的方法、存储介质、设备及*** | |
CN109067936A (zh) | 一种域名解析的方法及装置 | |
CN106210022A (zh) | 一种用于处理论坛高并发数据请求的***和方法 | |
CN110474964A (zh) | Cdn调度的方法、装置、设备和计算机存储介质 | |
CN106446075A (zh) | 页面请求处理方法及装置 | |
CN110266799B (zh) | 一种基于缓存的幂等性实现的方法 | |
CN109634753A (zh) | 切换浏览器内核的数据处理方法、装置、终端和存储介质 | |
CN108200127A (zh) | 数据发送方法、装置、服务器、终端及存储介质 | |
WO2012012075A1 (en) | System for replication and delivery of remote data and accumulated metadata with enhanced display | |
CN106713456A (zh) | 网络带宽统计方法及装置 | |
CN114301678A (zh) | 一种数据访问方法及装置、电子设备、存储介质 | |
CN106022161B (zh) | 一种数据处理方法及装置 | |
CN104063269B (zh) | 一种实现离线应用的方法及装置 | |
CN107770203A (zh) | 一种服务请求转发方法、装置及*** |
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 |