[发明专利]一种多级缓存的操作方法、装置及电子设备在审
申请号: | 201610097163.5 | 申请日: | 2016-02-23 |
公开(公告)号: | CN107102896A | 公开(公告)日: | 2017-08-29 |
发明(设计)人: | 杨兴华 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市清华源律师事务所11441 | 代理人: | 沈泳,李赞坚 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 缓存 操作方法 装置 电子设备 | ||
技术领域
本申请涉及数据存储技术领域,具体涉及一种多级缓存的操作方法、装置及电子设备。本申请同时涉及一种缓存数据一致性的校验方法、装置及电子设备,一种堆内缓存的过载保护方法、装置及电子设备,一种序列化方法、装置及电子设备,一种反序列化方法、装置及电子设备,以及一种多级缓存系统。
背景技术
在需要使用缓存的场景,即可以选择使用本地缓存(即:单机缓存),也可以选择使用分布式缓存。下面分别对各种缓存方案及其优劣势进行说明。
1)本地缓存
本地缓存的优势在于访问延时非常低,堆内缓存无需序列化,其劣势在于本地缓存容量非常小,命中率很低,而且极易造成不同机器之间缓存数据的不一致性。
对于Java的本地缓存,由于缓存数据保存位置的不同,存在着堆内缓存以及堆外缓存两种缓存方案。堆内缓存将数据保存在了Java堆内,其优势在于缓存数据无需进行序列化,耗费CPU最少同时获取数据的延时也最低,其劣势是会影响到Java的GC过程,随着缓存数据量的增大,Java GC耗费时间也会增大,Java GC反过来会影响堆内缓存的性能,从而Java GC限制了堆内缓存的缓存空间大小。堆外缓存的优势是逃离了Java GC,从而可以持有更大的缓存空间,而其劣势在于需要将数据序列化后才能保存,需要耗费一定的CPU。
2)分布式缓存
分布式缓存的优势在于容量非常大,由于所有机器都访问同一个缓存,所以不会存在不同机器得到的缓存数据不一致的问题,其劣势在于每次访问缓存都要发起网络请求,因此存在一定的网络延时以及序列化开销。
综上所述,各种缓存方案均具有各自的优势和劣势。当前,对于大部分需要多机部署的应用,限于单机缓存的容量限制、Java GC(Garbage Collection,垃圾收集)机制的影响以及一致性校验难题,一般会单独使用分布式缓存,这种架 构相对简单,但也不可避免的需要承担分布式缓存所带来的劣势。
为了能够兼顾各种缓存方案的优势,某些对访问延时要求苛刻的系统会选择同时使用单机缓存和分布式缓存,即:采用多级(分级)缓存方案。然而,由于各级缓存在代码架构上是分离的,并没有对外暴露出单一的缓存操作接口,因而,开发人员在使用缓存时需要同时调用不同缓存对应的不同接口,从而增加了代码的复杂度。
因此,在同时使用多种缓存方案时,现有技术存在无法通过统一的缓存操作接口操作各种缓存的问题。
发明内容
本申请提供一种多级缓存的操作方法、装置及电子设备,以解决现有技术存在无法通过统一的缓存操作接口操作各种缓存的问题。本申请另外提供一种缓存数据一致性的校验方法、装置及电子设备,一种堆内缓存的过载保护方法、装置及电子设备,一种序列化方法、装置及电子设备,一种反序列化方法、装置及电子设备,以及一种多级缓存系统。
本申请提供一种多级缓存的操作方法,所述多级缓存包括本地缓存和分布式缓存,包括:
通过特定操作的统一缓存API接收对应所述多级缓存的所述特定操作的调用指令;所述特定操作的统一缓存API封装了对所述本地缓存的特定操作和对所述分布式缓存的特定操作;
所述特定操作的统一缓存API调用所述特定操作的各级缓存API,通过所述特定操作的各级缓存API,对所述多级缓存进行所述特定操作;所述各级缓存API包括本地缓存API和分布式缓存API;
其中,所述特定操作包括写缓存、读缓存、删除缓存或清空缓存。
可选的,所述特定操作包括所述写缓存;所述调用指令包括待缓存数据及其数据标识;
所述对所述多级缓存进行所述特定操作,采用如下方式:
所述写缓存的统一缓存API调用所述写缓存的各级缓存API,通过所述写缓存的各级缓存API,将所述数据标识与所述待缓存数据的对应记录写入所述多级 缓存。
可选的,所述将所述数据标识与所述待缓存数据的对应记录写入所述多级缓存,包括:
所述写缓存的统一缓存API调用所述写缓存的本地缓存API,通过所述写缓存的本地缓存API,将所述对应记录写入所述本地缓存;
所述写缓存的统一缓存API调用所述写缓存的分布式缓存API,通过所述写缓存的分布式缓存API,将所述对应记录写入所述分布式缓存。
可选的,所述待缓存数据的数据类型包括对象类型,在所述将所述对应记录写入所述分布式缓存之前,还包括:
对所述待缓存数据进行序列化,生成所述待缓存数据的序列化数据;
所述将所述对应记录写入所述分布式缓存,采用如下方式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610097163.5/2.html,转载请声明来源钻瓜专利网。