CN104461929A - 基于拦截器的分布式数据缓存方法 - Google Patents
基于拦截器的分布式数据缓存方法 Download PDFInfo
- Publication number
- CN104461929A CN104461929A CN201310434200.3A CN201310434200A CN104461929A CN 104461929 A CN104461929 A CN 104461929A CN 201310434200 A CN201310434200 A CN 201310434200A CN 104461929 A CN104461929 A CN 104461929A
- Authority
- CN
- China
- Prior art keywords
- processing procedure
- data processing
- method based
- key assignments
- caching 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出了基于拦截器的分布式数据缓存方法。其中,所述方法包括:在进入主数据处理过程之前缓存客户端执行拦截操作,以获得主数据处理过程标识以及相关参数;所述缓存客户端根据所述主数据处理过程标识和相关参数并基于配置文件执行缓存操作。本发明所公开的基于拦截器的分布式数据缓存方法能够简化数据缓存处理过程、可动态调整缓存空间大小以及可实时更新集合数据。
Description
技术领域
本发明涉及数据缓存方法,更具体地,涉及基于拦截器的分布式数据缓存方法。
背景技术
目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,在数据处理过程中进行特定数据的缓存变得越来越重要。
在现有的技术方案中,通常将用于缓存数据的逻辑代码与业务处理逻辑代码混杂在一起,即每处需要缓存数据的地方均需要重复编写数据缓存处理逻辑代码。
由上可见,现有的技术方案存在如下问题:由于需要重复进行数据缓存处理逻辑的编码,故缓存逻辑代码的维护成本较高并且易于出错,此外,由于通常将缓存数据存放在应用所驻留的主机的内存中,故受应用所驻留的主机内存大小的限制而难于根据实际需要对用于缓存数据的内存空间进行扩展,此外,由于将集合数据(即多个数据的集合)作为一个整体进行缓存,故无法对单个缓存对象(即数据集合中的单个数据)进行实时性的更新。
因此,存在如下需求:提供能够简化数据缓存处理过程、可动态调整缓存空间大小以及可实时更新集合数据的基于拦截器的分布式数据缓存方法。
发明内容
为了解决上述现有技术方案所存在的问题,本发明提出了能够简化数据缓存处理过程、可动态调整缓存空间大小以及可实时更新集合数据的基于拦截器的分布式数据缓存方法。
本发明的目的是通过以下技术方案实现的:
一种基于拦截器的分布式数据缓存方法,所述基于拦截器的分布式数据缓存方法包括下列步骤:
(A1)在进入主数据处理过程之前缓存客户端执行拦截操作,以获得主数据处理过程标识以及相关参数;
(A2)所述缓存客户端根据所述主数据处理过程标识和相关参数并基于配置文件执行缓存操作。
在上面所公开的方案中,优选地,所述缓存操作包括:
(1)确定是否存在配置文件,并且如果存在配置文件则进入步骤(1),否则继续执行主数据处理过程;
(2)确定配置文件中的配置信息的类型,如果配置信息的类型是“写入”,则继续执行主数据处理过程,并将所述主数据处理过程的返回值传送到缓存服务器以新增或更新相应的缓存数据,如果配置信息的类型是“读取”,则进入步骤(3);
(3)确定在缓存服务器中是否存在相应的缓存数据,如果存在相应的缓存数据,则从所述缓存服务器中读取所述缓存数据并将读取出的缓存数据返回给所述主数据处理过程的调用者,以及不再执行主数据处理过程,如果不存在相应的缓存数据,则继续执行主数据处理过程并将所述主数据处理过程的返回值传送到缓存服务器以进行存储。
在上面所公开的方案中,优选地,所述缓存操作的步骤(3)进一步包括:在不存在相应的缓存数据的情况下,根据所述主数据处理过程的返回值以预定的规则生成与其相关联的键值,并基于所生成的键值将所述主数据处理过程的返回值存储到所述缓存服务器中。
在上面所公开的方案中,优选地,所述缓存操作的步骤(3)进一步包括:在所述主数据处理过程的返回值是集合对象的情况下,所述缓存服务器以如下方式存储所述集合对象:(1)将集合对象中的所有对象的键值作为索引存储;(2)拆分出每个对象并将每个对象分别存储。
在上面所公开的方案中,优选地,以如下方式查询已被缓存的集合对象:(1)从所述缓存服务器中读取出相应的集合对象的索引;(2)根据读取出的索引读取出与其相关联的所有对象,并将读取出的所有对象作为整体返回给调用者。
在上面所公开的方案中,优选地,以如下方式更新缓存的集合对象中的单个对象:(1)基于已更新的源数据生成键值;(2)将所生成的键值作为索引并更新与该索引相关联的缓存数据。
在上面所公开的方案中,优选地,以如下方式删除缓存的集合对象中的单个对象:(1)基于已删除的源数据生成键值;(2)将所生成的键值作为索引并删除与该索引相关联的缓存数据。
在上面所公开的方案中,优选地,以如下方式在缓存的集合对象中新增单个对象:(1)基于已新增的源数据生成键值;(2)基于所生成的键值将相应的新增的单个对象存储到所述缓存服务器中。
在上面所公开的方案中,优选地,一个缓存客户端能够与多个缓存服务器相连接,并且每个缓存服务器能够同时与多个缓存客户端相连接。
在上面所公开的方案中,优选地,各个缓存客户端的配置文件中的配置信息能够被同步更新。
在上面所公开的方案中,优选地,所述配置文件是注解形式的或XML文件形式的。
本发明所公开的基于拦截器的分布式数据缓存方法具有以下优点:(1)由于用于缓存数据的逻辑代码与业务处理逻辑代码分开处理,故能够简化数据缓存处理过程;(2)由于采用了分布式缓存技术(即缓存客户端和缓存服务器之间的多对多关系),故可动态地调整缓存空间大小;(3)由于集合对象中的各个对象被彼此独立地缓存,故可以实时更新集合对象中的单个对象。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的基于拦截器的分布式数据缓存方法的流程图;
图2是根据本发明的实施例的分布式数据缓存处理的示意性实例。
具体实施方式
图1是根据本发明的实施例的基于拦截器的分布式数据缓存方法的流程图。如图1所示,本发明所公开的基于拦截器的分布式数据缓存方法包括下列步骤:(A1)在进入主数据处理过程(例如特定的业务逻辑处理)之前缓存客户端执行拦截操作,以获得主数据处理过程标识(例如业务方法名)以及相关参数;(A2)所述缓存客户端根据所述主数据处理过程标识和相关参数并基于配置文件执行缓存操作。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,所述缓存操作包括:(1)确定是否存在配置文件,并且如果存在配置文件则进入步骤(1),否则继续执行主数据处理过程;(2)确定配置文件中的配置信息的类型,如果配置信息的类型是“写入”,则继续执行主数据处理过程,并将所述主数据处理过程的返回值传送到缓存服务器以新增或更新相应的缓存数据,如果配置信息的类型是“读取”,则进入步骤(3);(3)确定在缓存服务器中是否存在相应的缓存数据,如果存在相应的缓存数据,则从所述缓存服务器中读取所述缓存数据并将读取出的缓存数据返回给所述主数据处理过程的调用者,以及不再执行主数据处理过程,如果不存在相应的缓存数据,则继续执行主数据处理过程并将所述主数据处理过程的返回值传送到缓存服务器以进行存储。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,所述缓存操作的步骤(3)进一步包括:在不存在相应的缓存数据的情况下,根据所述主数据处理过程的返回值以预定的规则生成与其相关联的键值(key),并基于所生成的键值将所述主数据处理过程的返回值存储到所述缓存服务器中。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,所述缓存操作的步骤(3)进一步包括:在所述主数据处理过程的返回值是集合对象(例如多个数据的集合)的情况下,所述缓存服务器以如下方式存储所述集合对象:(1)将集合对象中的所有对象的键值作为索引存储;(2)拆分出每个对象并将每个对象分别存储(即每个对象被相互独立地存储)。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,以如下方式查询已被缓存的集合对象:(1)从所述缓存服务器中读取出相应的集合对象的索引(即键值);(2)根据读取出的索引读取出与其相关联的所有对象,并将读取出的所有对象作为整体返回给调用者。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,以如下方式更新缓存的集合对象中的单个对象:(1)基于已更新的源数据生成键值;(2)将所生成的键值作为索引并更新与该索引相关联的缓存数据。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,以如下方式删除缓存的集合对象中的单个对象:(1)基于已删除的源数据生成键值;(2)将所生成的键值作为索引并删除与该索引相关联的缓存数据(可选地,可以在上述删除操作完成后更新所述缓存服务器的索引)。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,以如下方式在缓存的集合对象中新增单个对象:(1)基于已新增的源数据生成键值;(2)基于所生成的键值将相应的新增的单个对象存储到所述缓存服务器中。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,一个缓存客户端能够与多个缓存服务器相连接,并且每个缓存服务器能够同时与多个缓存客户端相连接。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,各个缓存客户端的配置文件中的配置信息能够被同步更新。
优选地,在本发明所公开的基于拦截器的分布式数据缓存方法中,所述配置文件是注解(annotation)形式的或XML文件形式的。
图2是根据本发明的实施例的分布式数据缓存处理的示意性实例。如图2所示,所述缓存服务器以如下方式存储集合对象:(1)将集合对象中的所有对象的键值作为索引存储;(2)拆分出每个对象并将每个对象分别存储(即每个对象被相互独立地存储)。由此,在进行针对单个对象的相关操作(诸如存储、查询或更新等等)时,所述缓存服务器将首先通过该单个对象的索引进行定位操作并随后通过该索引提供的链接访问相关联的对象(例如数据)。
由上可见,本发明所公开的基于拦截器的分布式数据缓存方法具有下列优点:(1)由于用于缓存数据的逻辑代码与业务处理逻辑代码分开处理,故能够简化数据缓存处理过程;(2)由于采用了分布式缓存技术(即缓存客户端和缓存服务器之间的多对多关系),故可动态地调整缓存空间大小;(3)由于集合对象中的各个对象被彼此独立地缓存,故可以实时更新集合对象中的单个对象。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (11)
1.一种基于拦截器的分布式数据缓存方法,所述基于拦截器的分布式数据缓存方法包括下列步骤:
(A1)在进入主数据处理过程之前缓存客户端执行拦截操作,以获得主数据处理过程标识以及相关参数;
(A2)所述缓存客户端根据所述主数据处理过程标识和相关参数并基于配置文件执行缓存操作。
2.根据权利要求1所述的基于拦截器的分布式数据缓存方法,其特征在于,所述缓存操作包括:
(1)确定是否存在配置文件,并且如果存在配置文件则进入步骤(1),否则继续执行主数据处理过程;
(2)确定配置文件中的配置信息的类型,如果配置信息的类型是“写入”,则继续执行主数据处理过程,并将所述主数据处理过程的返回值传送到缓存服务器以新增或更新相应的缓存数据,如果配置信息的类型是“读取”,则进入步骤(3);
(3)确定在缓存服务器中是否存在相应的缓存数据,如果存在相应的缓存数据,则从所述缓存服务器中读取所述缓存数据并将读取出的缓存数据返回给所述主数据处理过程的调用者,以及不再执行主数据处理过程,如果不存在相应的缓存数据,则继续执行主数据处理过程并将所述主数据处理过程的返回值传送到缓存服务器以进行存储。
3.根据权利要求2所述的基于拦截器的分布式数据缓存方法,其特征在于,所述缓存操作的步骤(3)进一步包括:在不存在相应的缓存数据的情况下,根据所述主数据处理过程的返回值以预定的规则生成与其相关联的键值,并基于所生成的键值将所述主数据处理过程的返回值存储到所述缓存服务器中。
4.根据权利要求3所述的基于拦截器的分布式数据缓存方法,其特征在于,所述缓存操作的步骤(3)进一步包括:在所述主数据处理过程的返回值是集合对象的情况下,所述缓存服务器以如下方式存储所述集合对象:(1)将集合对象中的所有对象的键值作为索引存储;(2)拆分出每个对象并将每个对象分别存储。
5.根据权利要求4所述的基于拦截器的分布式数据缓存方法,其特征在于,以如下方式查询已被缓存的集合对象:(1)从所述缓存服务器中读取出相应的集合对象的索引;(2)根据读取出的索引读取出与其相关联的所有对象,并将读取出的所有对象作为整体返回给调用者。
6.根据权利要求5所述的基于拦截器的分布式数据缓存方法,其特征在于,以如下方式更新缓存的集合对象中的单个对象:(1)基于已更新的源数据生成键值;(2)将所生成的键值作为索引并更新与该索引相关联的缓存数据。
7.根据权利要求6所述的基于拦截器的分布式数据缓存方法,其特征在于,以如下方式删除缓存的集合对象中的单个对象:(1)基于已删除的源数据生成键值;(2)将所生成的键值作为索引并删除与该索引相关联的缓存数据。
8.根据权利要求7所述的基于拦截器的分布式数据缓存方法,其特征在于,以如下方式在缓存的集合对象中新增单个对象:(1)基于已新增的源数据生成键值;(2)基于所生成的键值将相应的新增的单个对象存储到所述缓存服务器中。
9.根据权利要求8所述的基于拦截器的分布式数据缓存方法,其特征在于,一个缓存客户端能够与多个缓存服务器相连接,并且每个缓存服务器能够同时与多个缓存客户端相连接。
10.根据权利要求9所述的基于拦截器的分布式数据缓存方法,其特征在于,各个缓存客户端的配置文件中的配置信息能够被同步更新。
11.根据权利要求10所述的基于拦截器的分布式数据缓存方法,其特征在于,所述配置文件是注解形式的或XML文件形式的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310434200.3A CN104461929B (zh) | 2013-09-23 | 2013-09-23 | 基于拦截器的分布式数据缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310434200.3A CN104461929B (zh) | 2013-09-23 | 2013-09-23 | 基于拦截器的分布式数据缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461929A true CN104461929A (zh) | 2015-03-25 |
CN104461929B CN104461929B (zh) | 2018-03-23 |
Family
ID=52908015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310434200.3A Active CN104461929B (zh) | 2013-09-23 | 2013-09-23 | 基于拦截器的分布式数据缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461929B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100289A (zh) * | 2015-09-24 | 2015-11-25 | 中邮科通信技术股份有限公司 | 一种基于注解描述的Web缓存方法 |
CN105426117A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种系统性能优化方法及装置 |
CN107463378A (zh) * | 2017-07-28 | 2017-12-12 | 深圳市丰巢科技有限公司 | 一种基于注解的本地缓存实现方法、存储设备及电子设备 |
CN108628891A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 实现数据缓存层的方法、装置、电子设备和可读存储介质 |
CN110362505A (zh) * | 2019-07-10 | 2019-10-22 | 政采云有限公司 | 一种使用缓存拦截器进行读写缓存的方法 |
CN110489310A (zh) * | 2018-09-25 | 2019-11-22 | 北京数聚鑫云信息技术有限公司 | 一种记录用户操作的方法、装置、存储介质及计算机设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0922384A (ja) * | 1995-01-23 | 1997-01-21 | Tandem Comput Inc | キャッシュ付きマルチプロセッサシステムのための分散型デーキャッシュ |
US20010016896A1 (en) * | 1992-06-03 | 2001-08-23 | Pitts William Michael | System for accessing distributed data cache channel at each network node to pass requests and data- |
CN101286895A (zh) * | 2008-05-22 | 2008-10-15 | 上海交通大学 | 可动态配置的分布式网络数据监控系统及方法 |
CN201601694U (zh) * | 2009-07-10 | 2010-10-06 | 深圳市赛格导航科技股份有限公司 | 一种分布式缓存系统 |
CN102014158A (zh) * | 2010-11-29 | 2011-04-13 | 北京兴宇中科科技开发股份有限公司 | 一种云存储服务客户端高效细粒度数据缓存系统与方法 |
CN102333108A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 分布式缓存同步系统及方法 |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN102880557A (zh) * | 2012-09-13 | 2013-01-16 | 浙江金大科技有限公司 | 一种异构数据源的多级分布式高速缓存 |
CN103167036A (zh) * | 2013-01-28 | 2013-06-19 | 浙江大学 | 基于分布式多级缓存系统的栅格数据存取方法 |
-
2013
- 2013-09-23 CN CN201310434200.3A patent/CN104461929B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010016896A1 (en) * | 1992-06-03 | 2001-08-23 | Pitts William Michael | System for accessing distributed data cache channel at each network node to pass requests and data- |
JPH0922384A (ja) * | 1995-01-23 | 1997-01-21 | Tandem Comput Inc | キャッシュ付きマルチプロセッサシステムのための分散型デーキャッシュ |
CN101286895A (zh) * | 2008-05-22 | 2008-10-15 | 上海交通大学 | 可动态配置的分布式网络数据监控系统及方法 |
CN201601694U (zh) * | 2009-07-10 | 2010-10-06 | 深圳市赛格导航科技股份有限公司 | 一种分布式缓存系统 |
CN102014158A (zh) * | 2010-11-29 | 2011-04-13 | 北京兴宇中科科技开发股份有限公司 | 一种云存储服务客户端高效细粒度数据缓存系统与方法 |
CN102333108A (zh) * | 2011-03-18 | 2012-01-25 | 北京神州数码思特奇信息技术股份有限公司 | 分布式缓存同步系统及方法 |
CN102739720A (zh) * | 2011-04-14 | 2012-10-17 | 中兴通讯股份有限公司 | 分布式缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN102880557A (zh) * | 2012-09-13 | 2013-01-16 | 浙江金大科技有限公司 | 一种异构数据源的多级分布式高速缓存 |
CN103167036A (zh) * | 2013-01-28 | 2013-06-19 | 浙江大学 | 基于分布式多级缓存系统的栅格数据存取方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105100289A (zh) * | 2015-09-24 | 2015-11-25 | 中邮科通信技术股份有限公司 | 一种基于注解描述的Web缓存方法 |
CN105426117A (zh) * | 2015-10-27 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种系统性能优化方法及装置 |
CN105426117B (zh) * | 2015-10-27 | 2018-11-16 | 浪潮(北京)电子信息产业有限公司 | 一种系统性能优化方法及装置 |
CN108628891A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 实现数据缓存层的方法、装置、电子设备和可读存储介质 |
CN107463378A (zh) * | 2017-07-28 | 2017-12-12 | 深圳市丰巢科技有限公司 | 一种基于注解的本地缓存实现方法、存储设备及电子设备 |
CN110489310A (zh) * | 2018-09-25 | 2019-11-22 | 北京数聚鑫云信息技术有限公司 | 一种记录用户操作的方法、装置、存储介质及计算机设备 |
CN110489310B (zh) * | 2018-09-25 | 2020-04-14 | 北京数聚鑫云信息技术有限公司 | 一种记录用户操作的方法、装置、存储介质及计算机设备 |
CN110362505A (zh) * | 2019-07-10 | 2019-10-22 | 政采云有限公司 | 一种使用缓存拦截器进行读写缓存的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461929B (zh) | 2018-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461929A (zh) | 基于拦截器的分布式数据缓存方法 | |
CN105243067B (zh) | 一种实现实时增量同步数据的方法及装置 | |
CN104090889B (zh) | 数据处理方法及系统 | |
CN103294710B (zh) | 一种数据存取方法和装置 | |
CN108536778B (zh) | 一种数据应用共享平台及方法 | |
CN105183839A (zh) | 一种基于Hadoop的小文件分级索引的存储优化方法 | |
CN105740303B (zh) | 改进的对象存储的方法及装置 | |
US11487714B2 (en) | Data replication in a data analysis system | |
CN112559448B (zh) | 数据状态迁移方法、装置、计算机设备和存储介质 | |
JP2020140699A (ja) | データを記憶およびクエリするための方法、装置、設備、および媒体 | |
CN104104717A (zh) | 投放渠道数据统计方法及装置 | |
US11663288B2 (en) | Just-in-time front end template generation using logical document object models | |
CN110442561B (zh) | 基于区块链的分布式文件存储系统及其存储方法 | |
CN104657143A (zh) | 高性能数据缓存方法 | |
CN103812934B (zh) | 基于云存储系统的遥感数据发布方法 | |
CN106844089A (zh) | 一种用于恢复树形数据存储的方法与设备 | |
CN110955655A (zh) | 动态cmdb数据库模型存储方法和系统 | |
CN102523301A (zh) | 一种云存储中在客户端缓存数据的方法 | |
CN102272751A (zh) | 在数据库环境通过背景同步的数据完整性 | |
CN103713926B (zh) | 一种预更新软件客户端的方法及系统 | |
CN116226200A (zh) | 一种基于bff架构的服务接口数据缓存方法、装置及设备 | |
CN104298761A (zh) | 一种异构软件系统间主数据匹配的实现方法 | |
CN105446824B (zh) | 表增量获取方法及异地数据备份方法 | |
CN105677579A (zh) | 缓存系统中的数据访问方法和系统 | |
WO2022252322A1 (zh) | 基于特征标记的电网监控系统内存库关系库同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |