CN104376097A - 基于Windows服务程序的主动式缓存方法 - Google Patents
基于Windows服务程序的主动式缓存方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000003780 insertion Methods 0.000 claims description 10
- 230000037431 insertion Effects 0.000 claims description 10
- 239000010453 quartz Substances 0.000 claims description 5
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N silicon dioxide Inorganic materials O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000000151 deposition Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000002679 ablation Methods 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 231100000176 abortion Toxicity 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing 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服务程序的主动式缓存方法。
背景技术
关于主动式缓存,一般我们在使用缓存的时候,会设定一个缓存数据的有效时间,超过这个时间后缓存数据失效,应用必须重新填充缓存数据。而在 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请求。
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)
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)
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 | 奇智软件(北京)有限公司 | 一种快速访问网页的方法、装置及一种浏览器 |
-
2014
- 2014-11-25 CN CN201410683261.8A patent/CN104376097A/zh active Pending
Patent Citations (4)
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)
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 |