CN106066877B - 一种异步更新数据的方法及*** - Google Patents

一种异步更新数据的方法及*** Download PDF

Info

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
Application number
CN201610371514.7A
Other languages
English (en)
Other versions
CN106066877A (zh
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 Pierre Blaney Software Co Ltd
Original Assignee
Beijing Pierre Blaney Software 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 Pierre Blaney Software Co Ltd filed Critical Beijing Pierre Blaney Software Co Ltd
Priority to CN201610371514.7A priority Critical patent/CN106066877B/zh
Publication of CN106066877A publication Critical patent/CN106066877A/zh
Application granted granted Critical
Publication of CN106066877B publication Critical patent/CN106066877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/23Updating
    • G06F16/235Update request formulation
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous 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任意一项所述异步更新数据的方法的***,其特征在于,所述***包括:发出目标数据请求的请求服务器、缓存***、第一判断模块、第二判断模块、更新模块和发送模块;
所述第一判断模块,判断缓存***中是否存储目标数据,如果是,则将缓存***中存储的缓存目标数据发送给发送模块;如果否,则从源数据中读取需要的目标数据并缓存到缓存***中,然后继续判断下一条请求中的目标数据在缓存***中是否存在,直至向发出请求的服务器发送缓存的目标数据为止;
所述第二判断模块,判断缓存***中存储的缓存目标数据的缓存有效期是否过期,如果是,则发送消息到更新模块,更新缓存***中的缓存数据,如果否,则继续判断下一条消息中的缓存数据是否过期;
更新模块,对缓存***中的缓存数据进行更新;
发送模块,将缓存***中存储的目标缓存数据发送给请求服务器。
CN201610371514.7A 2016-05-30 2016-05-30 一种异步更新数据的方法及*** Active CN106066877B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 北京皮尔布莱尼软件有限公司 一种异步缓存方法、服务器及***

Patent Citations (7)

* Cited by examiner, † Cited by third party
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