数据存储方法、装置及电子设备与流程

文档序号:13808091阅读:173来源:国知局
数据存储方法、装置及电子设备与流程

本发明涉及信息技术领域,特别涉及一种数据存储方法、装置及电子设备。



背景技术:

随着信息技术的飞速发展,互联网可以为用户提供的服务越来越多。对于不同的网站来说,为了给每一位用户提供针对性的服务,网站所依赖的服务器通常会根据诸如用户的注册数据、浏览数据、历史数据等数据生成关于用户的日志,将日志进行存储,并当检测到不同用户的登录时,会获取存储的不同用户的日志,根据日志为用户提供服务。

相关技术中,日志通常表现为不规则的深层嵌套的树形数据结构,多个维度的数据均整合在这个树形数据结构中,也即日志的数据结构为嵌套数据结构。在嵌套数据结构中,每个叶节点都是一个数据字段,数据字段的值可为单值或多值;每个枝节点都是一个数据组,数据组可为重复或非重复的,非重复数据组可包含结构不同的固定数量的叶节点,重复数据组可包含结构相同的非固定数量的叶节点。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

服务器在存储嵌套数据结构的日志时,会将日志进行完全解析,解析为多条扁平化数据,将多条扁平化数据存储。由于多条扁平化数据中存在相同的公共部分数据,且解析后的多条扁平化数据会丢失日志的嵌套数据结构,无法再还原为日志,导致服务器中的公共部分数据冗余,占用大量的存储空间。



技术实现要素:

为克服相关技术中存在的解析日志后得到的多条扁平化数据丢失日志的嵌套数据结构,无法再还原为日志,导致服务器中的公共部分数据冗余,占用大量的存储空间的问题,本发明提供一种数据存储方法、装置及电子设备。

根据本发明实施例的第一方面,提供一种数据存储方法,所述方法包括:

当接收到待存储日志时,确定所述待存储日志的数据结构,所述数据结构包括所述待存储日志中的至少一个数据字段;

根据所述数据结构,将所述待存储日志划分为至少一个类型的数据;

将所述待存储日志的数据按照至少一个类型进行存储。

在另一个实施例中,所述根据所述数据结构,将所述待存储日志划分为至少一个类型的数据包括:

对于所述至少一个数据字段中的每个数据字段,在所述待存储日志中确定所述数据字段的多个取值;

将所述多个取值对应的数据作为所述数据字段指示的类型的数据。

在另一个实施例中,所述将所述待存储日志的数据按照至少一个类型进行存储包括:

对于所述至少一个类型中的每一个类型,确定所述类型中包括的多个取值;

分别确定所述多个取值在所述待存储日志中的多个位置数据,将所述多个取值与所述多个位置数据对应进行存储。

在另一个实施例中,所述方法还包括:

当接收到数据查询请求时,获取所述数据查询请求中的待查询数据结构,所述待查询数据结构至少包括待查询数据的类型和取值;

根据所述待查询数据结构,获取所述待查询数据。

在另一个实施例中,所述根据所述待查询数据结构,获取所述待查询数据包括:

在所述待查询数据结构携带的类型中获取至少一个待查询取值;

在所述待查询取值中确定指定取值,获取所述指定取值对应的指定位置数据,所述指定取值与所述待查询数据结构中的取值一致;

基于所述待查询数据结构携带的类型、所述指定取值以及所述指定位置数据,生成所述待查询数据。

根据本发明实施例的第二方面,提供一种数据存储装置,所述装置包括:

确定模块,用于当接收到待存储日志时,确定所述待存储日志的数据结构,所述数据结构包括所述待存储日志中的至少一个数据字段;

划分模块,用于根据所述数据结构,将所述待存储日志划分为至少一个类型的数据;

存储模块,用于将所述待存储日志的数据按照至少一个类型进行存储。

在另一个实施例中,所述划分模块包括:

确定子模块,用于对于所述至少一个数据字段中的每个数据字段,在所述待存储日志中确定所述数据字段的多个取值;

划分子模块,用于将所述多个取值对应的数据作为所述数据字段指示的类型的数据。

在另一个实施例中,所述存储模块包括:

确定子模块,用于对于所述至少一个类型中的每一个类型,确定所述类型中包括的多个取值;

存储子模块,用于分别确定所述多个取值在所述待存储日志中的多个位置数据,将所述多个取值与所述多个位置数据对应进行存储。

在另一个实施例中,所述装置还包括:

结构获取模块,用于当接收到数据查询请求时,获取所述数据查询请求中的待查询数据结构,所述待查询数据结构至少包括待查询数据的类型和取值;

数据获取模块,用于根据所述待查询数据结构,获取所述待查询数据。

在另一个实施例中,所述数据获取模块包括:

第一获取子模块,用于在所述待查询数据结构携带的类型中获取至少一个待查询取值;

第二获取子模块,用于在所述待查询取值中确定指定取值,获取所述指定取值对应的指定位置数据,所述指定取值与所述待查询数据结构中的取值一致;

生成子模块,用于基于所述待查询数据结构携带的类型、所述指定取值以及所述指定位置数据,生成所述待查询数据。

根据本发明实施例的第三方面,提供一种电子设备,包括上述的数据存储装置。

根据本发明实施例的第四方面,提供一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述的数据存储方法的操作。

本发明的实施例提供的技术方案可以包括以下有益效果:

当接收到待存储日志时,确定待存储日志的数据结构,根据数据结构包括的待存储日志中的至少一个数据字段,将待存储日志划分为至少一个类型的数据,并将待存储日志的数据按照至少一个类型进行存储,使得在对待存储日志进行存储的同时,也将待存储日志的数据结构存储,避免待存储日志的数据结构丢失,可以根据待存储日志中的数据还原出待存储日志,解决了服务器中公共部分数据冗余的问题,减少了待存储日志的存储空间。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是根据一示例性实施例示出的一种数据存储方法的流程图;

图2是根据一示例性实施例示出的一种数据存储方法的流程图;

图3a是根据一示例性实施例示出的一种数据存储装置的框图;

图3b是根据一示例性实施例示出的一种数据存储装置的框图;

图3c是根据一示例性实施例示出的一种数据存储装置的框图;

图3d是根据一示例性实施例示出的一种数据存储装置的框图;

图3e是根据一示例性实施例示出的一种数据存储装置的框图;

图4是根据一示例性实施例示出的一种数据存储装置400的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种数据存储方法的流程图,如图1所示,该方法包括以下步骤。

在步骤101中,当接收到待存储日志时,确定待存储日志的数据结构,数据结构包括待存储日志中的至少一个数据字段。

在步骤102中,根据数据结构,将待存储日志划分为至少一个类型的数据。

在步骤103中,将待存储日志的数据按照至少一个类型进行存储。

本发明实施例提供的方法,当接收到待存储日志时,确定待存储日志的数据结构,根据数据结构包括的待存储日志中的至少一个数据字段,将待存储日志划分为至少一个类型的数据,并将待存储日志的数据按照至少一个类型进行存储,使得在对待存储日志进行存储的同时,也将待存储日志的数据结构存储,避免待存储日志的数据结构丢失,可以根据待存储日志中的数据还原出待存储日志,解决了服务器中公共部分数据冗余的问题,减少了待存储日志的存储空间。

在另一个实施例中,根据数据结构,将待存储日志划分为至少一个类型的数据包括:

对于至少一个数据字段中的每个数据字段,在待存储日志中确定数据字段的多个取值;

将多个取值对应的数据作为数据字段指示的类型的数据。

在另一个实施例中,将待存储日志的数据按照至少一个类型进行存储包括:

对于至少一个类型中的每一个类型,确定类型中包括的多个取值;

分别确定所述多个取值在所述待存储日志中的多个位置数据,将所述多个取值与所述多个位置数据对应进行存储。

在另一个实施例中,方法还包括:

当接收到数据查询请求时,获取数据查询请求中的待查询数据结构,待查询数据结构至少包括待查询数据的类型和取值;

根据待查询数据结构,获取待查询数据。

在另一个实施例中,根据待查询数据结构,获取待查询数据包括:

在待查询数据结构携带的类型中获取至少一个待查询取值;

在所述待查询取值中确定指定取值,获取所述指定取值对应的指定位置数据,所述指定取值与所述待查询数据结构中的取值一致;

基于所述待查询数据结构携带的类型、所述指定取值以及所述指定位置数据,生成所述待查询数据。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图2是根据一示例性实施例示出的一种数据存储方法的流程图,如图2所示,该方法包括以下步骤。

在步骤201中,当接收到待存储日志时,确定待存储日志的数据结构,数据结构包括待存储日志中的至少一个数据字段。

在本发明实施例中,待存储日志均具有数据结构,且数据结构复杂,有的待存储日志会具有几层结构,使得一条待存储日志中可以包括多条不同的数据。数据结构通常由待存储日志中包括的数据字段体现。对于待存储日志来说,其中可能包括多条不同的数据,这些数据中有些数据的数据字段可能是相同的,仅在数据字段的取值及取值的位置数据上存在差异。例如,设待存储日志中包括的数据为docid:10、docid:20以及nameurl:‘http://a’,则该待存储日志中包括的数据字段为docid和nameurl,也即待存储日志的数据结构为docid和nameurl,其中,docid字段的取值为10和20,nameurl字段的取值为‘http://a’。

发明人认识到,对于每一个待存储日志来说,其数据结构是固定的,也即待存储日志中的数据结构中包括的数据字段的个数是固定不变的,因此,在存储待存储日志时,可首先确定待存储日志的数据结构,并在后续根据数据结构中的数据字段对待存储日志中的数据进行分类,使得在存储了待存储日志的同时,也将待存储日志的数据结构进行存储。

在步骤202中,对于至少一个数据字段中的每个数据字段,在待存储日志中确定数据字段的多个取值,将多个取值对应的数据作为数据字段指示的类型的数据。

在本发明实施例中,待存储日志中包括多条数据,这些数据中可能存在数据字段一致仅在取值及取值的位置数据上存在差异的数据,这样,便可以按照数据字段对待存储日志中的数据进行分类,将数据字段相同的数据作为同一类型的数据。

例如,设待存储日志中包括的数据为docid:10、docid:20、nameurl:‘http://a’、nameurl:‘http://b’以及linksforward:80,则可以确定待存储日志中包括的数据字段为docid、nameurl以及linksforward,可将待存储日志划分为三种类型,第一种类型为docid,该类型中包括数据docid:10和数据docid:20;第二种类型为nameurl,该种类型中包括数据nameurl:‘http://a’和数据nameurl:‘http://b’;第三种类型为linksforward,该种类型中包括数据linksforward:80。

在步骤203中,对于至少一个类型中的每一个类型,确定类型中包括的多个取值,分别确定多个取值在所述待存储日志中的多个位置数据,将多个取值与多个位置数据对应进行存储。

在本发明实施例中,对于每个类型来说,其中可能包括多个取值,且每个取值在日志中的位置是不同的,为了使后续可以根据数据的类型及取值还原日志,因此,需要确定取值在日志中的位置数据,并将取值与位置数据对应进行存储。其中,在将取值与位置数据对应进行存储时,可以为每个类型生成如表1所示的数据列表,在该数据列表中记录该类型中各个取值在日志中的位置数据。

表1

在表1中,nameurl为类型,value为取值,repetitionlevel和definationlevel用于指示与其对应的取值在日志中的位置。其中,definationlevel用于表示取值在日志中的深度,由于日志为不规则的深层嵌套的树形数据结构,树形数据结构的根为message,message包含多个fields,也即多个类型,field上会有多个取值,记录下多个取值在该field上的深度作为该取值在field上的definitionlevel。repetitionlevel用于记录field上的取值是在哪一个深度上重复的,只有发生重复的取值才会存在repetitionlevel。对于未发生重复的取值来说,其repetitionlevel可设置为0。

需要说明的是,上述步骤201至步骤203中所述的过程为服务器在接收到待存储日志时,对待存储日志进行存储的过程。而在实际应用的过程中,用户可能需要对服务器中存储的日志中的某一条数据进行查询,这时,用户便会通过终端向服务器下发数据查询请求,当服务器接收到数据查询请求时,便可以执行下述步骤204至步骤205;若服务器未接收到数据查询请求,则无需执行下述步骤204至步骤205。

在步骤204中,当接收到数据查询请求时,获取数据查询请求中的待查询数据结构,待查询数据结构至少包括待查询数据的类型和取值。

在本发明实施例中,用户可以在终端上输入待查询数据的数据结构,由终端生成携带该待查询数据的数据结构的数据查询请求,并将该数据查询请求发送至服务器。其中,终端可以提供数据查询入口,当检测到用户触发该数据查询入口时,现实用于输入待查询数据结构的输入框,输入框可分为类型输入框和取值输入框。当终端检测到用户完成输入框中的输入时,获取输入框中的类型和取值,将该类型和取值作为待查询数据结构,并生成携带该待查询数据结构的数据查询请求,将该数据查询请求发送至服务器。例如,用户在输入框中输入的类型可为docid,取值可为10,这样,终端便会生成携带docid和10的数据查询请求。需要说明的是,终端提供的用于输入待查询数据的类型以取值的输入框可为一个输入框,也可为两个不同的输入框,本发明对此不进行具体限定。

当服务器接收到终端发送的数据查询请求时,在数据查询请求中提取待查询数据结构,以便后续基于待查询数据结构中的待查询数据的类型和取值确定待查询的数据。

需要说明的是,由于服务器中存储的日志可能为多个,且多个日志中可能存储相同的数据字段,因此,终端在生成数据查询请求时,还可以在数据查询请求中添加日志标识,以便服务器在接收到数据查询请求后,可以在日志标识指示的日志中进行查询,无需再一一进行查询,节省了大量的工作量。

在步骤205中,在待查询数据结构携带的类型中获取至少一个待查询取值,在待查询取值中确定指定取值,获取指定取值对应的指定位置数据,指定取值与待查询数据结构中的取值一致。

在本发明实施例中,当获取到待查询数据的类型和取值后,首先在日志中确定与待查询数据的类型一致的数据字段,也即在日志中确定待查询数据的类型;随后,再在该类型中确定数据结构的取值对应的待查询数据。由于在存储日志时,日志中的每个数据字段均可能对应一个或者多个取值,因此,在确定待查询数据的数据字段后,获取该数据字段的数据列表,在数据列表中查询与数据查询请求中携带的取值一致的指定取值,将该指定取值对应的位置数据作为指定位置数据,以便在后续根据该位置数据确定待查询数据在日志中的位置,进而对待查询数据进行还原。例如,设数据查询请求中携带nameurl和http://a,且数据字段nameurl对应如表1所示的数据列表,则根据取值http://a在表1中确定的指定位置数据为repetitionlevel:0,definationlevel:2。

需要说明的是,在基于数据查询请求携带的取值查询数据列表时,可以按顺序依次将数据列表中的取值与数据查询请求携带的取值进行比对,由于在一个类型中,每一条数据的取值均是唯一的,因此,当数据列表中的某一取值与数据查询请求携带的取值一致时,则可直接将该取值确定为指定取值,无需例遍数据列表中的全部取值。其中,本发明对将数据列表中的取值与数据查询请求携带的取值进行比对的方式不进行具体限定。

在步骤206中,基于待查询数据结构携带的类型、指定取值以及指定位置数据,生成待查询数据。

在本发明实施例中,由于在步骤205中已经获取到待查询数据的类型、指定取值及指定位置数据,因此,根据待查询数据的类型、指定取值及指定位置数据便可还原出待查询数据原本在日志中的形态。其中,在生成待查询数据时,可以采用诸如striping/assembly算法,本发明实施例对生成待查询数据的算法不进行具体限定。

当获取到待查询数据后,便可将该待查询的数据返回至发送数据查询请求的终端,由终端将该待查询数据展示给用户。

本发明实施例提供的方法,当接收到待存储日志时,确定待存储日志的数据结构,根据数据结构包括的待存储日志中的至少一个数据字段,将待存储日志划分为至少一个类型的数据,并将待存储日志的数据按照至少一个类型进行存储,使得在对待存储日志进行存储的同时,也将待存储日志的数据结构存储,避免待存储日志的数据结构丢失,可以根据待存储日志中的数据还原出待存储日志,解决了服务器中公共部分数据冗余的问题,减少了待存储日志的存储空间。

图3a是根据一示例性实施例示出的一种数据存储装置的框图。参照图3a,该装置包括确定模块301,划分模块302和存储模块303。

该确定模块301,用于当接收到待存储日志时,确定待存储日志的数据结构,数据结构包括待存储日志中的至少一个数据字段;

该划分模块302,用于根据数据结构,将待存储日志划分为至少一个类型的数据;

该存储模块303,用于将待存储日志的数据按照至少一个类型进行存储。

本发明实施例提供的装置,当接收到待存储日志时,确定待存储日志的数据结构,根据数据结构包括的待存储日志中的至少一个数据字段,将待存储日志划分为至少一个类型的数据,并将待存储日志的数据按照至少一个类型进行存储,使得在对待存储日志进行存储的同时,也将待存储日志的数据结构存储,避免待存储日志的数据结构丢失,可以根据待存储日志中的数据还原出待存储日志,解决了服务器中公共部分数据冗余的问题,减少了待存储日志的存储空间。

在另一个实施例中,参见图3b,该划分模块302,包括确定子模块3021和划分子模块3022。

该确定子模块3021,用于对于至少一个数据字段中的每个数据字段,在待存储日志中确定数据字段的多个取值;

该划分子模块3022,用于将多个取值对应的数据作为数据字段指示的类型的数据。

在另一个实施例中,参见图3c,该存储模块303,包括确定子模块3031和存储子模块3032。

该确定子模块3031,用于对于至少一个类型中的每一个类型,确定类型中包括的多个取值;

该存储子模块3032,用于分别确定多个取值在待存储日志中的多个位置数据,将多个取值与多个位置数据对应进行存储。

在另一个实施例中,参见图3d,该装置还包括结构获取模块304和数据获取模块305。

该结构获取模块304,用于当接收到数据查询请求时,获取数据查询请求中的待查询数据结构,待查询数据结构至少包括待查询数据的类型和取值;

该数据获取模块305,用于根据待查询数据结构,获取待查询数据。

在另一个实施例中,参见图3e,该数据获取模块305,包括第一获取子模块3051、第二获取子模块3052和生成子模块3053。

该第一获取子模块3051,用于在待查询数据结构携带的类型中获取至少一个待查询取值;

该第二获取子模块3052,用于在待查询取值中确定指定取值,获取指定取值对应的指定位置数据,指定取值与待查询数据结构中的取值一致;

该生成子模块3053,用于基于待查询数据结构携带的类型、指定取值以及指定位置数据,生成待查询数据。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种数据存储的装置400的框图。例如,装置400可以被提供为一服务器。参照图4,装置400包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422的执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述数据存储方法。

装置400还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(i/o)接口458。装置400可以操作基于存储在存储器432的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

本发明实施例还包括一种电子设备,包括上述的数据存储装置;还包括:存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述的数据存储方法的操作。

a1、一种数据存储方法,其特征在于,所述方法包括:

当接收到待存储日志时,确定所述待存储日志的数据结构,所述数据结构包括所述待存储日志中的至少一个数据字段;

根据所述数据结构,将所述待存储日志划分为至少一个类型的数据;

将所述待存储日志的数据按照至少一个类型进行存储。

a2、根据权利要求1所述的方法,其特征在于,所述根据所述数据结构,将所述待存储日志划分为至少一个类型的数据包括:

对于所述至少一个数据字段中的每个数据字段,在所述待存储日志中确定所述数据字段的多个取值;

将所述多个取值对应的数据作为所述数据字段指示的类型的数据。

a3、根据权利要求1所述的方法,其特征在于,所述将所述待存储日志的数据按照至少一个类型进行存储包括:

对于所述至少一个类型中的每一个类型,确定所述类型中包括的多个取值;

分别确定所述多个取值在所述待存储日志中的多个位置数据,将所述多个取值与所述多个位置数据对应进行存储。

a4、根据权利要求1所述的方法,其特征在于,所述方法还包括:

当接收到数据查询请求时,获取所述数据查询请求中的待查询数据结构,所述待查询数据结构至少包括待查询数据的类型和取值;

根据所述待查询数据结构,获取所述待查询数据。

a5、根据权利要求4所述的方法,其特征在于,所述根据所述待查询数据结构,获取所述待查询数据包括:

在所述待查询数据结构携带的类型中获取至少一个待查询取值;

在所述待查询取值中确定指定取值,获取所述指定取值对应的指定位置数据,所述指定取值与所述待查询数据结构中的取值一致;

基于所述待查询数据结构携带的类型、所述指定取值以及所述指定位置数据,生成所述待查询数据。

a6、一种数据存储装置,其特征在于,所述装置包括:

确定模块,用于当接收到待存储日志时,确定所述待存储日志的数据结构,所述数据结构包括所述待存储日志中的至少一个数据字段;

划分模块,用于根据所述数据结构,将所述待存储日志划分为至少一个类型的数据;

存储模块,用于将所述待存储日志的数据按照至少一个类型进行存储。

a7、根据权利要求6所述的装置,其特征在于,所述划分模块包括:

确定子模块,用于对于所述至少一个数据字段中的每个数据字段,在所述待存储日志中确定所述数据字段的多个取值;

划分子模块,用于将所述多个取值对应的数据作为所述数据字段指示的类型的数据。

a8、根据权利要求6所述的装置,其特征在于,所述存储模块包括:

确定子模块,用于对于所述至少一个类型中的每一个类型,确定所述类型中包括的多个取值;

存储子模块,用于分别确定所述多个取值在所述待存储日志中的多个位置数据,将所述多个取值与所述多个位置数据对应进行存储。

a9、根据权利要求6所述的装置,其特征在于,所述装置还包括:

结构获取模块,用于当接收到数据查询请求时,获取所述数据查询请求中的待查询数据结构,所述待查询数据结构至少包括待查询数据的类型和取值;

数据获取模块,用于根据所述待查询数据结构,获取所述待查询数据。

a10、根据权利要求9所述的装置,其特征在于,所述数据获取模块包括:

第一获取子模块,用于在所述待查询数据结构携带的类型中获取至少一个待查询取值;

第二获取子模块,用于在所述待查询取值中确定指定取值,获取所述指定取值对应的指定位置数据,所述指定取值与所述待查询数据结构中的取值一致;

生成子模块,用于基于所述待查询数据结构携带的类型、所述指定取值以及所述指定位置数据,生成所述待查询数据。

a11、一种电子设备,其特征在于,包括权利要求6至10任意一项所述的数据存储装置。

a12、一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;

以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至5任意一项所述的数据存储方法的操作。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1