CN104376097A - 基于Windows服务程序的主动式缓存方法 - Google Patents

基于Windows服务程序的主动式缓存方法 Download PDF

Info

Publication number
CN104376097A
CN104376097A CN201410683261.8A CN201410683261A CN104376097A CN 104376097 A CN104376097 A CN 104376097A CN 201410683261 A CN201410683261 A CN 201410683261A CN 104376097 A CN104376097 A CN 104376097A
Authority
CN
China
Prior art keywords
page
cache
windows service
service routine
data
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
CN201410683261.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.)
Tongcheng Network Technology Co Ltd
Original Assignee
Tongcheng Network 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 Tongcheng Network Technology Co Ltd filed Critical Tongcheng Network Technology Co Ltd
Priority to CN201410683261.8A priority Critical patent/CN104376097A/zh
Publication of CN104376097A publication Critical patent/CN104376097A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于Windows服务程序的主动式缓存方法,其特点是:用户向网站服务器端的页面发送请求页面,通过网站服务器端判断是否正式获取到缓存内容。其主动缓存的实施过程为,创建Windows服务程序,之后创建插入队列并创建刷新工作。由此,通过网站服务器端的页面获取主动缓存进行判断处理,配合Windows服务程序,让用户每次请求页面数据都从内存中获取,不直接请求数据库或接口,从而达到页面快速的呈现。同时,在写入成功后能够进行删除,减轻数据库压力,提升了用户的使用体验。

Description

基于Windows服务程序的主动式缓存方法
技术领域
本发明涉及一种缓存方法,尤其涉及一种基于Windows服务程序的主动式缓存方法。
背景技术
关于主动式缓存,一般我们在使用缓存的时候,会设定一个缓存数据的有效时间,超过这个时间后缓存数据失效,应用必须重新填充缓存数据。而在 Web 项目中更是如此,访问数据时先访问缓存,如果缓存中有,则返回缓存中的数据,否则重新读取(可能是从数据库中)数据并塞入缓存,然后返回数据。假设这个重新读取数据的过程可能是一个非常耗时的过程,那么每次缓存失效的时候,用户访问就会非常的慢,再次访问速度才能变快。
关于Memcached,其是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Quartz是一个完全由java编写的开源作业调度框架。Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。 
Microsoft Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。这些服务可以在计算机启动时自动启动,可以暂停和重新启动而且不显示任何用户界面。这使服务非常适合在服务器上使用,或任何时候,为了不影响在同一台计算机上工作的其他用户,需要长时间运行功能时使用。还可以在不同于登录用户的特定用户帐户或默认计算机帐户的安全上下文中运行服务。
发明内容
本发明的目的就是为了解决现有技术中存在的上述问题,提供一种基于Windows服务程序的主动式缓存方法。
本发明的目的通过以下技术方案来实现:
基于Windows服务程序的主动式缓存方法,其包括以下步骤:首先,用户向网站服务器端的页面发送请求页面;之后,网站服务器端的页面获取主动缓存后,判断是否正式获取到缓存内容,若是,则输出页面的html内容,若否,则异步发送接口请求,将当前用户请求的url地址插入到数据库表中,所述主动缓存的实施过程为,首先创建Windows服务程序,之后创建插入队列并创建刷新工作,所述的插入列队内容包括主键ID、url地址、缓存。
上述的基于Windows服务程序的主动式缓存方法,其中:所述的创建插入队列的过程为,步骤①,通过Windows服务程序查询缓存列表,判断用于存放url地址的缓存表是否有数据,若有,则进入步骤②,若无,则将未查询到的数据进行日志记录,所述的日志记录为,将日志信息插入到数据库日志表中,所述的日志包含,job名称、日志类型、日志内容(主要包含url地址)、日志时间。步骤②,通过SQL查询获取cache工作表数据。步骤③,根据ID判断插入列队是否有数据,若有,则更新队列表,若无,则向队列表中插入数据。
进一步地,上述的基于Windows服务程序的主动式缓存方法,其中:所述的创建刷新工作过程为,步骤①,通过Windows服务程序读取缓存列队,判断列队中是否有数据,若有,则执行步骤②,若无,则记录日志,所述的记录过程为,插入数据库日志,且日志基本信息与插入队列相同。步骤②,根据队列中的cache Url与cache key,发送包含post请求的页面。步骤③,将页面html内容写入缓存,判断是否写入成功,若成功,则删除列队,更新缓存表、更新时间,若失败,则首先向缓存备份表插入页面url,之后删除列队,更新缓存表、更新时间。
更进一步地,上述的基于Windows服务程序的主动式缓存方法,其中:步骤③所述的判断是否写入成功的依据是塞入缓存时返回的标识。
更进一步地,上述的基于Windows服务程序的主动式缓存方法,其中:步骤③所述的时间为,缓存表中的下一更新时间字段。
更进一步地,上述的基于Windows服务程序的主动式缓存方法,其中:所述的创建插入队列与创建刷新工作,均采用Quartz.Net完成。
再进一步地,上述的基于Windows服务程序的主动式缓存方法,其中:所述的刷新为发送post请求。
本发明技术方案的优点主要体现在:通过上述的文字表述可以看出,采用本发明后,通过网站服务器端的页面获取主动缓存进行判断处理,配合Windows服务程序,让用户每次请求页面数据都从内存中获取,不直接请求数据库或接口,从而达到页面快速的呈现。同时,在写入成功后能够进行删除,减轻数据库压力,以此来提升用户的使用体验。
本发明的目的、优点和特点,将通过下面优选实施例的非限制性说明进行图示和解释。这些实施例仅是应用本发明技术方案的典型范例,凡采取等同替换或者等效变换而形成的技术方案,均落在本发明要求保护的范围之内。
附图说明
图1是本基于Windows服务程序的主动式缓存方法的整体流程示意图。
图2是创建插入队列的过程示意图。
图3是创建刷新工作过程的实施示意图。
具体实施方式
如图1~3所示的基于Windows服务程序的主动式缓存方法,其与众不同之处在于包括以下步骤:首先,用户向网站服务器端的页面发送请求页面。之后,网站服务器端的页面获取主动缓存后,判断是否正式获取到缓存内容。具体来说,若是,则输出页面的html内容,若否,则异步发送接口请求,将当前用户请求的url地址插入到数据库表中。同时,本发明所采用的主动缓存的实施过程为,先创建Windows服务程序,之后创建插入队列并创建刷新工作,该插入列队内容包括主键ID、url地址、缓存。
就本发明一较佳的实施方式来看,为了有效利用Windows服务程序的资源,如图2所示,采用的创建插入队列的过程为:
首先,通过Windows服务程序查询缓存列表,判断用于存放url地址的缓存表是否有数据。若有,则进入后续步骤。若无,则将未查询到的数据进行日志记录。同时,考虑到缓存数据的合理有效,采用的日志记录为,将日志信息插入到数据库日志表中,该日志包含,job名称、日志类型、日志内容(主要包含url地址)、日志时间。之后,通过SQL查询获取cache工作表数据。接着,可以根据ID判断插入列队是否有数据。若有,则更新队列表。若无,则向队列表中插入数据。
进一步结合图3来看,创建刷新工作过程如下:首先,通过Windows服务程序读取缓存列队,判断列队中是否有数据。在此期间,若有,则执行后续步骤若无,则记录日志。具体来说,记录过程为,插入数据库日志,且日志基本信息与插入队列相同。之后,根据队列中的cache Url与cache key(数据库队列表的字段),发送包含post请求的页面。最后,将页面html内容写入缓存(Memcache),判断是否写入成功,若成功,则删除列队,更新缓存表、更新时间,若失败,则首先向缓存备份表插入页面url,之后删除列队,更新缓存表、更新时间。
本发明采用的缓存Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。并且,缓存备份表中存放的页面Url与缓存表存放内容一致,当执行前序步骤中将页面html内容写入缓存时,写入过程中可能会出现写入失败情况,这个时候会将url插入到缓存备份表,写入后的过程与先前执行的步骤相同。
再进一步来看,判断是否写入成功的依据是塞入缓存时返回的标识。这样,能够实现有效的备份作用。例如,有100个url做写入操作,有10个为失败状态,失败的10个通过标识可以区分出来,写入单独的缓存备份表,重复先前的操作,可以使最终失败的数量降低。同时,所涉及的时间含义为缓存表中的下一更新时间字段。并且,创建插入队列与创建刷新工作,均采用Quartz.Net完成。同时,刷新为发送post请求。
通过上述的文字表述可以看出,采用本发明后,通过网站服务器端的页面获取主动缓存进行判断处理,配合Windows服务程序,让用户每次请求页面数据都从内存中获取,不直接请求数据库或接口,从而达到页面快速的呈现。同时,在写入成功后能够进行删除,减轻数据库压力,以此来提升用户的使用体验。

Claims (7)

1.基于Windows服务程序的主动式缓存方法,其特征在于包括以下步骤:首先,用户向网站服务器端的页面发送请求页面;之后,网站服务器端的页面获取主动缓存后,判断是否正式获取到缓存内容,若是,则输出页面的html内容,若否,则异步发送接口请求,将当前用户请求的url地址插入到数据库表中,所述主动缓存的实施过程为,首先创建Windows服务程序,之后创建插入队列并创建刷新工作,所述的插入列队内容包括主键ID、url地址、缓存。
2.根据权利要求1所述的基于Windows服务程序的主动式缓存方法,其特征在于:所述的创建插入队列的过程为,
步骤①,通过Windows服务程序查询缓存列表,判断用于存放url地址的缓存表是否有数据,若有,则进入步骤②,若无,则将未查询到的数据进行日志记录,所述的日志记录为,将日志信息插入到数据库日志表中,所述的日志包含,job名称、日志类型、日志内容、日志时间;
步骤②,通过SQL查询获取cache工作表数据;
步骤③,根据ID判断插入列队是否有数据,若有,则更新队列表,若无,则向队列表中插入数据。
3.根据权利要求1所述的基于Windows服务程序的主动式缓存方法,其特征在于:所述的创建刷新工作过程为,
步骤①,通过Windows服务程序读取缓存列队,判断列队中是否有数据,若有,则执行步骤②,若无,则记录日志,所述的记录过程为,插入数据库日志,且日志基本信息与插入队列相同;
步骤②,根据队列中的cache Url与cache key,发送包含post请求的页面;
步骤③,将页面html内容写入缓存,判断是否写入成功,若成功,则删除列队,更新缓存表、更新时间,若失败,则首先向缓存备份表插入页面url,之后删除列队,更新缓存表、更新时间。
4.根据权利要求3所述的基于Windows服务程序的主动式缓存方法,其特征在于:步骤③所述的判断是否写入成功的依据是塞入缓存时返回的标识。
5.根据权利要求1所述的基于Windows服务程序的主动式缓存方法,其特征在于:步骤③所述的时间为,缓存表中的下一更新时间字段。
6.根据权利要求1所述的基于Windows服务程序的主动式缓存方法,其特征在于:所述的创建插入队列与创建刷新工作,均采用Quartz.Net完成。
7.根据权利要求1所述的基于Windows服务程序的主动式缓存方法,其特征在于:所述的刷新为发送post请求。
CN201410683261.8A 2014-11-25 2014-11-25 基于Windows服务程序的主动式缓存方法 Pending CN104376097A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410683261.8A CN104376097A (zh) 2014-11-25 2014-11-25 基于Windows服务程序的主动式缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410683261.8A CN104376097A (zh) 2014-11-25 2014-11-25 基于Windows服务程序的主动式缓存方法

Publications (1)

Publication Number Publication Date
CN104376097A true CN104376097A (zh) 2015-02-25

Family

ID=52555004

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410683261.8A Pending CN104376097A (zh) 2014-11-25 2014-11-25 基于Windows服务程序的主动式缓存方法

Country Status (1)

Country Link
CN (1) CN104376097A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808707A (zh) * 2016-02-29 2016-07-27 郑州悉知信息科技股份有限公司 数据处理方法、装置和电子商务平台
CN110019170A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 数据处理方法、系统、计算机系统及计算机可读存储介质
CN111367952A (zh) * 2020-03-02 2020-07-03 中国邮政储蓄银行股份有限公司 缓存数据的分页查询方法、系统及计算机可读存储介质
WO2021047239A1 (zh) * 2019-09-10 2021-03-18 苏宁云计算有限公司 一种页面获取方法、装置及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098041A1 (en) * 2006-10-20 2008-04-24 Lakshminarayanan Chidambaran Server supporting a consistent client-side cache
CN101699823A (zh) * 2009-10-30 2010-04-28 深圳创维数字技术股份有限公司 一种在curl库中实现资源缓存的方法
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN102375882A (zh) * 2011-09-19 2012-03-14 奇智软件(北京)有限公司 一种快速访问网页的方法、装置及一种浏览器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080098041A1 (en) * 2006-10-20 2008-04-24 Lakshminarayanan Chidambaran Server supporting a consistent client-side cache
CN101699823A (zh) * 2009-10-30 2010-04-28 深圳创维数字技术股份有限公司 一种在curl库中实现资源缓存的方法
CN102253941A (zh) * 2010-05-21 2011-11-23 卓望数码技术(深圳)有限公司 一种缓存更新方法和缓存更新装置
CN102375882A (zh) * 2011-09-19 2012-03-14 奇智软件(北京)有限公司 一种快速访问网页的方法、装置及一种浏览器

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808707A (zh) * 2016-02-29 2016-07-27 郑州悉知信息科技股份有限公司 数据处理方法、装置和电子商务平台
CN105808707B (zh) * 2016-02-29 2019-04-26 郑州悉知信息科技股份有限公司 数据处理方法、装置和电子商务平台
CN110019170A (zh) * 2017-12-29 2019-07-16 北京京东尚科信息技术有限公司 数据处理方法、系统、计算机系统及计算机可读存储介质
WO2021047239A1 (zh) * 2019-09-10 2021-03-18 苏宁云计算有限公司 一种页面获取方法、装置及系统
CN111367952A (zh) * 2020-03-02 2020-07-03 中国邮政储蓄银行股份有限公司 缓存数据的分页查询方法、系统及计算机可读存储介质
CN111367952B (zh) * 2020-03-02 2023-08-25 中国邮政储蓄银行股份有限公司 缓存数据的分页查询方法、系统及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10785322B2 (en) Server side data cache system
CN100530186C (zh) 缓存处理方法以及缓存处理系统
CN103179185B (zh) 一种分布式文件系统客户端缓存中文件创建方法及其系统
US8713424B1 (en) Asynchronous loading of scripts in web pages
KR102161667B1 (ko) 호스팅된 문서 서비스에서 오프라인 액세스를 제공하기 위한 시스템 및 방법
JP4578160B2 (ja) キャッシュエントリを無効化するために使用できるデータベーステーブル変更情報の登録および取り出し
CN104935680B (zh) 一种多层级共享缓存的递归域名服务系统和方法
CN101287013B (zh) 一种更新Web页面的方法和Web代理设备
CN103139279B (zh) 文件访问方法和系统
CN102647481B (zh) 一种访问预设网络地址的装置及方法
CN102411598B (zh) 一种实现数据一致性的方法及其系统
AU2011210532B2 (en) Content author badges
JP2009529183A5 (zh)
CN105550338A (zh) 一种基于HTML5应用缓存的移动Web缓存优化方法
CN104376097A (zh) 基于Windows服务程序的主动式缓存方法
EP2947582A1 (en) Computing device and method for executing database operation command
CN103747072A (zh) 一种读写数据的方法和应用服务器
CN111221469B (zh) 同步缓存数据的方法、装置和系统
US10387372B2 (en) Value-based differential data
CN103338272A (zh) 一种内容分发网络及其缓存实现方法
CN102722405A (zh) 高并发、多线程应用中的计数方法及系统
CN102760068A (zh) 一种ActiveX插件加载方法和装置
CN112307119A (zh) 数据同步方法、装置、设备及存储介质
CN113886494A (zh) 即时通讯的消息存储方法、装置、设备及计算机可读介质
CN102546674A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20150225