数据缓存方法、装置及服务器的制造方法

文档序号:6506219阅读:201来源:国知局
数据缓存方法、装置及服务器的制造方法
【专利摘要】本发明涉及计算机【技术领域】,尤其涉及一种数据缓存方法、装置及服务器,所述方法包括:获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值;将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识;根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。本发明可以在存储相同的信息的同时有效减少占用的缓存区空间,从而提高缓存区空间利用率,降低文件系统的读取频率,降低数据读取时延。
【专利说明】数据缓存方法、装置及服务器

【技术领域】
[0001]本发明涉及计算机【技术领域】,尤其涉及一种数据缓存方法、装置及服务器。

【背景技术】
[0002]数据缓存技术是将数据暂存于内存缓存区中的一种技术。其利用内存读写速度快的特点,通过将文件系统中的常用数据/零散数据/频繁访问的数据提取到内存中专门划定的缓存区中存储,减小由于数据读写和/或查询造成的时延,节省计算资源,降低计算系统功耗。
[0003]在服务器端存储资料数据的存储系统中,通常会通过缓存技术将部分资料数据(例如最近请求访问的资料数据)存储在缓存中,用户请求访问特定的资料数据时,系统先在缓存中查询所请求访问的资料数据,如果未查询到,则向存储在硬盘存储器的文件系统中请求该资料数据。
[0004]现有的数据缓存方法,通常将文件系统中的原始数据直接存储在缓存中,导致缓存空间利用率低,需要频繁读取文件系统,使得数据读取时延大,增大系统负担。


【发明内容】

[0005]有鉴于此,本发明实施例提出一种数据缓存方法、装置及服务器,以提高缓存空间利用率,降低对于文件系统的读取频率,降低数据读取时延。
[0006]在第一方面,本发明实施例提供了一种数据缓存方法,所述方法包括:
[0007]获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值;
[0008]将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识;
[0009]根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0010]在第二方面,本发明实施例还提供一种数据缓存装置,所述装置包括:
[0011]获取单元,用于获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值;
[0012]合并单元,用于将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识;
[0013]缓存单元,用于根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0014]在第三方面,本发明实施例还提供一种服务器,其包括如上所述的数据缓存装置。
[0015]本发明实施例通过将至少两个预定字段的字段值合并后保存为一个合并存储字段,在存储相同的信息的同时有效减少了占用的缓存空间,从而提高了缓存空间利用率,降低了文件系统的读取频率,降低了数据读取时延。

【专利附图】

【附图说明】
[0016]图1是可以由本发明实施例使用的典型数据处理系统的示意图;
[0017]图2是可实施本发明实施例在网络环境的示意图;
[0018]图3是本发明第一实施例的数据缓存方法的流程图;
[0019]图4是本发明实施例的资料数据的字段的示意图;
[0020]图5a-图5b是本发明实施例的以TLV方式存储的字段的示意图;
[0021]图6是本发明实施例合并获得的合并存储字段的示意图;
[0022]图7是本发明实施例的合并获得的以TLV方式存储的字段的示意图;
[0023]图8是本发明第二实施例的数据缓存方法的流程图;
[0024]图9是本发明第三实施例的数据缓存装置的示意图;
[0025]图10是本发明第四实施例的数据缓存装置的示意图。

【具体实施方式】
[0026]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。
[0027]图1为可以由本发明实施例使用的典型数据处理系统的示例。本领域技术人员可以理解,图1阐释了计算机系统的多个组件,并不意味着代表组件连接的任何特定架构和方式。还应当知道具有较少组件或者可能具有较多组件的网络计算机和其它数据处理系统也可以用于本发明。
[0028]如图1所示,计算机系统10是数据处理系统的一种形式,其可以包括总线11。微处理器12、易失性存储器13以及非易失性存储器14和/或海量存储器15均连接到总线11,通过总线11进行数据交换和通信。微处理器12可以是独立的微处理器,也可以是一个或者多个微处理器集合。总线11将上述多个组件连接在一起,同时将上述组件连接到显示控制器16和显示装置以及输入/输出(I/O)装置17。输入/输出(I/O)装置17可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置17通过输入/输出控制器18与系统相连。
[0029]计算机系统10中的易失性存储器13在本发明实施例中也称为内存,其具有数据读写速度快的特点,具体地,易失性存储器13可由动态随机读写存储器(DRAM)实现,动态随机读写存储器需要持续供电以更新或者维持存储器中的数据。在本发明实施例中,在内存13中设置有存储区域作为缓存区域对数据进行缓存。
[0030]通常而言,非易失性存储器14是指当电流关掉后,所存储的数据不会消失者的存储器,其可以包括例如只读存储器(ROM)和闪存(Flash Memory)。非易失性存储器典型地用于存储系统启动的必要程序或其他程序。
[0031]通常而言,海量存储器15可以是磁性硬盘驱动器或者磁性光学驱动器或者可以存储大量数据的存储器系统的其他类型,海量存储器15可以在系统切断电源之后还保持大量数据。尽管图1所示的海量存储器15是与数据处理系统的其它组件直接连接的本地设备,本领域技术人员应当知道本发明可以使用远程海量存储器,例如与数据处理系统通过网络接口相连的网络存储装置,该网络接口例如调制解调器或者以太网接口。总线11可以包括通过多个本领域公知的桥连接器、控制器和/或适配器,相互连接的一条或者多条总线。在实施例中I/o控制器18包括用于控制USB外围设备的USB (Universal SerialBUS,通用串行总线)适配器、用于IEEE1394外围设备的IEEE1394控制器或者用于控制蓝牙外围设备的蓝牙控制器,以及适用于其它外围设备接口标准的外围设备控制器。
[0032]本领域技术人员可以理解,本发明的一些实施例可以全部或至少部分计算机程序实现。也就是说,本发明的实施例可以在计算机系统10或者其他数据处理系统中以例如微处理器的处理器执行包含在存储器中的指令序列实现,所述存储器可以是易失性存储器或者远程存储装置。在多个实施例中,硬连线电路可以与软件指令结合应用,以实现本发明实施例。如此,该技术并不局限于硬件电路和软件的任何特定结合,也不局限于数据处理系统执行的任何特定指令源。另外,在【具体实施方式】部分,各种功能和操作被描述为由计算机代码执行或者由计算机代码引发以简化该描述。然而,本领域技术人员可以认识到该表达意味着该功能由例如微处理器12的处理器执行代码实现。
[0033]图2是本发明实施例在网络环境下使用时的网络架构示意图。如图2所示,存储有资料数据的服务器21通过网络连接到至少一个客户端22,所述至少一个客户端22可以通过网络连接向服务器21请求读取/写入数据。服务器21和客户端22均可以为如图1所述的数据处理系统。而且,本领域技术人员可以理解,服务器21根据需要采用不同的形式,其可以是单独的服务器、也可以是设置于同一位置的集中式服务器集群,还可以是分布在不同位置、相互之间通信连接的分布式服务器集群。同时,客户端22还可以是采用其它结构的具有网络连接功能终端设备,例如,PC (personal computer,个人计算机)、笔记本电脑、智能手机、MP3播放器、MP4播放器、平板电脑等。
[0034]图3是本发明第一实施例的数据缓存方法的流程图。
[0035]在本发明实施例中,缓存是指将数据暂存于内存缓存区中操作。
[0036]如图3所示,所述方法包括:
[0037]步骤310、获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值。
[0038]在本发明实施例中,资料数据是指存储于文件系统中的具有相同属性特征的数据集合,其包括多个字段;进一步地,字段是指表征资料数据某一特定属性的数据集合。在一个例子中,资料数据可以为用户资料,每一项资料数据对应于一个用户的用户资料,相应地,字段为表征用户属性数据,例如用户的唯一标识等。在另一个例子中,资料数据可以为物品数据,每一项资料数据对应于一种物品的特征资料,相应地,字段为表征物品属性数据,例如物品的规格参数等。
[0039]更具体地,资料数据可以为即时通讯用户(例如,QQ用户或微信用户)或者网络论坛用户或者网络博客用户或者微博客用户的用户资料,相应地,字段则可以为用户的昵称、性别、家乡、生日、星座、邮箱、头像标识等数据。
[0040]在本发明实施例中,每个字段包括字段标识和字段值,字段标识用于标识字段所表示的属性,字段值则用于存储字段所表示属性的具体信息,例如,如图4所示,对于昵称字段,字段标识(可采用数字“I”表示)用于标识该字段为昵称字段,字段值用于存储具体的该用户的用户昵称(如图4所示的utf8编码的字符“john”)。
[0041]在本实施例的一个优选实施方式中,字段可以采用标识-长度-值(Tag-Length-Value,TLV)方式存储,TLV方式是种采用二进制存储信息的方法,T、L部分的长度往往固定(通常为I?4bytes),V部分长度可变。顾名思义,T部分表示字段类型,L部分表示字段长度、V部分往往用来存放字段值。如图5a所示,上述例子中的昵称字段如果用TLV方式存储,则其包括三部分,内容为“I”的字段标识,表示该字段为昵称字段;内容为4的长度部分,表示后面的字段值长度为4字节;内容为utf8编码的字符“ john”的字段值部分,表示对应的用户的用户昵称为“john”。类似地,如图5b所示,当年龄字段采用TLV方式存储时,其也包括三部分,内容为“3”的字段标识,标识该字段为年龄字段;内容为I的长度部分,表示后面的字段值长度为I字节;内容为数字“25”的字段值部分,标识对应的用户的年龄为25岁。其它类型的字段,包括但不限于性别、家乡、生日、星座、邮箱、头像标识等数据,均可以采用上述方式存储。当然,本领域技术人员可以理解,以上仅为字段存储方式的优选实施方式,其并不用于限制字段的存储方式,只要字段包括字段标识和字段值即可。
[0042]在本步骤中,预定字段可以根据需要进行设定,具体地,其可以通过在XML(Extensible Markup Language,可扩展标记语言)配置文件中进行预先配置,通过读取XML配置文件的预先配置信息获取哪些字段属于需要进一步处理的预定字段。
[0043]在本实施例的一个优选实施方式中,至少两个预定字段可以包括字段值长度固定的字段。以用户资料为例,性别、生日、星座均为长度固定的字段,为了节省空间,可以将这部分字段作为预定字段进行提取和压缩,方便对于相应字段信息的读取。
[0044]在本实施例的另一个优选实施方式中,至少两个预定字段包括特定客户端应用加载时所要读取的字段。以即时通讯软件(例如,腾讯QQ)用户资料为例,即时通讯软件加载时,需要读取所有好友的昵称、头像、邮箱字段,由此,可以将上述三个字段作为预定字段预先提取和合并存储在缓存区中,方便对于相应字段信息的读取。在应用到网络博客(例如,腾讯QZone)场景时,网络博客登陆时需要读取所有好友的昵称、生日、星座字段,由此,可以将上述三个字段作为预定字段预先提取和合并存储在缓存区中,方便对于相应字段信息的读取。
[0045]在本实施例的一个优选实施方式中,本步骤可以进一步包括如下子步骤:
[0046]步骤311、从文件系统获取资料数据的所有字段。
[0047]在本发明实施例中,文件系统是指存储在海量存储器中以文件形式对数据进行存储的系统,其可以包括现有的各类数据库系统及其它文件系统。
[0048]具体地,从文件系统获取资料数据的所有字段分三种情况进行。一种情况是在缓存区进行初始化时,这时期望将尽可能多的资料数据通过合并存储在缓存区中,由此,可以在初始化时,从文件系统获取所有资料数据的所有字段。优选地,可以模拟用户读取操作向缓存区发出依次读取所有资料数据的请求,以使得缓存区根据所述请求从文件系统获取所有资料数据的所有字段。
[0049]另一种情况是在缓存区初始化完成后,这时需要使得缓存区中合并存储的数据与文件系统中的数据保持同步,由此,可以在资料数据发生变化时,从文件系统获取发生变化的资料数据的所有字段。例如,对于资料数据为用户数据的情况,当用户通过客户端修改了文件系统中的用户数据时,触发文件系统与缓存区的同步,将发生变化的用户数据的所有字段发送到缓存区进行进一步处理。优选地,可以模拟用户读取操作向缓存区发出依次读取发生变化的资料数据的请求,以使得缓存区根据所述请求从文件系统获取发生变化的资料数据的所有字段。
[0050]还有一种情况是在初始化后,经过预定时间周期后,如果资料数据没有发生变化时,可能需要更新缓存中的数据,因此,在此前提下,也可以从文件系统获取经过预定时间周期没有发生变化的资料数据的所有字段。优选地,可以模拟用户读取操作向缓存区发出依次读取未发生变化的资料数据的请求,以使得缓存区根据所述请求从文件系统获取未发生变化的资料数据的所有字段。
[0051]步骤312、根据预定配置从所述所有字段中获取至少两个预定字段。
[0052]如上所述,具体地,可以通过读取XML配置文件的预先配置信息获取哪些字段属于需要进一步处理的预定字段。
[0053]由此,步骤310通过按照预定配置从资料数据中提取出预定的字段以供后续进一步处理。
[0054]步骤320、将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。
[0055]在本步骤,在缓存区中将步骤310提取的至少两个预定字段的字段值进行合并以获取包括至少两个字段值信息的合并值。在本实施例中,合并是指将至少两个独立的信息通过可逆的组合和/或变换手段转换为一个独立的信息的操作。具体地,在一个优选实施方式中,可以通过将二进制的字段值按顺序组合成新的二进制数据序列还实现合并。当然,也可以通过其他可逆的变换方式将至少两个预定字段的字段值合并为一个独立的合并值。
[0056]以组合图5a和图5b中所示的用户数据的昵称字段和年龄字段为例。在一个优选实施方式中,所述合并获取的合并值为“25john”,由于年龄字段为定长字段,因此,将年龄字段放在靠前的位置方面定位合并存储字段的字段值(也即合并值)中哪一部分是年龄字段值,哪一部分是昵称字段值。当然,本领域技术人员可以理解,也可以采用其它方式来实现对于合并值中的不同内容的区分,例如,在另一个优选实施方式中,利用在字段中较少出现的字符“#,,作为分隔符,合并获取的合并值为“25#john”通过预定的分隔符来区分合并值的不同部分,方便后续分离相应的信息。当然,用于进行分隔的可以为字符、字符串或者特定的二进制数序列。
[0057]当然,本领域技术人员可以理解,在合并完成后,缓存中的原有的字段信息可被删除以节省缓存区空间。
[0058]同时,本步骤中,根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。具体地,可以预先配置不同的预定字段的字段标识组合与预定的合并存储字段标识的映射关系,通过查询映射关系获取预定字段的字段标识所对应的合并存储字段标识。
[0059]步骤330、根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0060]在本步骤,在缓存区中将步骤320获取的合并值以及合并存储字段标识封装为带有预定的合并存储字段标识的合并存储字段并存储,由此实现字段信息的合并存储。具体地,可以直接在合并值前添加合并存储字段标识以获得合并存储字段,如图6所示。所获得的合并存储字段在形式上与一般的字段没有区别,其字段标识,也即合并存储字段标识为预先设定的标识,用于标识该字段存储的为多个预定字段的字段信息的合并值(也即包括至少两个预定字段的字段值信息)。由此,后续可以直接访问缓存区中的合并存储字段获取所需要的合并字段信息。由于一个合并存储字段可以存储多个字段的字段值,而其仅具有一个字段标识,因此,在缓存区中合并存储
[0061]在本实施例的一个优选实施方式中,字段以TLV方式存储时,在获取合并存储字段时还需要添加长度部分。以合并上述图5a和图5b所示的用户数据的昵称字段和年龄字段为例,如图7所示,合并存储字段也以TLV方式存储包括字段标识、长度部分和字段值,其中,字段标识为预设的值“ 100”,其表示该字段是用户数据的昵称和年龄字段的合并存储字段。本领域技术人员可以理解,合并存储字段的字段标识可以根据需要任意设置,其只需要满足与现有的字段标识不重复且长度等属于满足相应的标识规范即可。长度部分表示后续的合并值的长度,在图7所示的例子中,长度部分的内容为“5”,标识后续的字段值长度为5字节。字段值部分内容为昵称字段和年龄字段的字段值的组合,为“25john”或如前所述的“25#john”。由此,如果不进行合并的话,独立的昵称字段和年龄字段则需要占用13个字节,而合并后存储在缓存区中的合并存储字段的长度为9个字节,节省了 4个字节的缓存区空间,而且,合并存储的字段数目越多,节省的缓存区空间就越大。
[0062]同时,按照本实施例的方法来对文件系统中的资料数据进行合并转换后缓存,在节省了缓存空间的同时,并不需要对文件系统的存储方式以及读写方式进行任何修改,其操作对文件系统而言是透明的。
[0063]在本实施例的一个优选实施方式中,还可以同时设置至少两种类型的合并存储字段,按照本实施例的方案同时执行至少两种合并存储字段的缓存操作,由此,使得缓存区同时缓存有至少两种合并存储字段供查询。这样的优点在于可以针对不同的应用需求设置快速查询通道,例如,即时通信软件加载时,需要读取所有好友的昵称、头像、邮箱字段,而网络博客应用加载时,需要读取所有好友的昵称、生日、星座字段,由此,针对两种不同的应用可以设置即时通信合并存储字段和博客合并存储字段,前者合并存储昵称、头像、邮箱字段,而后者合并存储昵称、生日、星座字段。由此,当接收到即时通信软件的资料数据读取请求时,直接提供即时通信合并存储字段的内容。
[0064]进一步地,在客户端请求读取资料数据时,可以根据请求中的客户端应用标识来查询选择与所述客户端应用标识对应的合并存储字段获取合并值返回给客户端。例如,如果客户端应用标识表示请求读取用户资料的为即时通讯软件,则查询即时通信合并存储字段,如果客户端应用标识表示请求读取用户资料的为博客合并存储字段,则查询博客合并存储字段。由此,可以一次性满足特定类型的应用的读取需求,降低运算负担,进一步加快读取流程。
[0065]本实施例通过将至少两个预定字段的字段值合并后保存为一个合并存储字段,在存储相同的信息的同时有效减少了占用的缓存空间,从而提高了缓存空间利用率,降低了文件系统的读取频率,降低了数据读取时延。
[0066]图8是本发明第二实施例的数据缓存方法的流程图。如图8所示,所述方法包括:
[0067]步骤810、获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值。
[0068]步骤820、将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。
[0069]步骤830、根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0070]步骤840、根据读取资料数据特定字段的请求,在缓存区中查询合并存储字段获取所述特定字段的字段值返回给请求方。
[0071]第二实施例与第一实施例的不同在于,第二实施例中用户通过对特定字段的请求即可实现对于该字段的读取。
[0072]在本实施例的一个优选实施方式中,步骤840可以进一步包括:
[0073]步骤841、根据用户所要读取的特定字段的字段标识查询包含所述特定字段的字段值的合并存储字段标识。
[0074]步骤842、根据查询得到的合并存储字段标识查询合并存储字段获取所要读取的特定字段的字段值。
[0075]例如,用户通过客户端应用(如,腾讯QQ,腾讯QZone等)发送读取用户所有好友的昵称的请求,接收到请求后,首先提取获得所要求的字段标识为昵称字段标识(例如图5中的“1”),然后,将通过预先设置的映射关系(例如读取XML配置文件)获取存储有昵称字段的字段值的合并存储字段,(在图7的例子中,获得存储昵称字段的字段值的合并存储字段的字段标识为“ 100”),最后,根据该合并存储字段标识来查询字段值,并按照预定的规则从字段值中分离获得用户请求读取的特定字段的字段值(在图7的例子中,查询获得字段值为“25john”,分离获得用户昵称字段的字段值为“john”)。由此,对于客户端而言,其无需获取任何关于合并存储字段的信息,也即,在应用本实施例的方法来节省缓存空间的同时,无须对客户端进行任何修改,对于合并存储字段的读取相对于客户端是透明的。
[0076]图9是本发明第三实施例的数据缓存装置的示意图。如图9所示,所述数据缓存装置90包括获取单元91、合并单元92和缓存单元93。
[0077]其中,获取单元91用于获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值。
[0078]在本发明实施例中,资料数据是指存储于文件系统中的具有相同属性特征的数据集合,其包括多个字段;进一步地,字段是指表征资料数据某一特定属性的数据集合。在一个例子中,资料数据可以为用户资料,每一项资料数据对应于一个用户的用户资料,相应地,字段为表征用户属性数据,例如用户的唯一标识等。在另一个例子中,资料数据可以为物品数据,每一项资料数据对应于一种物品的特征资料,相应地,字段为表征物品属性数据,例如物品的规格参数等。
[0079]更具体地,资料数据可以为即时通讯用户(例如,QQ用户或微信用户)或者网络论坛用户或者网络博客用户或者微博客用户的用户资料,相应地,字段则可以为用户的昵称、性别、家乡、生日、星座、邮箱、头像标识等数据。
[0080]其中,预定字段可以根据需要进行设定,具体地,其可以通过在XML配置文件中进行预先配置,通过读取XML配置文件的预先配置信息获取哪些字段属于需要进一步处理的预定字段。
[0081]在本实施例的一个优选实施方式中,至少两个预定字段可以包括字段值长度固定的字段。以用户资料为例,性别、生日、星座均为长度固定的字段,为了节省空间,可以将这部分字段作为预定字段进行提取和压缩,方便对于相应字段信息的读取。
[0082]在本实施例的另一个优选实施方式中,至少两个预定字段包括特定客户端应用加载时所要读取的字段。以即时通讯软件(例如,腾讯QQ)用户资料为例,即时通讯软件加载时,需要读取所有好友的昵称、头像、邮箱字段,由此,可以将上述三个字段作为预定字段预先提取和合并存储在缓存区中,方便对于相应字段信息的读取。在应用到网络博客(例如,腾讯QZone)场景时,网络博客登陆时需要读取所有好友的昵称、生日、星座字段,由此,可以将上述三个字段作为预定字段预先提取和合并存储在缓存区中,方便对于相应字段信息的读取。
[0083]合并单元92用于将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。
[0084]在本实施例中,合并是指将至少两个独立的信息通过可逆的组合和/或变换手段转换为一个独立的信息的操作。具体地,在一个优选实施方式中,可以通过将二进制的字段值按顺序组合成新的二进制数据序列来实现合并。当然,也可以通过其它可逆的变换方式将至少两个预定字段的字段值合并为一个独立的合并值。同时,合并单元92还根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。具体地,可以预先配置不同的预定字段的字段标识组合与预定的合并存储字段标识的映射关系,通过查询映射关系获取预定字段的字段标识所对应的合并存储字段标识。
[0085]缓存单元93用于根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0086]在本发明实施例中,文件系统是指存储在海量存储器中以文件形式对数据进行存储的系统,其可以包括现有的各类数据库系统及其它文件系统。
[0087]在本实施例的一个优选实施方式中获取单元91可以包括拉取子单元911和预定字段获取子单元912。其中,拉取子单元911用于从文件系统获取资料数据的所有字段;预定字段获取子单元912用于根据预定配置从所述所有字段中获取至少两个预定字段。
[0088]进一步地,拉取子单元911还可以进一步包括第一拉取模块911a、第二拉取模块91 Ib和第三拉取模块911c。第一拉取模块91 Ia用于在初始化时,从文件系统获取所有资料数据的所有字段。第二拉取模块911b用于在资料数据发生变化时,从文件系统获取发生变化的资料数据的所有字段。第三拉取模块911c用于在资料数据经过预定时间周期未发生变化时,从文件系统获取未发生变化的资料数据的所有字段
[0089]优选地,拉取子单元911可以通过模拟用户读取操作向缓存区发出依次读取资料数据的请求,以使得缓存区根据所述请求从文件系统获取资料数据的所有字段。
[0090]在本实施例的一个优选实施方式中,还可以同时设置至少两种类型的合并存储字段,按照本实施例的方案同时执行至少两种合并存储字段的缓存操作,由此,使得缓存区同时缓存有至少两种合并存储字段供查询。这样的优点在于可以针对不同的应用需求设置快速查询通道,例如,即时通信软件加载时,需要读取所有好友的昵称、头像、邮箱字段,而网络博客应用加载时,需要读取所有好友的昵称、生日、星座字段,由此,针对两种不同的应用可以设置即时通信合并存储字段和博客合并存储字段,前者合并存储昵称、头像、邮箱字段,而后者合并存储昵称、生日、星座字段。由此,当接收到即时通信软件的资料数据读取请求时,直接提供即时通信合并存储字段的内容。
[0091]进一步地,在本实施方式中,装置90还包括应用读取单元94,其在客户端请求读取资料数据时,可以根据请求中的客户端应用标识来查询选择与所述客户端应用标识对应的合并存储字段获取合并值返回给客户端。例如,如果客户端应用标识表示请求读取用户资料的为即时通讯软件,则应用读取单元94查询即时通信合并存储字段,如果客户端应用标识表示请求读取用户资料的为博客应用,则应用读取单元94查询博客合并存储字段。由此,可以一次性满足特定类型的应用的读取需求,降低运算负担,进一步加快读取流程。
[0092]本实施例通过将至少两个预定字段的字段值合并后保存为一个合并存储字段,在存储相同的信息的同时有效减少了占用的缓存空间,从而提高了缓存空间利用率,降低了文件系统的读取频率,降低了数据读取时延。
[0093]图10是本发明第四实施例的数据缓存装置的示意图。如图10所示,所述数据缓存装置AO包括获取单元Al、合并单元A2、缓存单元A3和查询单元A4。
[0094]其中,获取单元Al用于获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值。
[0095]合并单元A2用于将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识。
[0096]缓存单元A3用于根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
[0097]查询单元A4用于根据用户读取资料数据特定字段的请求,在缓存区中查询合并存储字段获取所述特定字段的字段值返回给用户。
[0098]第四实施例与第三实施例的不同在于,第二实施例中用户通过对特定字段的请求即可实现对于该字段的读取。
[0099]在本实施例的一个优选实施方式中,所述查询单元A4可以进一步包括标识查询子单元A41和字段值查询子单元A42。
[0100]其中,标识查询子单元A41用于根据用户所要读取的特定字段的字段标识查询包含所述特定字段的字段值的合并存储字段标识。
[0101]同时,字段值查询子单元A42用于根据查询得到的合并存储字段标识查询合并存储字段获取所要读取的特定字段的字段值。
[0102]例如,用户通过客户端应用(如,腾讯QQ,腾讯QZone等)发送读取用户所有好友的昵称的请求,接收到请求后,首先提取获得所要求的字段标识为昵称字段标识(例如图5中的“1”),然后,将通过预先设置的映射关系(例如读取XML配置文件)获取存储有昵称字段的字段值的合并存储字段,(在图7的例子中,获得存储昵称字段的字段值的合并存储字段的字段标识为“ 100”),最后,根据该合并存储字段标识来查询字段值,并按照预定的规则从字段值中分离获得用户请求读取的特定字段的字段值(在图7的例子中,查询获得字段值为“25john”,分离获得用户昵称字段的字段值为“john”)。由此,对于客户端而言,其无须获取任何关于合并存储字段的信息,也即,在应用本实施例的方法来节省缓存空间的同时,无须对客户端进行任何修改,对于合并存储字段的读取相对于客户端是透明的。
[0103]显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的数据处理装置来实现,它们可以集中在单个数据处理装置上,或者分布在多个数据处理装置所组成的网络上,可选地,本发明实施例可以用包括处理器和用于形成缓存区的存储器的数据处理装置来实施,其可通过由处理器执行可执行的程序代码指令来实现,所述的程序代码用于指示进行上述任一实施例流程操作或由上述任一实施例的装置模块组成,上述的程序代码而可以被存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。当然,本领域技术人员还可以理解,上述的数据处理装置可以实现为网络端服务器的形式。
[0104]以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据缓存方法,其特征在于,包括: 获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值; 将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识; 根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
2.根据权利要求1所述的数据缓存方法,其特征在于,所述获取资料数据的至少两个预定字段包括: 从文件系统获取资料数据的所有字段; 根据预定配置从所述所有字段中获取至少两个预定字段。
3.根据权利要求2所述的数据缓存方法,其特征在于,所述从文件系统获取资料数据的所有字段包括: 在初始化时,从文件系统获取所有资料数据的所有字段;或者 在资料数据发生变化时,从文件系统获取发生变化的资料数据的所有字段;或者 在资料数据经过预定时间周期未发生变化时,从文件系统获取未发生变化的资料数据的所有字段。
4.根据权利要求2所述的数据缓存方法,其特征在于,所述从文件系统获取资料数据的所有字段包括: 模拟用户读取操作向缓存区发出依次读取资料数据的请求,以使得缓存区根据所述请求从文件系统获取资料数据的所有字段。
5.根据权利要求1所述的数据缓存方法,其特征在于,所述方法还包括: 根据用户读取资料数据特定字段的请求,在缓存区中查询合并存储字段获取所述特定字段的字段值返回给用户。
6.根据权利要求5所述的数据缓存方法,其特征在于,所述根据用户读取资料数据特定字段的请求,在缓存区中查询合并存储字段获取所述特定字段的字段值返回给用户包括: 根据用户所要读取的特定字段的字段标识查询包含所述特定字段的字段值的合并存储字段标识; 根据查询得到的合并存储字段标识查询合并存储字段获取所要读取的特定字段的字段值。
7.根据权利要求1所述的数据缓存方法,其特征在于,所述至少两个预定字段包括字段值长度固定的字段。
8.根据权利要求1所述的数据缓存方法,其特征在于,所述至少两个预定字段包括特定客户端应用加载时所要读取的字段。
9.根据权利要求1所述的数据缓存方法,其特征在于,具有不同合并字段标识的合并存储字段分别对应于不同的预定字段组合。
10.根据权利要求9所述的数据缓存方法,其特征在于,所述不同的预定字段组合对应于不同的客户端应用所要读取的字段组合; 所述方法还包括: 根据资料数据读取请求中的客户端应用标识,查询选择与所述客户端应用标识对应的合并存储字段的合并值返回给客户端。
11.一种数据缓存装置,其特征在于,包括: 获取单元,用于获取资料数据的至少两个预定字段,每个所述预定字段包括字段标识和字段值; 合并单元,用于将所述至少两个预定字段的字段值合并获取合并值,并根据所述至少两个预定字段的字段标识的组合获取对应的合并存储字段标识; 缓存单元,用于根据所述合并存储字段标识和所述合并值获取合并存储字段并存储在缓存区中,所述合并存储字段标识用于表示所述合并存储字段存储有所述至少两个预定字段的字段值的合并值。
12.根据权利要求11所述的数据缓存装置,其特征在于,所述获取单元包括: 拉取子单元,用于从文件系统获取资料数据的所有字段; 预定字段获取子单元,用于根据预定配置从所述所有字段中获取至少两个预定字段。
13.根据权利要求12所述的数据缓存装置,其特征在于,所述拉取子单元包括第一拉取模块、第二拉取模块和第二拉取模块; 所述第一拉取模块用于在初始化时,从文件系统获取所有资料数据的所有字段; 所述第二拉取模块用于在资料数据发生变化时,从文件系统获取发生变化的资料数据的所有字段; 所述第三拉取模块用于在资料数据经过预定时间周期未发生变化时,从文件系统获取未发生变化的资料数据的所有字段。
14.根据权利要求12所述的数据缓存装置,其特征在于,所述拉取子单元用于模拟用户读取操作向缓存区发出依次读取资料数据的请求,以使得缓存区根据所述请求从文件系统获取资料数据的所有字段。
15.根据权利要求11所述的数据缓存装置,其特征在于,所述装置还包括: 查询单元,用于根据用户读取资料数据特定字段的请求,在缓存区中查询合并存储字段获取所述特定字段的字段值返回给用户。
16.根据权利要求15所述的数据缓存装置,其特征在于,所述查询单元包括: 标识查询子单元,用于根据用户所要读取的特定字段的字段标识查询包含所述特定字段的字段值的合并存储字段标识; 字段值查询子单元,用于根据查询得到的合并存储字段标识查询合并存储字段获取所要读取的特定字段的字段值。
17.根据权利要求11所述的数据缓存装置,其特征在于,所述至少两个预定字段包括字段值长度固定的字段。
18.根据权利要求11所述的数据缓存装置,其特征在于,所述至少两个预定字段包括特定客户端应用加载时所要读取的字段。
19.根据权利要求11所述的数据缓存装置,其特征在于,具有不同合并字段标识的合并存储字段分别对应于不同的预定字段组合。
20.根据权利要求19所述的数据缓存装置,其特征在于,所述不同的预定字段组合对应于不同的客户端应用所要读取的字段组合; 所述装置还包括: 应用读取单元,用于根据资料数据读取请求中的客户端应用标识,查询选择与所述客户端应用标识对应的合并存储字段的合并值返回给客户端。
21.一种服务器,其特征在于,包括如权利要求11-20中任一项所述的数据缓存装置。
【文档编号】G06F17/30GK104298695SQ201310307408
【公开日】2015年1月21日 申请日期:2013年7月19日 优先权日:2013年7月19日
【发明者】张云鹏, 董江德, 余镇深 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1