【技术实现步骤摘要】
数据缓存方法及装置
[0001]本公开涉及计算机
,尤其涉及一种数据缓存方法及装置。
技术介绍
[0002]在相关技术中,数据缓存中间件软件大多采用平台兼容性较好的JAVA语言,JAVA语言是面向对象的技术体系,程序在运行时,由JVM(JAVA Virtual Machine,JAVA虚拟机)负责对象的创建与回收管理,对常规的内存管理提出极高的技术要求。
[0003]在常规的JAVA程序的设计方法中,数据缓存中间件产品中的每对Key
‑
Value(键
‑
值)数据皆为JAVA对象实例,在频繁进行新增、修改和删除等数据操作的场景下,JVM会发生大量对象的分配、回收动作,从而频繁启动JVM的垃圾回收动作,极大影响了数据的读写效率,导致系统内存管理效率低下,从而降低了整个系统的响应时间。
技术实现思路
[0004]有鉴于此,本公开实施例提供了一种数据缓存方法、装置、电子设备及计算机可读存储介质,以解决现有技术中频繁启动JAVA虚拟机垃圾回收动作的问题。
[00 ...
【技术保护点】
【技术特征摘要】
1.一种数据缓存方法,其特征在于,所述方法包括:将当前业务请求对应的当前缓存数据按照所述当前缓存数据的存活期以及所述当前业务使用的频率进行分类,得到分类结果;响应于所述分类结果表征所述当前缓存数据为长效缓存数据,根据所述当前业务请求在预先分配的聚合内存区和链式内存区针对所述当前缓存数据进行操作,其中,所述聚合内存区和所述链式内存区位于JAVA虚拟机的老生代区域中,所述聚合内存区和所述链式内存区中的缓存数据以键值对的形式保存,所述缓存数据的键信息、值信息的长度小于等于第一阈值的部分保存在所述聚合内存区中,所述值信息的长度大于所述第一阈值的部分保存在所述链式内存区中。2.根据权利要求1所述的方法,其特征在于,响应于所述分类结果表征所述当前缓存数据为临时缓存数据,根据所述当前业务请求在预先分配的临时内存区针对所述当前缓存数据进行操作,其中,所述临时内存区位于JAVA虚拟机的新生代区域中。3.根据权利要求2所述的方法,其特征在于,根据所述当前业务请求在预先分配的聚合内存区和链式内存区针对所述当前缓存数据进行操作之前,所述方法还包括:创建聚合内存区和至少一个链式内存区,每个所述链式内存区包括用于对链式内存区的数据块进行索引和定位的位置索引表,以及用于对链式内存区的释放的数据块进行索引的空闲数据块索引表。4.根据权利要求3所述的方法,其特征在于,根据所述当前业务请求在预先分配的聚合内存区和链式内存区针对所述当前缓存数据进行操作,包括:响应于所述当前业务请求生成新的缓存数据,将所述新的缓存数据的键信息存储到所述聚合内存区;判断所述键信息对应的值信息的长度,若所述长度小于等于所述第一阈值,将所述值信息存储在所述聚合内存区的第一位置,并将所述第一位置的状态标记为已使用,其中,所述第一位置根据所述键信息的哈希计算结果得确定;若所述长度大于所述第一阈值,将所述值信息中长度未超出所述第一阈值的部分存放至所述聚合内存区,将所述值信息长度中超出所述第一阈值的部分存放至所述链式内存区的第二位置,且将所述第二位置从所述空闲数据块索引表中删除。5.根据权利要求3所述的方法,其特征在于,根据所述当前业务请求在预先分配的聚合内存区和链式内存区针对所述当前缓存数据进行操作,包括:响应于所述当前业务请求查询缓存数据,根据待查询缓存数据的键信息的哈希数据,获取所述键信息对应的值信息在所述聚合内存区的第三位置;若所述第三位置的位置属性值为第一数值,则返回所述第三位置的值信息,所述聚合内存区的第三位置的位置属性值为第一数值表征所述值...
【专利技术属性】
技术研发人员:吴亚东,李利军,于滨峰,李志鹏,胡丰年,曾鹏冰,冯立健,
申请(专利权)人:北京东方通科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。