面向对象的缓存写入、读取方法及装置制造方法及图纸

技术编号:13989708 阅读:51 留言:0更新日期:2016-11-13 15:23
本发明专利技术涉及面向对象的缓存写入、读取方法及装置。该面向对象的缓存写入方法包括:在接收到写入请求的情况下,调用通用对象存储接口;通过通用对象存储接口确定写入请求对应的待写入对象的唯一标识符,并根据唯一标识符生成待写入对象的键;通过通用对象存储接口按照预设协议规定的参数类型和参数格式将待写入对象序列化为流,预设协议能够用于任意类的序列化;通过通用对象存储接口根据键将流写入缓存。根据本发明专利技术能够将面向对象语言与缓存相结合,实现直接存取面向对象语言中的对象,从而大大减少开发工作量,提高开发的便携性和效率,并能降低外部存储设备的读写负载,解决外部存储设备的读写性能瓶颈问题,从而大大提高系统性能。

【技术实现步骤摘要】

本专利技术涉及缓存
,尤其涉及一种面向对象的缓存写入、读取方法及装置
技术介绍
对于大规模Web(网页)系统,用户数量非常大,导致服务器的负载非常高,因此磁盘读写性能低下,需要使用内存作为缓存来提高整个系统的性能。缓存可以直接向大多数用户提供服务,避免用户的每个请求都访问性能低下的外部存储设备,从而提高了整个系统的效率。因此,缓存对于提高整个系统的性能是极为重要的。现有的大规模Web系统通常使用面向对象语言进行开发。面向对象是一种软件开发方法,指的是在程序设计中采用封装、继承和多态等设计方法。封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。这样做既可以起到对客体属性的保护作用,又可以提高软件系统的可维护性。对象是人们要进行研究的任何事物,从简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中。类是具有相同特性和行为的对象的抽象。因此,类是对象的抽象,对象是类的具体化,也可以说,对象是类的实例。类实际上是一种数据类型。例如,鹦鹉可以视为一种类,而具体的一只鹦鹉可以视为一个对象。类具有属性,它是对象的状态的抽象,类的属性用数据结构来描述。类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。缓存指的是数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从下一级存储设备中查找。由于缓存的读写速度比下一级存储设备快得多,因此缓存能够帮助整个系统更快地运行。缓存工作的原理即“引用的局部性”,包括时间局部性和空间局部性。时间局部性是指当某个数据被访问过一次之后,过不了多长时间就会被再一次访问;空间局部性是指CPU(Central Processing Unit,中央处理器)在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据。对于应用程序而言,不管是指令流还是数据流都会出现引用的局部性现象。由于计算机的内存的读写速度远远快于硬盘的读写速度,因此可以将从硬盘读取到的数据暂时存放在内存里,之后使用该数据的时候就不用再次从硬盘中读取了,这样就大大提高了整体的读写速度,这个过程就是基于前述的引用的局部性原理把内存作为硬盘的缓存使用。现有的大规模Web系统通常使用面向对象语言进行开发,但目前的缓存技术无法很好地适应面向对象系统的开发需求。具体而言,目前在面向对象系统中使用缓存技术时,协议在各个类之间无法通用,研发人员需要为每个类分别设计序列化和反序列化协议,以及针对每个类分别进行开发和调试,导致耗费大量时间,且容易出错,整个过程效率低下。
技术实现思路
技术问题有鉴于此,本专利技术要解决的技术问题是,现有的缓存技术在面向对象系统中的适应性较差,导致开发效率较低。解决方案为了解决上述技术问题,根据本专利技术的一实施例,提供了一种面向对象的缓存写入方法,包括:在接收到写入请求的情况下,调用通用对象存储接口;通过所述通用对象存储接口确定所述写入请求对应的待写入对象的唯一标识符,并根据所述唯一标识符生成所述待写入对象的键;通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,所述预设协议能够用于任意类的序列化;通过所述通用对象存储接口根据所述键将所述流写入缓存。对于上述方法,在一种可能的实现方式中,在通过所述通用对象存储接口根据所述键将所述流写入缓存之后,所述方法还包括:根据所述键将所述流写入外部存储设备。对于上述方法,在一种可能的实现方式中,通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,包括:通过所述通用对象存储接口确定所述预设协议规定的所有所述参数类型,并确定所述待写入对象对应的所有所述参数类型的参数值;通过所述通用对象存储接口按照所述预设协议规定的所述参数格式,将所述预设协议的信息以及所述待写入对象对应的所有所述参数类型的参数值转换为流。对于上述方法,在一种可能的实现方式中,所述参数类型包括:对象所属的类的名称参数、所述对象的全部属性名称参数、所述对象的全部属性值参数、所述对象的全部方法的名称参数、所述对象所属的类创建所述对象的方法的名称参数、所述对象所属的类的全部属性名称参数和所述对象所属的类的全部属性值参数。为了解决上述技术问题,根据本专利技术的另一实施例,提供了一种面向对象的缓存读取方法,包括:在接收到查询请求的情况下,通过通用对象查询接口确定所述查询请求对应的键;若通过所述通用对象查询接口从所述缓存中查找到所述键对应的流,则按照预设协议规定的参数类型和参数格式将所述流反序列化为对象,所述预设协议能够用于任意类的反序列化;通过所述通用对象查询接口返回所述对象,以响应所述查询请求。对于上述方法,在一种可能的实现方式中,在通过通用对象查询接口确定所述查询请求对应的键之后,所述方法还包括:若通过所述通用对象查询接口从所述缓存中查找不到所述键对应的流,则从外部存储设备中查找所述键对应的流;若从所述外部存储设备中查找到所述键对应的流,则按照所述预设协议规定的所述参数类型和所述参数格式将所述流反序列化为所述对象,并返回所述对象,以响应所述查询请求。对于上述方法,在一种可能的实现方式中,按照预设协议规定的参数类型和参数格式将所述流反序列化为对象,包括:从所述流中获取所述预设协议的信息,并根据所述预设协议的信息确定所述预设协议规定的所述参数类型和所述参数格式;根据所述预设协议规定的所述参数类型和所述参数格式,以及所述流中所有所述参数类型的参数值,将所述流反序列化为所述对象。对于上述方法,在一种可能的实现方式中,所述参数类型包括:对象所属的类的名称参数、所述对象的全部属性名称参数、所述对象的全部属性值参数、所述对象的全部方法的名称参数、所述对象所属的类创建所述对象的方法的名称参数、所述对象所属的类的全部属性名称参数和所述对象所属的类的全部属性值参数。为了解决上述技术问题,根据本专利技术的另一实施例,提供了一种面向对象的缓存写入装置,包括:通用对象存储接口调用模块,用于在接收到写入请求的情况下,调用通用对象存储接口;键生成模块,用于通过所述通用对象存储接口确定所述写入请求对应的待写入对象的唯一标识符,并根据所述唯一标识符生成所述待写入对象的键;序列化模块,用于通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,所述预设协议能够用于任意类的序列化;缓存写入模块,用于通过所述通用对象存储接口根据所述键将所述流写入缓存。对于上述装置,在一种可能的实现方式中,所述装置还包括:外部存储设备写入模块,用于根据所述键将所述流写入外部存储设备。对于上述装置,在一种可能的实现方式中,所述序列化模块包括:参数值确定子模块,用于通过所述通用对象存储接口确定所述预设协议规定的所有所述参数类型,并确定所述待写入对象对应的所有所述参数类型的参数值;序列本文档来自技高网
...

【技术保护点】
一种面向对象的缓存写入方法,其特征在于,包括:在接收到写入请求的情况下,调用通用对象存储接口;通过所述通用对象存储接口确定所述写入请求对应的待写入对象的唯一标识符,并根据所述唯一标识符生成所述待写入对象的键;通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,所述预设协议能够用于任意类的序列化;通过所述通用对象存储接口根据所述键将所述流写入缓存。

【技术特征摘要】
1.一种面向对象的缓存写入方法,其特征在于,包括:在接收到写入请求的情况下,调用通用对象存储接口;通过所述通用对象存储接口确定所述写入请求对应的待写入对象的唯一标识符,并根据所述唯一标识符生成所述待写入对象的键;通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,所述预设协议能够用于任意类的序列化;通过所述通用对象存储接口根据所述键将所述流写入缓存。2.根据权利要求1所述的方法,其特征在于,在通过所述通用对象存储接口根据所述键将所述流写入缓存之后,所述方法还包括:根据所述键将所述流写入外部存储设备。3.根据权利要求1所述的方法,其特征在于,通过所述通用对象存储接口按照预设协议规定的参数类型和参数格式将所述待写入对象序列化为流,包括:通过所述通用对象存储接口确定所述预设协议规定的所有所述参数类型,并确定所述待写入对象对应的所有所述参数类型的参数值;通过所述通用对象存储接口按照所述预设协议规定的所述参数格式,将所述预设协议的信息以及所述待写入对象对应的所有所述参数类型的参数值转换为流。4.根据权利要求1至3任意一项所述的方法,其特征在于,所述参数类型包括:对象所属的类的名称参数、所述对象的全部属性名称参数、所述对象的全部属性值参数、所述对象的全部方法的名称参数、所述对象所属的类创建所述对象的方法的名称参数、所述对象所属的类的全部属性名称参数和所述对象所属的类的全部属性值参数。5.一种面向对象的缓存读取方法,其特征在于,包括:在接收到查询请求的情况下,通过通用对象查询接口确定所述查询请求对应的键;若通过所述通用对象查询接口从所述缓存中查找到所述键对应的流,则按照预设协议规定的参数类型和参数格式将所述流反序列化为对象,所述预设协议能够用于任意类的反序列化;通过所述通用对象查询接口返回所述对象,以响应所述查询请求。6.根据权利要求5所述的方法,其特征在于,在通过通用对象查询接口确定所述查询请求对应的键之后,所述方法还包括:若通过所述通用对象查询接口从所述缓存中查找不到所述键对应的流,则从外部存储设备中查找所述键对应的流;若从所述外部存储设备中查找到所述键对应的流,则按照所述预设协议规定的所述参数类型和所述参数格式将所述流反序列化为所述对象,并返回所述对象,以响应所述查询请求。7.根据权利要求5或6所述的方法,其特征在于,按照预设协议规定的参数类型和参数格式将所述流反序列化为对象,包括:从所述流中获取所述预设协议的信息,并根据所述预设协议的信息确定所述预设协议规定的所述参数类型和所述参数格式;根据所述预设协议规定的所述参数类型和所述参数格式,以及所述流中所有所述参数类型的参数值,将所述流反序列化为所述对象。8.根据权利要求5或6所述的方法,其特征在于,所述参数类型包括:对象所属的类的名称参数、所述对象的全部属性名称参数、所述对象的全部属性值参数、所述对象的全部方法的名称参数、所述对象所属的类创建所述对象的方法的名称参数、所述对象所属的类的全部属性名称参数和所述对象所属的类的全部属性值参数。9.一种面向对象的缓存写入装置,其特征在于,...

【专利技术属性】
技术研发人员:王军吴昊宇王冀
申请(专利权)人:合一网络技术北京有限公司
类型:发明
国别省市:北京;11

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

1