CN111563106A - 一种数据缓存方法、装置、系统及可读存储介质 - Google Patents
一种数据缓存方法、装置、系统及可读存储介质 Download PDFInfo
- Publication number
- CN111563106A CN111563106A CN202010674914.1A CN202010674914A CN111563106A CN 111563106 A CN111563106 A CN 111563106A CN 202010674914 A CN202010674914 A CN 202010674914A CN 111563106 A CN111563106 A CN 111563106A
- Authority
- CN
- China
- Prior art keywords
- data
- client
- request
- data request
- cache
- 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
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
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)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机软件技术领域,并公开了一种数据缓存方法、装置、系统及可读存储介质,该方法为:接收客户端的数据请求后,判断数据缓存中是否存储有该数据请求对应的数据,若有,则读取该数据缓存中对应的数据,以响应该数据请求;若无,则读取数据库中对应的数据,以响应该数据请求,且在响应该数据请求之前,根据客户端所属的数据请求策略,预测该客户端的下一次数据请求的数据,并将预测的数据存储至数据缓存中。因此,本发明在利用数据缓存的高数据读取速度的同时,对数据缓存进行填充式缓存预测的下一次数据请求的数据,在数据缓存空间与服务响应效率之间取一个平衡点,以空间换时间,提高应用程序接口响应速度,更好地保证用户体验。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种数据缓存方法、装置、系统及可读存储介质,尤其适用于数据检索。
背景技术
传统应用程序中,当应用程序需要检索大量动态多维数据时,由于需要检索的数据量大,且变化迅速,多以实时查询为主,但受限于数据库磁盘的读取速度,容易出现应用程序接口响应缓慢,导致服务质量不足,用户体验差。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于:提供一种数据缓存方法,能够提高应用程序在检索大量动态多维数据的响应速度,提升应用程序的用户体验。
为实现上述目的,本发明提供一种数据缓存方法,其包括:
接收客户端的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据;
若所述数据缓存中存储有所述数据请求对应的数据,则读取所述数据缓存中对应的数据,以响应所述数据请求;
若所述数据缓存中未存储有所述数据请求对应的数据,则读取数据库中对应的数据,以响应所述数据请求,且响应所述数据请求之前,确定所述客户端所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存中。
根据一种具体的实施方式,本发明的数据缓存方法中,在将预测到的数据存储至所述数据缓存时,还包括设置失效时间;其中,若在所述失效时间内所述数据缓存中数据未被读取,则该数据失效。
根据一种具体的实施方式,本发明的数据缓存方法中,所述数据库存储有所述客户端的历史数据请求对应的数据。
进一步地,本发明的数据缓存方法中,预先通过数据挖掘算法对所述客户端的历史数据请求对应的数据进行挖掘,得到所述客户端的数据请求策略。
再进一步地,本发明的数据缓存方法还根据客户端的数据请求中的客户端属性信息,确定所述客户端所对应的数据请求策略。其中,所述客户端属性信息包括客户端设备号和/或客户端用户标识。
根据一种具体的实施方式,本发明的数据缓存方法中,所述数据请求的格式采用可扩展标识语言XML格式或JSON格式。
基于与本发明公开的数据缓存方法相同的发明构思,在具体实施的一方面,本发明还提供一种数据缓存装置,其包括:
数据缓存模块,用于缓存数据请求对应的数据;
数据库模块,用于存储所述客户端的历史数据请求对应的数据;
数据调度模块,用于在接收客户端的数据请求后,判断所述数据缓存模块中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存模块中对应的数据,以响应所述数据请求,否则,读取所述数据库模块中对应的数据,以响应所述数据请求;
策略确定模块,用于在读取所述数据库模块中对应的数据响应所述数据请求之前,确定所述客户端所属的数据请求策略;
数据预测模块,用于根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存模块中。
基于与本发明公开的数据缓存方法相同的发明构思,在具体实施的另一方面,本发明还提供一种数据缓存系统,其包括:
应用服务器,用于接收客户端的数据请求;
数据库服务器,存储所述客户端的历史数据请求对应的数据;
缓存管理服务器,用于在接收客户端的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存中对应的数据,用于响应所述数据请求,否则,读取数据库服务器中对应的数据,用于响应所述数据请求,且在响应所述数据请求之前,确定所述客户端所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测到的数据存储至所述数据缓存中。
此外,本发明在具体实施的一方面,还提供一种可读存储介质,其上存储有一个或多个程序,且该一个或多个程序被一个或多个处理器执行时实现本发明公开的数据缓存方法。
与现有技术相比,本发明的有益效果:
本发明公开的数据缓存方法,其工作步骤包括:接收客户端的数据请求后,判断数据缓存中是否存储有该数据请求对应的数据,若有,则读取该数据缓存中对应的数据,以响应该数据请求;若无,则读取数据库中对应的数据,以响应该数据请求,且在响应该数据请求之前,根据客户端所属的数据请求策略,预测该客户端的下一次数据请求的数据,并将预测的数据存储至数据缓存中。因此,本发明在利用数据缓存的高数据读取速度的同时,对数据缓存进行填充式缓存预测的下一次数据请求的数据,在数据缓存空间与服务响应效率之间取一个平衡点,以空间换时间,提高应用程序接口响应速度,更好地保证用户体验。
附图说明
图1为本发明的数据缓存方法的流程图;
图2为本发明数据缓存装置的结构示意图;
图3为本发明数据缓存系统的结构示意图;
图4为本发明数据缓存系统与客户端的进行数据交互的流程示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
如图1所示,本发明数据缓存方法实际为客户端与服务端之间数据交互的中间步骤,即首先需要客户端发出数据请求,即完成步骤S100,然后本发明数据缓存方法开始以下步骤:
步骤S101:在接收客户端的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据。具体的,若数据缓存中存储有所述数据请求对应的数据,则执行步骤S102A,即读取所述数据缓存中对应的数据,以响应所述数据请求;
若所述数据缓存中未存储有所述数据请求对应的数据,则执行步骤S102a,即读取数据库中对应的数据,以响应所述数据请求。同时,进一步,执行步骤S102b,即在响应所述数据请求之前,确定所述客户端所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存中。
最后,由服务端响应客户端发出的数据请求,完成步骤S103,即将客户端发出的数据请求对应的数据返回给客户端。
具体的,在本发明的步骤S102b中,在将预测到的数据存储至所述数据缓存时,还包括设置失效时间;其中,若在所述失效时间内所述数据缓存中数据未被读取,则该数据失效。
同时,本发明的数据缓存方法中涉及到的数据库存储有客户端的历史数据请求对应的数据。如此,便可预先通过数据挖掘算法对所述客户端的历史数据请求对应的数据进行挖掘,得到所述客户端的数据请求策略。需要指出的是,本发明中客户端所属的数据请求策略可通过预先编写的程序或算法进行定义,然后通过运行预先编写的程序或算法,即可预测该客户端的下一次数据请求对应的数据。
例如,预先配置的程序或算法执行时采用关联策略,该关联策略为:如果请求A数据后,往往会接着请求B数据(A与B有着前后关联的关系,A与B之间的联系通过数据挖掘得到),那么当前策略会预加载B数据。或者,预先配置的程序或算法执行时采用分页策略,该分页策略为:如果请求数据是分页获取数据,那么当前策略会预加载下一页数据。
在实施时,客户端的数据请求中封装有的客户端属性信息,用于确定所述客户端所对应的数据请求策略。其中,所述客户端属性信息包括客户端设备号和/或客户端用户标识。本发明的数据缓存方法中,所述数据请求的格式采用可扩展标识语言XML格式或JSON格式。
如图2所示,本发明还提供一种数据缓存装置100,其包括:
数据缓存模块103,用于缓存数据请求对应的数据;
数据库模块101,用于存储所述客户端的历史数据请求对应的数据;
数据调度模块102,用于在接收客户端的数据请求后,判断所述数据缓存模块中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存模块中对应的数据,以响应所述数据请求,否则,读取所述数据库模块中对应的数据,以响应所述数据请求;
策略确定模块105,用于在读取所述数据库模块中对应的数据响应所述数据请求之前,确定所述客户端所属的数据请求策略;
数据预测模块104,用于根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存模块中。
在实施时,本发明的数据缓存装置,其数据库模块可具体为存储硬盘,数据缓存模块可具体为内存条,数据调度模块可为中央处理器,用于数据分析与处理,以及运行算法和程序,而策略确定模块和数据预测模块则作为算法或程序功能模块,这些功能模块可以通过相应的算法或程序来实现相应的功能。
如图3所示,本发明还提供一种数据缓存系统,其包括:
应用服务器400,用于接收客户端500的数据请求;
数据库服务器200,存储所述客户端500的历史数据请求对应的数据;
缓存管理服务器300,用于在接收客户端500的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存中对应的数据,用于响应所述数据请求,否则,读取数据库服务器中对应的数据,用于响应所述数据请求,且在响应所述数据请求之前,确定所述客户端500所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测到的数据存储至所述数据缓存中。
具体的,本发明数据缓存系统与客户端的进行数据交互的流程如图4所示,首先由客户端500向应用服务器400发送数据请求,应用服务器400接收到该数据请求后,再向缓存管理服务器300发送数据获取请求,缓存管理服务器300接收到数据获取请求后,判断其缓存中是否存储有该数据请求对应的数据,如果有,则直接读取其缓存中存储的数据,并返回给应用服务器400;如果没有,则从数据库服务器200中读取该数据请求对应的数据,同样也返回给应用服务器400。
数据由缓存管理服务器300返回给应用服务器400后,一方面应用服务器400响应客户端500发送的数据请求,即将其接收到由缓存管理服务器300返回的数据发送给客户端500,同时另一方面,在缓存管理服务器300内部产生一个异步消息,该异步消息作用于缓存管理服务器300内部的预测算法或预测程序的启动,通过运行该预测算法或者预测程序,即可得到客户端500下一次数据请求对应的数据,然后将预测得到的数据存储至缓存管理服务器300中的内存上。
通过本发明数据缓存系统的多层体系架构,客户端500在缓存管理服务器300中检索数据的速度远远超过直接在数据库服务器200中检索的速度。而且,在缓存管理服务器300内不仅完成离线计算而预测客户端500下一次数据请求对应的数据,还完成预测的数据的缓存,有效地提高业务模块查询和计算的速度以及性能。
因此,本发明在利用数据缓存的高数据读取速度的同时,对数据缓存进行填充式缓存预测的下一次数据请求的数据,在数据缓存空间与服务响应效率之间取一个平衡点,以空间换时间,提高应用程序接口响应速度,更好地保证用户体验。
此外,本发明在具体实施的一方面,还提供一种可读存储介质,如ROM存储设备、移动硬盘、U盘或者光盘等存储器,将一个或多个程序写入存储器中,并一个或多个处理器来执行该存储器中的程序。如此,当该存储器中的程序被处理器执行时实现本发明公开的数据同缓存方法。
Claims (10)
1.一种数据缓存方法,其特征在于,包括:
接收客户端的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据;
若所述数据缓存中存储有所述数据请求对应的数据,则读取所述数据缓存中对应的数据,以响应所述数据请求;
若所述数据缓存中未存储有所述数据请求对应的数据,则读取数据库中对应的数据,以响应所述数据请求,且响应所述数据请求之前,确定所述客户端所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存中。
2.如权利要求1所述的数据缓存方法,其特征在于,将预测到的数据存储至所述数据缓存时,还包括设置失效时间;其中,若在所述失效时间内所述数据缓存中数据未被读取,则该数据失效。
3.如权利要求1所述的数据缓存方法,其特征在于,所述数据库存储有所述客户端的历史数据请求对应的数据。
4.如权利要求3所述的数据缓存方法,其特征在于,预先通过数据挖掘算法对所述客户端的历史数据请求对应的数据进行挖掘,得到所述客户端的数据请求策略。
5.如权利要求4所述的数据缓存方法,其特征在于,根据客户端的数据请求中的客户端属性信息,确定所述客户端所对应的数据请求策略。
6.如权利要求5所述的数据缓存方法,其特征在于,所述客户端属性信息包括客户端设备号和/或客户端用户标识。
7.如权利要求1~5任一项所述的数据缓存方法,其特征在于,所述数据请求的格式采用可扩展标识语言XML格式或JSON格式。
8.一种数据缓存装置,其特征在于,包括:
数据缓存模块,用于缓存数据请求对应的数据;
数据库模块,用于存储客户端的历史数据请求对应的数据;
数据调度模块,用于在接收客户端的数据请求后,判断所述数据缓存模块中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存模块中对应的数据,以响应所述数据请求,否则,读取所述数据库模块中对应的数据,以响应所述数据请求;
策略确定模块,用于在读取所述数据库模块中对应的数据响应所述数据请求之前,确定所述客户端所属的数据请求策略;
数据预测模块,用于根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测的数据存储至所述数据缓存模块中。
9.一种数据缓存系统,其特征在于,包括:
应用服务器,用于接收客户端的数据请求;
数据库服务器,存储所述客户端的历史数据请求对应的数据;
缓存管理服务器,用于在接收客户端的数据请求后,判断数据缓存中是否存储有所述数据请求对应的数据,若有,则读取所述数据缓存中对应的数据,以响应所述数据请求,否则,读取数据库服务器中对应的数据,以响应所述数据请求,且在响应所述数据请求之前,确定所述客户端所属的数据请求策略,并根据确定的数据请求策略,预测所述客户端的下一次数据请求对应的数据,并将预测到的数据存储至所述数据缓存中。
10.一种可读存储介质,其上存储有一个或多个程序,其特征在于,该一个或多个程序被一个或多个处理器执行时实现权利要求1~7任一项所述的数据缓存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010674914.1A CN111563106A (zh) | 2020-07-14 | 2020-07-14 | 一种数据缓存方法、装置、系统及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010674914.1A CN111563106A (zh) | 2020-07-14 | 2020-07-14 | 一种数据缓存方法、装置、系统及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111563106A true CN111563106A (zh) | 2020-08-21 |
Family
ID=72068897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010674914.1A Pending CN111563106A (zh) | 2020-07-14 | 2020-07-14 | 一种数据缓存方法、装置、系统及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111563106A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486074A (zh) * | 2020-12-03 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据处理系统、方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877000A (zh) * | 2009-12-21 | 2010-11-03 | 山东中创软件商用中间件股份有限公司 | 一种数据展现的方法和装置 |
CN103886038A (zh) * | 2014-03-10 | 2014-06-25 | 中标软件有限公司 | 数据缓存方法及装置 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN108605053A (zh) * | 2016-12-28 | 2018-09-28 | 谷歌有限责任公司 | 优化为未来动作缓存的用户界面数据 |
CN110019362A (zh) * | 2017-11-08 | 2019-07-16 | 中移(苏州)软件技术有限公司 | 一种访问数据库的方法及装置 |
US20190268435A1 (en) * | 2018-02-28 | 2019-08-29 | International Business Machines Corporation | Resource pre-caching and tenant workflow recognition using cloud audit records |
US20190273804A1 (en) * | 2018-03-04 | 2019-09-05 | Netskrt Systems, Inc. | System and apparatus for intelligently caching data based on predictable schedules of mobile transportation environments |
-
2020
- 2020-07-14 CN CN202010674914.1A patent/CN111563106A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877000A (zh) * | 2009-12-21 | 2010-11-03 | 山东中创软件商用中间件股份有限公司 | 一种数据展现的方法和装置 |
CN103886038A (zh) * | 2014-03-10 | 2014-06-25 | 中标软件有限公司 | 数据缓存方法及装置 |
CN105426411A (zh) * | 2015-10-31 | 2016-03-23 | 南京南瑞继保电气有限公司 | 基于访问趋势预测的时间序列数据库缓存管理方法 |
CN108605053A (zh) * | 2016-12-28 | 2018-09-28 | 谷歌有限责任公司 | 优化为未来动作缓存的用户界面数据 |
CN110019362A (zh) * | 2017-11-08 | 2019-07-16 | 中移(苏州)软件技术有限公司 | 一种访问数据库的方法及装置 |
US20190268435A1 (en) * | 2018-02-28 | 2019-08-29 | International Business Machines Corporation | Resource pre-caching and tenant workflow recognition using cloud audit records |
US20190273804A1 (en) * | 2018-03-04 | 2019-09-05 | Netskrt Systems, Inc. | System and apparatus for intelligently caching data based on predictable schedules of mobile transportation environments |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486074A (zh) * | 2020-12-03 | 2021-03-12 | 上海哔哩哔哩科技有限公司 | 数据处理系统、方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017028697A1 (zh) | 计算机集群的扩容和缩容方法及设备 | |
CN110109953B (zh) | 一种数据查询方法、装置及设备 | |
US8909863B2 (en) | Cache for storage and/or retrieval of application information | |
US6954752B2 (en) | Methods and apparatus for clustering and prefetching data objects | |
WO2021093365A1 (zh) | 一种gpu显存管理控制方法及相关装置 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
CN111881096B (zh) | 一种文件读取方法、装置、设备及存储介质 | |
CN101751470B (zh) | 用于存储和/或检索数据集的系统及其方法 | |
CN110222046B (zh) | 列表数据的处理方法、装置、服务器和存储介质 | |
CN111563106A (zh) | 一种数据缓存方法、装置、系统及可读存储介质 | |
US20170017574A1 (en) | Efficient cache warm up based on user requests | |
CN111913913B (zh) | 访问请求的处理方法和装置 | |
CN115858409A (zh) | 一种数据预取方法、计算节点和存储系统 | |
CN111694806B (zh) | 一种事务日志的缓存方法、装置、设备和存储介质 | |
CN113051221A (zh) | 数据存储方法、装置、介质、设备及分布式文件系统 | |
CN110019362B (zh) | 一种访问数据库的方法及装置 | |
CN114721727B (zh) | 一种处理器、电子设备及多线程共享的指令预取方法 | |
US11789908B2 (en) | Offloading memory maintenance for a log-structured file system | |
CN116842299B (zh) | 动态数据访问风险控制系统与方法 | |
CN112286946B (zh) | 数据处理方法、服务器和介质 | |
US11755534B2 (en) | Data caching method and node based on hyper-converged infrastructure | |
CN111208944B (zh) | 数据预判方法、装置和可读存储介质 | |
US9244832B1 (en) | Cache learning model | |
CN115952005B (zh) | 一种元数据负载均衡方法、装置、设备及可读存储介质 | |
CN112363905B (zh) | 一种应用日志收集系统 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200821 |
|
WD01 | Invention patent application deemed withdrawn after publication |