用于JAVA平台的数据缓存系统、方法以及计算机终端技术方案

技术编号:19934223 阅读:29 留言:0更新日期:2018-12-29 04:33
本发明专利技术涉及一种用于JAVA平台的数据缓存系统、方法以及计算机终端。该系统包括缓存,缓存包括堆内内存和堆外内存。堆内内存用于存储key值和堆外内存指示器,key值和堆外内存指示器相对应;堆外内存用于存储待缓存数据。缓存管理单元,根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,缓存地址信息为待缓存数据在堆外内存的存储地址信息;堆外内存指示器,用于存储缓存地址信息。通过实施本发明专利技术,实现对缓存的同一高效管理,减少垃圾回收时间;实现进程共享,较少虚拟机间的对象复制;并可实现持久化存储的快速重启。

【技术实现步骤摘要】
用于JAVA平台的数据缓存系统、方法以及计算机终端
本专利技术涉及JAVA平台数据管理领域,更具体地说,涉及一种用于JAVA平台的数据缓存系统、方法以及计算机终端。
技术介绍
大量数据流动是web应用性能问题常见的原因,而缓存被广泛的用于优化数据库应用。目前很多基于JAVA的应用程序在数据的操作过程中对数据库的依赖性比较强,数据量较大的访问对数据库响应速度以及并发数量都有较大的瓶颈。而将数据缓存后,应用程序在数据访问过程中将不在完全依赖数据库,直接通过缓存数据进行数据操作,与数据库交互部分依托于数据缓存系统进行处理。目前数据缓存的方法很多,但是使用过程中针对不同的应用系统时,对大数据量的访问如果缓存数据不完整,或者缓存数据层级关系不当,将导致数据显示不完整以及数据返回性能瓶颈,影响用户使用,无法提供满意的用户体验。数据缓存对数据库的依赖无法做到统一有效的管理。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述数据缓存对数据库的依赖无法做到统一有效的管理的缺陷,提供一种用于JAVA平台的数据缓存系统、方法以及计算机终端。本专利技术解决其技术问题所采用的技术方案是:构造一种用于JAVA平台的数据缓存系统,包括:缓存,所述缓存包括堆内内存和堆外内存;缓存管理单元,根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,所述缓存地址信息为所述待缓存数据在所述堆外内存的存储地址信息;堆外内存指示器,用于存储所述缓存地址信息;所述堆内内存,用于存储所述key值和堆外内存指示器;所述key值和堆外内存指示器相对应;所述堆外内存,用于存储所述待缓存数据。进一步,本专利技术所述的用于JAVA平台的数据缓存系统,所述缓存管理单元,还用于使用LRU算法结合设置的预设缓存时间来清理使用的缓存,以及通过配置所述堆外内存映射到存储介质上的预设文件进行缓存数据的持久化操作;所述堆外内存缓冲区还用于申请所述堆外内存的存储空间和存储位置,管理所述堆外内存指示器,以及在所述堆外内存中序列化批量JAVA对象。另,本专利技术还提供一种用于JAVA平台的数据缓存方法,应用于缓存管理,所述缓存包括堆内内存和堆外内存,所述方法包括数据缓存过程:S1、接收待缓存数据及数据存储请求;S2、缓存管理单元根据所述待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,所述缓存地址信息为所述待缓存数据在所述堆外内存的存储地址信息;S3、所述key值存储在所述堆内内存中,所述缓存地址信息存储在所述堆内内存的堆外内存指示器中,所述key值和堆外内存指示器相对应;S4、所述待缓存数据根据所述缓存地址信息存储在所述堆外内存中。进一步,本专利技术所述的用于JAVA平台的数据缓存方法,还包括缓存数据读取过程:T1、接收缓存数据读取请求;T2、获取所述缓存数据读取请求对应的key值;T3、获取与所述key值对应的所述堆外内存指示器存储的所述缓存地址信息,所述缓存地址信息包括所述堆外内存的存储位置和字节大小;T4、根据所述缓存地址信息从所述堆外内存读取所述缓存数据。进一步,本专利技术所述的用于JAVA平台的数据缓存方法,还包括缓存数据清理过程:使用LRU算法结合设置的预设缓存时间来清理使用的缓存。进一步,本专利技术所述的用于JAVA平台的数据缓存方法,还包括数据恢复过程:通过配置所述堆外内存映射到存储介质上的预设文件进行缓存数据的持久化操作。优选地,本专利技术所述的用于JAVA平台的数据缓存方法,所述步骤S2中缓存管理单元生成所述缓存地址信息包括:初始化堆外内存缓冲区列表,堆外内存缓冲区生成所述堆外内存指示器,所述堆外内存指示器用于对所述堆外内存缓冲区进行操作。优选地,本专利技术所述的用于JAVA平台的数据缓存方法,所述堆外内存缓冲区用于申请所述堆外内存的存储空间和存储位置,管理所述堆外内存指示器,以及在所述堆外内存中序列化批量JAVA对象。优选地,本专利技术所述的用于JAVA平台的数据缓存方法,所述步骤S2中缓存管理单元生成所述缓存地址信息包括:JAVA平台应用框架的jar包在同一虚拟机进程中进行所述待缓存数据的缓存操作;存储容量通过输入参数指定或者与JAVA堆的最大值相同。另,本专利技术还提供一种计算机终端,包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序实现如上述的用于JAVA平台的数据缓存方法。实施本专利技术的一种用于JAVA平台的数据缓存系统、方法以及计算机终端,具有以下有益效果:该系统包括缓存,缓存包括堆内内存和堆外内存。堆内内存用于存储key值和堆外内存指示器,key值和堆外内存指示器相对应;堆外内存用于存储待缓存数据。缓存管理单元,根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,缓存地址信息为待缓存数据在堆外内存的存储地址信息;堆外内存指示器,用于存储缓存地址信息。通过实施本专利技术,实现对缓存的同一高效管理,减少垃圾回收时间;实现进程共享,较少虚拟机间的对象复制;并可实现持久化存储的快速重启。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术一种用于JAVA平台的数据缓存系统的结构示意图;图2是本专利技术一种用于JAVA平台的数据缓存方法中数据存储流程图;图3是本专利技术一种用于JAVA平台的数据缓存方法中数据读取流程图;图4是本专利技术一种计算机终端结构示意图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。图1是本专利技术一种用于JAVA平台的数据缓存系统的结构示意图。具体的,该用于JAVA平台的数据缓存系统包括:缓存(Cache),缓存包括堆内内存(on-heap)和堆外内存(off-heap),缓存为用于存储数据或程序的高速存储介质,在使用时可快速调用其中的数据;缓存为最终操作的缓存类提供put(key,value)get(key)remove(key)等缓存操作。堆内内存,用于存储key值和堆外内存指示器,key值和堆外内存指示器相对应;堆外内存,用于存储待缓存数据。堆内内存的ConcurrentHashMap的key-value结构,key值就是具体的键值,value存储的是这个key值在堆外内地的指示位置,即堆外内存的地址,存储在堆外内存指示器中。缓存管理单元(CacheManager),根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,缓存地址信息为待缓存数据在堆外内存的存储地址信息,缓存地址信息包括堆外内存的存储位置和字节大小。进一步,缓存管理单元管理缓存提供List<OffHeapBuffer>数据格式,动态分配堆外内存字节缓冲区(OffHeapBuffer)大小,清理缓存超时时间,及数据持久化恢复操作等。堆外内存字节缓冲区用于申请堆外内存空间和最终存储的位置,其包含堆外内存指示器的管理,能够在堆外内存中序列化大批量JAVA对象,而不影响JAVA虚拟机(JVM)的垃圾收集性能。堆外内存指示器(DirectIndicate),用于存储缓存地址信息,即在对内内存中形成key值和堆外内存指示器的对应关系,该处的缓存地址信息是数据真是的存储位置。进一步,本专利技术的用于JAVA平台的数据缓存系统中缓存管理本文档来自技高网...

【技术保护点】
1.一种用于JAVA平台的数据缓存系统,其特征在于,包括:缓存,所述缓存包括堆内内存和堆外内存;缓存管理单元,根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,所述缓存地址信息为所述待缓存数据在所述堆外内存的存储地址信息;堆外内存指示器,用于存储所述缓存地址信息;所述堆内内存,用于存储所述key值和堆外内存指示器;所述key值和堆外内存指示器相对应;所述堆外内存,用于存储所述待缓存数据。

【技术特征摘要】
1.一种用于JAVA平台的数据缓存系统,其特征在于,包括:缓存,所述缓存包括堆内内存和堆外内存;缓存管理单元,根据待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,所述缓存地址信息为所述待缓存数据在所述堆外内存的存储地址信息;堆外内存指示器,用于存储所述缓存地址信息;所述堆内内存,用于存储所述key值和堆外内存指示器;所述key值和堆外内存指示器相对应;所述堆外内存,用于存储所述待缓存数据。2.根据权利要求1所述的用于JAVA平台的数据缓存系统,其特征在于,所述缓存管理单元,还用于使用LRU算法结合设置的预设缓存时间来清理使用的缓存,以及通过配置所述堆外内存映射到存储介质上的预设文件进行缓存数据的持久化操作;所述堆外内存缓冲区还用于申请所述堆外内存的存储空间和存储位置,管理所述堆外内存指示器,以及在所述堆外内存中序列化批量JAVA对象。3.一种用于JAVA平台的数据缓存方法,应用于缓存管理,所述缓存包括堆内内存和堆外内存,其特征在于,所述方法包括数据缓存过程:S1、接收待缓存数据及数据存储请求;S2、缓存管理单元根据所述待缓存数据及数据存储请求生成相互对应的key值和缓存地址信息,所述缓存地址信息为所述待缓存数据在所述堆外内存的存储地址信息;S3、所述key值存储在所述堆内内存中,所述缓存地址信息存储在所述堆内内存的堆外内存指示器中,所述key值和堆外内存指示器相对应;S4、所述待缓存数据根据所述缓存地址信息存储在所述堆外内存中。4.根据权利要求3所述的用于JAVA平台的数据缓存方法,其特征在于,还包括缓存数据读取过程:T1、接收缓存数据读取请求;T2、获...

【专利技术属性】
技术研发人员:李义华
申请(专利权)人:厦门中控智慧信息技术有限公司中控智慧科技股份有限公司
类型:发明
国别省市:福建,35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1