一种数据存储的方法、系统及设备
技术领域
本发明属于计算机网络通信领域,尤其涉及计算机网络通信过程中用户数据的存储方法、存储系统及存储设备。
背景技术
在计算机通信过程中,服务器往往存储有大量的用户数据,供用户访问和调用。其中,在一种典型类型的用户数据中,每个用户的数据均由多个数据字段组成,相同的数据字段具有相同类型的数据信息,隶属于每个用户的用户数据通过一个唯一对应的用户标识进行标记。典型的以通讯录数据为例,每个联系人的用户数据中都包含姓名、性别、手机号码、电话号码、工作地址、邮政编码、电子邮件地址、个人介绍或者单位介绍等多个数据字段,每个用户数据中的姓名字段都用来存储用户的姓名信息,电话号码字段都用来存储用户的电话号码信息。
在这种类型的用户数据中,不同数据字段的访问频率差别比较大,如姓名、性别、手机号码或者电子邮件等字段的访问频率比较高,因而用户对于这些数据字段的访问速度要求比较高,而工作地址、邮政编码或者个人介绍等字段的访问频率相对较低,用户对于这些数据字段的访问速度要求也会比较低。
目前,上述用户数据一般存放在服务器的硬盘中,随着用户量的不断扩大,数据量也不断增多,不断加大服务器的运行负荷,降低了用户数据的访问速度,影响用户的通信效率,这样服务商就需要购置更多的服务器来满足用户数据的存储需求和快速访问需求。
在服务器等数据存储设备中,主要有两种数据存储装置,即内存和磁盘,内存的运行速度比磁盘快2个数量级,但是其存储容量比磁盘小1-2个数量级。如果将用户数据存储在磁盘中,磁盘的容量足够,但是访问速度会比较慢,所以服务商需要提供多台服务器,利用不同的服务器处理一定数量用户的请求,以达到用户对访问速度的要求。如果将用户数据存储在内存中,可以向用户提供比较快的访问速度,但是由于内存的存储容量有限,服务商需要较多的服务器来存储大量的用户数据。
为了减少系统开销和设备购置费用,在计算机通信中经常使用高速缓存技术。高速缓存技术基于系统的局部性原理,即系统访问了一部分用户数据之后,有很大的概率会在最近再访问近期访问过的用户数据。因此,系统访问存储在磁盘上的某部分用户数据后,利用高速缓存技术把该部分数据和近期其他被访问过的数据存储在运行速度更快的内存中,从而达到当系统再次访问该部分用户数据时能够从内存上获取,提高用户数据的访问速度。
但是,当不同的用户数据被频繁访问时,内存需要存储的数据量加大,会导致内存的容量不能满足高速增长的数据量的存储要求。同时,在很多应用中,用户数据的访问往往是随机的,并不符合局部性原理的要求,这就超出了高速缓存技术的适用范围,在这种情况下利用传统的高速缓存技术难以减少系统开销和设备购置费用。
发明内容
本发明的目的在于优化现有技术中数据存储的方式,提高用户数据的访问速度和效率,降低服务器的运行开销,从而降低用户的设备购置费用。
为了实现发明目的,本发明提供了一种数据存储方法,所述数据包括多个数据字段,并唯一对应一个数据标识,所述数据在数据存储设备中存储,所述数据存储设备包括第一存储装置和第二存储装置,所述第一存储装置的运行速度大于所述第二存储装置,将所述数据字段设置为第一存储级和第二存储级,第一存储级数据的访问频率高于第二存储级数据;
以所述数据标识为索引将第一存储级数据放入所述第一存储装置中存储;
以所述数据标识为索引将第二存储级数据放入所述第二存储装置中存储。
所述第一存储装置为所述数据存储设备的内存。
所述第二存储装置为所述数据存储设备的硬盘。
为了更好地实现发明目的,本发明进一步提供了一种数据存储系统,用于处理存储在数据存储设备中的数据,所述数据包括多个数据字段,并唯一对应一个数据标识,所述数据存储设备包括第一存储装置和第二存储装置,所述第一存储装置的运行速度大于所述第二存储装置,
所述第一存储装置,用于根据数据字段的存储级别以数据标识为索引存储第一存储级数据;
所述第二存储装置,用于根据数据字段的存储级别以数据标识为索引存储第二存储级数据。
所述系统进一步包括:
分级设置模块,用于设置所述数据字段的存储级别,所述存储级别包括第一存储级和第二存储级,第一存储级数据的访问频率高于第二存储级数据;
通信接口,接收客户端提交存储的数据,并向客户端返回访问调用的数据;
第一存储级数据库,以所述数据标识为索引存储第一存储级数据;
第二存储级数据库,以所述数据标识为索引存储第二存储级数据;
分级处理模块,用于获取通信接口接收到的数据并根据分级设置模块中的存储级别将所述数据的数据字段存储在对应数据库中。
进一步地,所述的分级处理模块,用于根据数据访问调用请求,调取相应数据库中中存储的数据字段传送给通信接口。
所述第一存储级数据库保存在所述第一存储装置中,所述第一存储装置为所述数据存储设备的内存。
所述第二存储级数据库保存所述第二存储装置中,所述第二存储装置为所述数据存储设备的硬盘。
为了更好地实现发明目的,本发明进一步还提供了一种数据存储设备,用于存储用户数据,包括第一存储装置和第二存储装置,所述第一存储装置的运行速度大于所述第二存储装置,所述数据包括多个数据字段,并唯一对应一个数据标识,所述数据存储设备进一步包括数据分级存储系统,
所述第一存储装置,用于根据数据字段的存储级别以数据标识为索引存储第一存储级数据;
所述第二存储装置,用于根据数据字段的存储级别以数据标识为索引存储第二存储级数据。
所述数据分级存储系统进一步包括:
分级设置模块,用于设置所述数据字段的存储级别,所述存储级别包括第一存储级和第二存储级,第一存储级数据的访问频率高于第二存储级数据;
通信接口,接收客户端提交存储的数据,并向客户端返回访问调用的数据;
第一存储级数据库,以所述数据标识为索引存储第一存储级数据;
第二存储级数据库,以所述数据标识为索引存储第二存储级数据;
分级处理模块,用于获取通信接口接收到的数据并根据分级设置模块中的存储级别将所述数据的数据字段存储在对应数据库中。
进一步地,所述的分级处理模块,用于根据数据访问调用请求,调取相应数据库中中存储的数据字段传送给通信接口。
所述第一存储级数据库保存在所述第一存储装置中,所述第一存储装置为所述数据存储设备的内存。
所述第二存储级数据库保存在所述第二存储装置中,所述第二存储装置为所述数据存储设备的硬盘。
本发明通过将用户数据的数据字段进行分级存储,能够有效地提高用户数据的访问速度和效率。同时,可以降低服务器的运行开销,从而降低用户的设备购置费用。
附图说明
图1是本发明中数据存储设备的示意图;
图2是本发明提供的数据分级存储系统构成示意图;
图3是本发明提供的数据分级存储的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了数据存储设备100的结构示意图,其中数据存储设备100可以是服务器,或者其他大、中型计算机,包括第一存储装置101和第二存储装置102。其中,第一存储装置101的存储容量小于第二存储装置102,但是运行速度高于第二存储装置102。典型的,第一存储装置101可以是数据存储设备100的内存,第二存储装置102可以是数据存储设备100的硬盘或者光盘等存储介质,用户通过客户端200向数据存储设备100提交需要存储的用户数据,并在通信过程中访问调用数据存储设备100存储的用户数据。
在本发明中,根据用户对用户数据中不同数据字段的不同访问频率和不同的访问速度要求,对数据字段的存储级别进行划分,即分为第一存储级和第二存储级两个存储级别,其中第一存储级数据的访问频率和访问速度高于第二存储级数据,第一存储级数据和第二存储级数据之间通过数据标识进行关联对应,便于用户相互调用。数据存储分级的依据是针对具体应用和业务中用户对不同数据字段有不同的访问频率和访问速度要求,典型的如通讯录数据中,姓名、性别、电话号码等字段的访问频率比较高,需要即时调用,用户对这些数据字段的访问速度要求比较高,因此将这些数据字段设置为第一存储级数据,其他数据字段的访问频率比较低,用户对这些数据字段的访问速度要求不高,因此将这些数据字段设置为第二存储级数据,第一存储级数据和第二存储级数据之间可以通过数据标识进行关联对应。
在本发明中,将第一存储级数据和第二存储级数据分别进行存储,其中,第一存储级数据存储在数据存储设备100的第一存储装置101中,便于用户通过客户端200频繁访问和快速调用;将第二存储级数据存储在数据存储设备100的第二存储装置102,只有用户需要时才通过客户端200向数据存储设备100请求访问调用。
图2示出了本发明提供的数据分级存储方法的实现流程,详述如下:
在步骤S201中,设置用户数据中不同数据字段的存储级别,将一部分访问频率高的数据字段设置为第一存储级数据,其他数据字段设置为第二存储级数据;
在步骤S202中,接收客户端200提交存储的用户数据;
在步骤S203中,根据设置的存储级别将用户数据中的不同数据字段分离为第一存储级和第二存储级;
在步骤S204中,将第一存储级数据存储到第一存储装置101中;
在步骤S205中,将第二存储级数据保存到第二存储装置102中。
图3示出了本发明提供的数据分级存储系统300的构成示意图,数据分级存储系统300运行在数据存储设备100中,用于对用户数据进行分级存储和分级调用。
数据分级存储系统300包括分级设置模块301、通信接口302、第一存储级数据库303、第二存储级数据库304以及分级处理模块305,其中:
分级设置模块301,用于设置用户数据中数据字段的存储级别,供分级处理模块305调用,可以根据具体的业务需求和应用情况通过分级设置模块301灵活设置数据字段的存储级别;
通信接口302,接收客户端200提交存储的用户数据,将用户数据提交分级处理模块303进行存储分级;接收客户端200的用户数据调用访问请求,送交分级处理模块303处理;同时,接收分级处理模块303传送来的用户数据发送给客户端200;
第一存储级数据库303,保存在数据存储设备100的第一存储装置101中,以数据标识为索引,存储分级处理模块305提交的第一存储级的数据字段;
第二存储级数据库304,保存在数据存储设备100的第二存储装置102中,以数据标识为索引,存储分级处理模块305提交的第二存储级的数据字段。
分级处理模块305,接收通信接口302提交存储的用户数据,读取分级设置模块301中设置的数据字段的存储级别,将数据字段分离第一存储级和第二存储级,分别送往第一存储级数据库303和第二存储级数据库304存储;同时,当接收到通信接口302发送的数据访问调用请求时,识别数据访问调用请求中的数据标识,调取第一存储级数据库303或第二存储级数据库304中存储的相应数据字段传送给通信接口302。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。