CN109358805A - 一种数据缓存方法 - Google Patents
一种数据缓存方法 Download PDFInfo
- Publication number
- CN109358805A CN109358805A CN201811018894.1A CN201811018894A CN109358805A CN 109358805 A CN109358805 A CN 109358805A CN 201811018894 A CN201811018894 A CN 201811018894A CN 109358805 A CN109358805 A CN 109358805A
- Authority
- CN
- China
- Prior art keywords
- data
- finger daemon
- queue
- business
- data cached
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及网络数据通信技术领域,具体涉及一种数据缓存方法,包括以下步骤:程序判断缓存文件是否存在,如果不存在启动守护进程,如果存在判断队列尾部最新数据是否满足条件,如果不满足条件则启动守护进程,并且执行业务进程,获取数据并结束,守护进程读取缓存文件到内存中,执行业务进程获取数据,并将得到的数据插入时间戳,存储到缓存数据队列的尾部,对缓存数据序列化之后,将缓存数据保存到缓存文件中。本发明通过利用守护进程和缓存数据队列提高了请求响应的速度和业务进程的使用效率,节约系统运算性能和磁盘空间。
Description
技术领域
本发明涉及网络数据通信技术领域,具体涉及一种数据缓存方法。
背景技术
随着网络信息技术的发展和用户对互联网设备的需求日益增多,计算机系统需要处理的数据量也日益增加。计算机通过执行软件中指定的业务,从磁盘或者内存中读取数据,并生成用户需要的数据,通过客户端软件提供给用户使用。当所需处理的数据量较大,或者计算所需要的流程比较复杂时,程序需要较多的时间才能够将数据分析的结果反馈给客户端,造成数据响应的延迟。
为了优化客户端交互效果,降低数据延迟到达产生的不良体验,同时降低在高并发请求的情形下,软件在同一时刻反复执行相同的运算业务对计算机系统资源产生的过度占用,通常需要采用一种数据缓存的方法,将计算好的数据结果进行临时存储,并在客户端请求数据时可以实时返回给客户端。
发明内容
本发明的目的在于克服现有技术中存在的问题,提供一种数据缓存方法,它可以实现通过守护进程的方式避免服务端直接调用业务程序,而通过判断缓存数据文件获取客户端真实需要的数据,这样首先可以解决业务程序阻塞导致客户端请求数据缓慢的问题,其次可以解决高并发的情况下,业务程序反复执行相同业务导致系统资源浪费的问题,通过对守护进程和缓存数据的控制,提高实时数据的利用率和客户端交互体验效果。
为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现的:
一种数据缓存方法,包括以下步骤:
步骤1、启动业务守护进程:所述守护进程常驻系统运行,按照启动指令传入的频率参数,控制执行指定的数据分析业务进程,业务进程执行结束后,接收执行的结果,在执行结果数据中,插入时间戳序列参数,并将数据序列化,如果未初始化缓存数据队列,先初始化缓存数据队列,如果已初始化缓存数据队列,将序列化数据推进缓存数据队列尾部,如果缓存数据队列总长度超过了预制的缓存数据最大长度,则从数据队列的头部推出最后一条数据;
步骤2、将缓存数据持久化到磁盘文件中;
步骤3、服务端进程接收到客户端数据请求业务时,从磁盘文件中读取数据,当磁盘文件不存在时,认为守护进程未初始化或者初始化失败,服务端进程发出启动守护进程指令,并自主执行业务进程,获取数据返回客户端,完成请求生命周期,当磁盘文件存在时,从磁盘文件的数据队列中读取队列尾部最新的一条数据,获取数据中由上述守护进程插入的时间戳序列参数,并与当前时间参数进行比较,当时间差值在用户所期望的最小差值范围内时,将结果返回给客户端,完成请求的生命周期,当时间差值超过了系统配置的最大时间差值时,服务端进程对操作系统中业务守护进程的执行状态进行检查;
步骤4、当检查到业务守护进程未启动,则启动业务守护进程,并自主执行业务进程,获取数据返回客户端,完成请求生命周期。
本发明的有益效果:通过利用守护进程控制业务进程和服务端进程的执行,利用队列数据后进先出的方式和进程参数配置的方式,提高业务进程的执行效率。当数据总条数超过了阈值的最大条目数时,程序将队列头部的数据移除队列,避免缓存数据文件过大占用额外的磁盘空间,降低IO使用率,提高服务端进程的读取效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的流程示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示的一种数据缓存方法,包括如下步骤:
步骤1:软件服务端进程接收到客户端进程的数据请求,服务端进程首先查询系统磁盘中指定的缓存文件是否存在,如果缓存文件不存在,说明守护进程没有运行,此时首先启动守护进程,然后自主执行一次业务进程,获取业务数据,并完成服务端请求周期;
步骤2:如果判断缓存文件存在,则从磁盘中读取缓存文件,并从数据队列的尾部获取最新的一条数据,反序列化之后,将此条数据和当前时间戳数据进行比较,如果比较的结果大于设置的最大时间差值,说明缓存文件数据为能够即时更新,此时执行启动守护进程,然后自主执行一次业务进程,获取业务数据,并完成服务端请求周期;
步骤3:启动守护进程,守护进程的启动有多种方式,支持不同程序不同终端进行调度,本实施例中,守护进程可以由用户进行调度,也可以由服务端软件进行调度,守护进程启动后,根据指定的业务需求参数,执行特定的业务进程,守护进程可以在操作系统中常驻运行,当守护进程接收到启动指令后,首先判断自身是否已经在运行,如果守护进程已经运行,则不再创建新的进程。如果守护进程未运行,则启动进程,并将自身的进程ID存储在指定的存储空间中,供进程判断自身的运行状态,当守护进程接收到结束指令时,守护进程结束自身的同时,也会销毁自身进程ID的存储状态;
步骤4:守护进程读取缓存文件,并反序列化获取缓存数据队列,如果缓存文件不存在,则创建新的缓存数据队列;
步骤5:守护进程执行指定的业务进程,并获取数据,在获取的数据中,插入当前时间戳,序列化之后保存到缓存数据队列的尾部;
步骤6:判断数据队列的总长度是否超过了指定的队列最大长度限制,如果超过了队列最大长度限制,则删除数据队列头部最后一条数据。
步骤7:将内存中数据队列进行序列化,并将数据写入磁盘缓存文件中。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (1)
1.一种数据缓存方法,其特征在于,包括以下步骤:
步骤1、启动业务守护进程:所述守护进程常驻系统运行,按照启动指令传入的频率参数,控制执行指定的数据分析业务进程,业务进程执行结束后,接收执行的结果,在执行结果数据中,插入时间戳序列参数,并将数据序列化,如果未初始化缓存数据队列,先初始化缓存数据队列,如果已初始化缓存数据队列,将序列化数据推进缓存数据队列尾部,如果缓存数据队列总长度超过了预制的缓存数据最大长度,则从数据队列的头部推出最后一条数据;
步骤2、将缓存数据持久化到磁盘文件中;
步骤3、服务端进程接收到客户端数据请求业务时,从磁盘文件中读取数据,当磁盘文件不存在时,认为守护进程未初始化或者初始化失败,服务端进程发出启动守护进程指令,并自主执行业务进程,获取数据返回客户端,完成请求生命周期,当磁盘文件存在时,从磁盘文件的数据队列中读取队列尾部最新的一条数据,获取数据中由上述守护进程插入的时间戳序列参数,并与当前时间参数进行比较,当时间差值在用户所期望的最小差值范围内时,将结果返回给客户端,完成请求的生命周期,当时间差值超过了系统配置的最大时间差值时,服务端进程对操作系统中业务守护进程的执行状态进行检查;
步骤4、当检查到业务守护进程未启动,则启动业务守护进程,并自主执行业务进程,获取数据返回客户端,完成请求生命周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018894.1A CN109358805B (zh) | 2018-09-03 | 2018-09-03 | 一种数据缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811018894.1A CN109358805B (zh) | 2018-09-03 | 2018-09-03 | 一种数据缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109358805A true CN109358805A (zh) | 2019-02-19 |
CN109358805B CN109358805B (zh) | 2021-11-30 |
Family
ID=65350509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811018894.1A Active CN109358805B (zh) | 2018-09-03 | 2018-09-03 | 一种数据缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109358805B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727666A (zh) * | 2019-09-25 | 2020-01-24 | 中冶赛迪重庆信息技术有限公司 | 面向工业互联网平台的缓存组件、方法、设备及存储介质 |
CN111726379A (zh) * | 2019-03-20 | 2020-09-29 | 华为技术有限公司 | 一种通信方法及装置 |
CN112364100A (zh) * | 2020-11-06 | 2021-02-12 | 聚好看科技股份有限公司 | 一种服务器及服务器缓存持久化的方法 |
CN114020663A (zh) * | 2021-11-17 | 2022-02-08 | 中国航空无线电电子研究所 | 一种机载总线数据记录装置 |
CN114489513A (zh) * | 2022-02-11 | 2022-05-13 | 上海驻云信息科技有限公司 | 一种基于本地磁盘中转的数据返回方法及系统 |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102088485A (zh) * | 2010-12-30 | 2011-06-08 | 用友软件股份有限公司 | 数据获取方法和装置 |
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN102411631A (zh) * | 2011-12-22 | 2012-04-11 | 中国科学院声学研究所 | 一种嵌入式浏览器磁盘缓存的方法 |
CN103116634A (zh) * | 2012-06-12 | 2013-05-22 | 上海雷腾软件有限公司 | 支持高并发缓存任务队列的系统及其异步批量操作方法 |
CN103617131A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种实现数据缓存的方法 |
CN103631727A (zh) * | 2012-08-27 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 用于缓存服务器的缓存管理方法及缓存管理系统 |
CN103886079A (zh) * | 2014-03-26 | 2014-06-25 | 北京京东尚科信息技术有限公司 | 一种数据处理方法和系统 |
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务系统及其数据更新、数据查询的方法 |
CN104363303A (zh) * | 2014-11-28 | 2015-02-18 | 东莞中国科学院云计算产业技术创新与育成中心 | 异步缓存数据同步的方法 |
CN104636500A (zh) * | 2014-10-21 | 2015-05-20 | 北京国双科技有限公司 | 一种查询热数据的方法及装置 |
CN105468305A (zh) * | 2015-12-09 | 2016-04-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据缓存方法、装置和系统 |
CN106599152A (zh) * | 2016-12-07 | 2017-04-26 | 北京华夏电通科技有限公司 | 一种数据缓存方法及系统 |
CN106815329A (zh) * | 2016-12-29 | 2017-06-09 | 网易无尾熊(杭州)科技有限公司 | 一种缓存数据的更新方法及装置 |
CN107180082A (zh) * | 2017-05-03 | 2017-09-19 | 珠海格力电器股份有限公司 | 一种基于多级缓存机制的数据更新系统及方法 |
CN107273040A (zh) * | 2016-04-08 | 2017-10-20 | 北京优朋普乐科技有限公司 | 数据缓存方法和装置 |
CN107357532A (zh) * | 2017-07-14 | 2017-11-17 | 长沙开雅电子科技有限公司 | 一种新型集群存储新型缓存预读实现方法 |
CN107391269A (zh) * | 2016-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种用于通过持久化队列处理消息的方法与设备 |
CN108038157A (zh) * | 2017-12-05 | 2018-05-15 | 北京星河星云信息技术有限公司 | 主从数据库读写方法、系统、存储装置和服务器 |
CN108363764A (zh) * | 2018-02-05 | 2018-08-03 | 山东地主网络科技创新有限公司 | 一种分布式缓存管理系统及方法 |
-
2018
- 2018-09-03 CN CN201811018894.1A patent/CN109358805B/zh active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101090401A (zh) * | 2007-05-25 | 2007-12-19 | 金蝶软件(中国)有限公司 | 一种群集环境下的数据缓存方法及系统 |
CN102117309A (zh) * | 2010-01-06 | 2011-07-06 | 卓望数码技术(深圳)有限公司 | 一种数据缓存系统和数据查询方法 |
CN102088485A (zh) * | 2010-12-30 | 2011-06-08 | 用友软件股份有限公司 | 数据获取方法和装置 |
CN102411631A (zh) * | 2011-12-22 | 2012-04-11 | 中国科学院声学研究所 | 一种嵌入式浏览器磁盘缓存的方法 |
CN103116634A (zh) * | 2012-06-12 | 2013-05-22 | 上海雷腾软件有限公司 | 支持高并发缓存任务队列的系统及其异步批量操作方法 |
CN103631727A (zh) * | 2012-08-27 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 用于缓存服务器的缓存管理方法及缓存管理系统 |
CN103617131A (zh) * | 2013-11-26 | 2014-03-05 | 曙光信息产业股份有限公司 | 一种实现数据缓存的方法 |
CN103886079A (zh) * | 2014-03-26 | 2014-06-25 | 北京京东尚科信息技术有限公司 | 一种数据处理方法和系统 |
CN103955486A (zh) * | 2014-04-14 | 2014-07-30 | 五八同城信息技术有限公司 | 分布式服务系统及其数据更新、数据查询的方法 |
CN104636500A (zh) * | 2014-10-21 | 2015-05-20 | 北京国双科技有限公司 | 一种查询热数据的方法及装置 |
CN104363303A (zh) * | 2014-11-28 | 2015-02-18 | 东莞中国科学院云计算产业技术创新与育成中心 | 异步缓存数据同步的方法 |
CN105468305A (zh) * | 2015-12-09 | 2016-04-06 | 浪潮(北京)电子信息产业有限公司 | 一种数据缓存方法、装置和系统 |
CN107391269A (zh) * | 2016-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种用于通过持久化队列处理消息的方法与设备 |
CN107273040A (zh) * | 2016-04-08 | 2017-10-20 | 北京优朋普乐科技有限公司 | 数据缓存方法和装置 |
CN106599152A (zh) * | 2016-12-07 | 2017-04-26 | 北京华夏电通科技有限公司 | 一种数据缓存方法及系统 |
CN106815329A (zh) * | 2016-12-29 | 2017-06-09 | 网易无尾熊(杭州)科技有限公司 | 一种缓存数据的更新方法及装置 |
CN107180082A (zh) * | 2017-05-03 | 2017-09-19 | 珠海格力电器股份有限公司 | 一种基于多级缓存机制的数据更新系统及方法 |
CN107357532A (zh) * | 2017-07-14 | 2017-11-17 | 长沙开雅电子科技有限公司 | 一种新型集群存储新型缓存预读实现方法 |
CN108038157A (zh) * | 2017-12-05 | 2018-05-15 | 北京星河星云信息技术有限公司 | 主从数据库读写方法、系统、存储装置和服务器 |
CN108363764A (zh) * | 2018-02-05 | 2018-08-03 | 山东地主网络科技创新有限公司 | 一种分布式缓存管理系统及方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726379A (zh) * | 2019-03-20 | 2020-09-29 | 华为技术有限公司 | 一种通信方法及装置 |
CN111726379B (zh) * | 2019-03-20 | 2021-11-19 | 华为技术有限公司 | 一种通信方法及装置 |
US11963034B2 (en) | 2019-03-20 | 2024-04-16 | Huawei Technologies Co., Ltd. | Communication method and apparatus |
CN110727666A (zh) * | 2019-09-25 | 2020-01-24 | 中冶赛迪重庆信息技术有限公司 | 面向工业互联网平台的缓存组件、方法、设备及存储介质 |
CN112364100A (zh) * | 2020-11-06 | 2021-02-12 | 聚好看科技股份有限公司 | 一种服务器及服务器缓存持久化的方法 |
CN114020663A (zh) * | 2021-11-17 | 2022-02-08 | 中国航空无线电电子研究所 | 一种机载总线数据记录装置 |
CN114020663B (zh) * | 2021-11-17 | 2024-01-30 | 中国航空无线电电子研究所 | 一种机载总线数据记录装置 |
CN114489513A (zh) * | 2022-02-11 | 2022-05-13 | 上海驻云信息科技有限公司 | 一种基于本地磁盘中转的数据返回方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109358805B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109358805A (zh) | 一种数据缓存方法 | |
CN113641457B (zh) | 容器创建方法、装置、设备、介质及程序产品 | |
WO2014005535A1 (zh) | 物联网消息处理方法、装置及系统 | |
CN103049317B (zh) | 云环境下基于队列的高并发数据快速写入系统及方法 | |
CN105847447A (zh) | 消息推送方法和装置 | |
CN105487987B (zh) | 一种处理并发顺序读io的方法及装置 | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN112612799B (zh) | 一种数据同步方法及终端 | |
CN113452774A (zh) | 消息推送方法、装置、设备及存储介质 | |
CN110740145A (zh) | 消息消费方法、装置、存储介质及电子设备 | |
CN108536544B (zh) | 基于数据库消息队列的消费方法、装置、服务器和介质 | |
CN115150471A (zh) | 数据处理方法、装置、设备、存储介质及程序产品 | |
CN115361451A (zh) | 一种网络通信并行处理方法及系统 | |
CN114218135A (zh) | 一种基于Redis缓存的源端流控方法及系统 | |
CN116560802B (zh) | 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统 | |
CN111078384A (zh) | 核心数据迁移的方法、装置、计算机设备及存储介质 | |
CN113821174B (zh) | 存储处理方法、装置、网卡设备及存储介质 | |
US8239447B2 (en) | Retrieving data using an asynchronous buffer | |
CN115981893A (zh) | 消息队列任务处理方法、装置、服务器及存储介质 | |
CN113641604B (zh) | 一种数据传输方法及系统 | |
CN111858665B (zh) | 一种提升软拷贝读性能的方法、系统、终端及存储介质 | |
CN113709214A (zh) | 消息处理方法及装置、电子设备及存储介质 | |
CN115221116A (zh) | 一种数据写入方法、装置、设备及可读存储介质 | |
Yuan et al. | Towards efficient deployment of cloud applications through dynamic reverse proxy optimization | |
US12019909B2 (en) | IO request pipeline processing device, method and system, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |