一种存储数据的方法、装置及其对应的系统的制作方法

文档序号:10594186阅读:304来源:国知局
一种存储数据的方法、装置及其对应的系统的制作方法
【专利摘要】本发明公开了一种存储数据的方法、装置及其对应的系统,其中,该方法包括:在key?value快速存储系统中,根据预定算法确定每个待存储数据对应的key值的特征值;将所述key值与所述待存储数据合并,并将合并后的数据存入到所述特征值对应的存储空间内。本发明根据预定算法确定每个待存储数据对应的key值的特征值,特征值的数量小于key值的数量,则就可以将一类具有相同或相似特征的key值存储在一个存储空间内,且存储的数据是key值与待存储数据合并后的结果,方便后续查找数据,解决了现有在查找条件较为相似的多个数据时,也只能一个个输入key值来查找,耗费较多时间,检索效率低下的问题。
【专利说明】
一种存储数据的方法、装置及其对应的系统
技术领域
[0001]本发明涉及数据存储领域,特别是涉及一种存储数据的方法、装置及其对应的系统。【背景技术】
[0002]对于分布式的key-value快速存储系统,其数据按照key值(键值)对的形式进行组织、索引和存储,使用内存实现数据存储,同时能有效减少读写磁盘的次数,比SQL数据库存储拥有更好的读写性能。
[0003]使用key-value快速存储系统存储数据,需要指定具体的key值来存取数据,存取过程快速。存储key值对应的数据时,每个数据存储到一个key值下,存储的key值的个数较多。在检索数据时,只能根据key值单独查找每个数据,如果查找条件较为相似的多个数据时,也需要一个个输入key值来查找,耗费较多时间,检索效率低下。
【发明内容】

[0004]本发明提供一种存储数据的方法、装置及其对应的系统,用以解决现有在key-^alue 快速存储系统检索数据时 ,只能根据 key 值单独查找每个数据,在查找条件较为相似的多个数据时,也只能一个个输入key值来查找,耗费较多时间,检索效率低下的问题。
[0005]为解决上述技术问题,一方面,本发明提供一种存储数据的方法,包括:在key-value 快速存储系统中, 根据预定算法确定每个待存储数据对应的key 值的特征值; 将所述 key值与所述待存储数据合并,并将合并后的数据存入到所述特征值对应的存储空间内。
[0006]进一步,根据预定算法确定每个待存储数据对应的key值的特征值,包括:在所述预定算法为内置区间法的情况下,将预定时间段作为所述预定时间段内的所有key值对应的特征值;或者,在所述预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数字后得到的余数作为所述key值的特征值。
[0007]进一步,将所述key值与所述待存储数据合并,并将合并后的数据存入到所述特征值对应的存储空间内,包括:将确定的所述特征值作为所述key-value快速存储系统中新的 key值;将所述key值与所述待存储数据合并,并确定合并后的数据为value部分;将所述 value部分存入所述新的key值对应的存储空间内。
[0008]进一步,将所述key值与所述待存储数据合并,包括:通过分隔符将所述key值与所述待存储数据进行分隔,将分隔后的数据进行合并;或者,设置从存储起始处开始的预定个字节存储所述key值、设置所述预定个字节之后的其他字节存储所述待存储数据。
[0009]进一步,所述方法还包括:接收用于查找数据的索引值,其中,所述索引值包括:特征值,或者,key值;根据所述索引值在所述key-value快速存储系统中查找数据。
[0010]进一步,根据所述索引值在所述key-value快速存储系统中查找数据,包括:在所述索引值为特征值的情况下,在所述key-value快速存储系统中查找所述特征值对应的存储空间中的全部数据;在所述索引值为key值的情况下,计算所述key值对应的特征值,并在所述key-va lue快速存储系统中查找到所述特征值对应的存储空间中的全部数据,再在所述全部数据中查找所述key值对应的数据。
[0011]另一方面,本发明提供一种存储数据的装置,包括:确定模块,用于在key-value快速存储系统中,根据预定算法确定每个待存储数据对应的key值的特征值;存储模块,用于将所述key值与所述待存储数据合并,并将合并后的数据存入到所述特征值对应的存储空间内。
[0012]进一步,所述确定模块,还用于在所述预定算法为内置区间法的情况下,将预定时间段作为所述预定时间段内的所有key值对应的特征值;在所述预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数字后得到的余数作为所述key值的特征值。
[0013]进一步,所述存储模块包括:第一确定单元,用于将确定的所述特征值作为所述 key-value快速存储系统中新的key值;第二确定单元,用于将所述key值与所述待存储数据合并,并确定合并后的数据为value部分;存储单元,用于将所述value部分存入所述新的 key值对应的存储空间内。
[0014]进一步,所述第二确定单元,还用于通过分隔符将所述key值与所述待存储数据进行分隔,将分隔后的数据进行合并;或者,设置从存储起始处开始的预定个字节存储所述 key值、设置所述预定个字节之后的其他字节存储所述待存储数据。
[0015]进一步,所述装置还包括:接收模块,用于接收用于查找数据的索引值,其中,所述索引值包括:特征值,或者,key值;查找模块,用于根据所述索引值在所述key-value快速存储系统中查找数据。
[0016]进一步,所述查找模块,还用于在所述索引值为特征值的情况下,在所述key-value 快速存储系统中查找所述特征值对应的存储空间中的全部数据; 在所述索引值为key 值的情况下,计算所述key值对应的特征值,并在所述key-value快速存储系统中查找到所述特征值对应的存储空间中的全部数据,再在所述全部数据中查找所述key值对应的数据。
[0017]又一方面,本发明提供一种key-value快速存储系统,包括:上述的存储数据的装置。
[0018]本发明根据预定算法确定每个待存储数据对应的key值的特征值,特征值的数量小于key值的数量,则就可以将一类具有相同或相似特征的key值存储在一个存储空间内, 方便后续根据特征值查找数据,且存储的数据是key值与待存储数据合并后的结果,也保存了key值与待存储数据的对应关系,方便后续查找数据,解决了现有在key-value快速存储系统检索数据时,只能根据key值单独查找每个数据,在查找条件较为相似的多个数据时, 也只能一个个输入key值来查找,耗费较多时间,检索效率低下的问题。【附图说明】
[0019]图1是本发明实施例中存储数据的方法的流程图;
[0020]图2是本发明实施例中存储数据的装置的结构示意图;
[0021]图3是本发明实施例中存储数据的装置存储模块的结构示意图;
[0022]图4是本发明实施例中存储数据的装置的优选结构示意图;
[0023]图5是现有技术中key-value快速存储系统的数据存储结构示意图;
[0024]图6是本发明优选实施例中key-value快速存储系统的数据存储结构示意图。 【具体实施方式】
[0025]为了解决现有在key-value快速存储系统检索数据时,只能根据key值单独查找每个数据,在查找条件较为相似的多个数据时,也只能一个个输入key值来查找,耗费较多时间,检索效率低下的问题,本发明提供了一种存储数据的方法、装置及其对应的系统,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
[0026]本发明实施例提供了一种存储数据的方法,该方法的流程如图1所示,包括步骤 S102至S104:
[0027]S102,在key-value快速存储系统中,根据预定算法确定每个待存储数据对应的 key值的特征值;
[0028]S104,将key值与待存储数据合并,并将合并后的数据存入到特征值对应的存储空间内。
[0029]本发明实施例根据预定算法确定每个待存储数据对应的key值的特征值,特征值的数量小于key值的数量,则就可以将一类具有相同或相似特征的key值存储在一个存储空间内,方便后续根据特征值查找数据,且存储的数据是key值与待存储数据合并后的结果, 也保存了key值与待存储数据的对应关系,方便后续查找数据,解决了现有在key-value快速存储系统检索数据时,只能根据key值单独查找每个数据,在查找条件较为相似的多个数据时,也只能一个个输入key值来查找,耗费较多时间,检索效率低下的问题。
[0030]实现时,根据预定算法确定每个待存储数据对应的key值的特征值时,可以采用多种预定算法,例如经常使用的内置区间法和取余数值法。在预定算法为内置区间法的情况下,将预定时间段作为预定时间段内的所有key值对应的特征值,例如,将10:00至10:20时间段设置一个特征值,则在该时间段内的数据都存储在该特征值对应的存储空间内。在预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数字后得到的余数作为key值的特征值,例如,在存在10台服务器的情况下,可以采用该方法,这样就可以查找每台服务器上存储的数据。[0031 ]将key值与待存储数据合并、并将合并后的数据存入到特征值对应的存储空间内时,具体可以包括如下过程:将确定的特征值作为key-value快速存储系统中新的key值;将 key值与待存储数据合并,并确定合并后的数据为value部分;将value部分存入新的key值对应的存储空间内。原有的数据存储结构包括key值部分和value部分,原有的key值就是存储生成的序列号,该序列号通常情况下是不连续的离散序列,然而,本发明实施例是根据 key值生成一个特征值,该特征值替代原本各个离散的key值部分,又将key值与原本的 value部分一同存储,也不会丢失数据信息,能够更方便后续检索过程。
[0032]将key值与待存储数据合并时,可以通过分隔符将key值与待存储数据进行分隔, 再将分隔后的数据进行合并;当然,还可以设置从存储起始处开始的预定个字节存储key 值、设置预定个字节之后的其他字节存储待存储数据,则前预定个字节就是用来存储key值的,就不需要用分隔符进行区分了。在将key值与待存储数据合并时,也可以将原有的key值存储在待存储数据之后,本领域技术人员可以根据实际需求进行设置,上述的将key值存储在待存储数据之前的方式,可以更方便查看和寻找数据。
[0033]在存储了数据之后,如果需要查找数据时,和可以检索数据,此时,接收用于查找数据的索引值,其中,索引值可以是特征值,也可以是key值;随后,再根据索引值在key-value快速存储系统中查找数据。如果是使用特征值进行检索,则检索的通常不是单个数据,可能是较多具有某一系列特征的一组数据,如果是使用key值进行检索,则检索的是单独的一个数据,在检索时,先根据接收到的key值来确定特征值,再根据特征值查找到存储的数据,此时,可以直接根据上述key值在存储的数据中找到key值对应的数据,当然,也可以手动查找。
[0034]本发明实施例还提供了一种存储数据的装置,该装置的结构示意如图2所示,包括:确定模块10,用于在key-value快速存储系统中,根据预定算法确定每个待存储数据对应的key值的特征值;存储模块20,与确定模块10耦合,用于将key值与待存储数据合并,并将合并后的数据存入到特征值对应的存储空间内。
[0035]实现过程中,确定模块10,还用于在预定算法为内置区间法的情况下,将预定时间段作为预定时间段内的所有key值对应的特征值;在预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数字后得到的余数作为key值的特征值。[〇〇36]图3示出了存储模块20的结构示意图,其包括:第一确定单元201,用于将确定的特征值作为key-value快速存储系统中新的key值;第二确定单元202,用于将key值与待存储数据合并,并确定合并后的数据为value部分;存储单元203,与第一确定单元201和第二确定单元202親合,用于将value部分存入新的key值对应的存储空间内。[〇〇37]其中,第二确定单元202,还用于通过分隔符将key值与待存储数据进行分隔,将分隔后的数据进行合并;或者,设置从存储起始处开始的预定个字节存储key值、设置预定个字节之后的其他字节存储待存储数据。
[0038]进一步,图4示出了上述装置的优选结构示意图,上述装置还可以包括:接收模块 30,与存储模块20耦合,用于接收用于查找数据的索引值,其中,索引值包括:特征值,或者, key值;查找模块40,与接收模块30耦合,用于根据索引值在key-value快速存储系统中查找数据。[〇〇39]其中,上述查找模块40,具体还可以用于在索引值为特征值的情况下,在key-value 快速存储系统中查找特征值对应的存储空间中的全部数据; 在索引值为 key 值的情况下,计算key值对应的特征值,并在key-value快速存储系统中查找到特征值对应的存储空间中的全部数据,再在全部数据中查找key值对应的数据。
[0040]本发明实施例还提供一种key-value快速存储系统,该系统包括上述的存储数据的装置。本领域技术人员根据上述记载,知晓如何将上述装置设置在key-value快速存储系统中,此处不再赘述。[0041 ]优选实施例
[0042]本发明实施例提供了一种存储数据的方法,应用在key-value快速存储系统中,方案如下:根据预定算法对key值进行预处理,以计算出特征值,由于算法是预定的,目的是为了可以按大范围搜索多个key值对应的数据,因此,多个key值可以计算出同一个特征值,使用特征值存储数据,可以大量减少存储key的数量;其中,预定算法可以包括多种,例如,内置区间法或者取余数值法,当然,在可能的情况下,还可以使用经过变换的哈希法等方法来实现目的。在数据存储上,实际key值与待存储数据合并存储,因此能够减少缓存层次且加快检索效率。在检索时,就可以实现按区间(某一特征)检索数据。[〇〇43]下面结合附图对本发明实施例进行进一步说明。
[0044]如图5所示,为现有技术中key-value快速存储系统的数据存储结构示意图,其中, key部分存储实际key值,value部分存储实际的数据。图6示出了采用本发明实施例提供的存储数据的方法后,在key-value快速存储系统中的数据存储结构示意图,其中,向key-value快速存储系统存入数据时,key部分为计算所得的特征值,value部分存储数据列表, 即实际key值与数据合并后的数据项的列表,存储时,可以设置前4位存储key长度(key的字节数,例如图6中的“9”),之后顺序存储实际key和实际数据,形成数据项。
[0045]本实施例还提供一种存储数据的装置,在实现时,可以将该装置以计算机程序的形式进行实现,以形成独立的应用,该应用可以存在于key-value快速存储系统中。[〇〇46] 使用应用进行存储的过程中,根据实际key值(例如:20151215134406.356)可以直接计算出特征值(例如= 20151215134400);使用特征值为key部分从key-value缓存中获取到value(数据项列表);将实际key值和实际数据组合,形成数据项;将待存储数据项合并 value部分中(可以追加到数据项列表尾部);将value部分存储到特征值对应的key-value 缓存中。
[0047]使用应用进行检索的过程中,根据key值直接计算出特征值,或直接输入特征值; 使用特征值获取多组数据项列表;合并数据项列表;分解每个数据项,形成检索结果。
[0048]本发明实施例具备以下优点:扩展key-value快速存储系统的使用范围;针对不同业务数据可以灵活扩展;可以存储key值连续的数据;可以按区间检索key值连续的数据;压缩存储空间。
[0049]尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
【主权项】
1.一种存储数据的方法,其特征在于,包括:在key-value快速存储系统中,根据预定算法确定每个待存储数据对应的key值的特征 值;将所述key值与所述待存储数据合并,并将合并后的数据存入到所述特征值对应的存 储空间内。2.如权利要求1所述的方法,其特征在于,根据预定算法确定每个待存储数据对应的 key值的特征值,包括:在所述预定算法为内置区间法的情况下,将预定时间段作为所述预定时间段内的所有 key值对应的特征值;或者,在所述预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数 字后得到的余数作为所述key值的特征值。3.如权利要求1所述的方法,其特征在于,将所述key值与所述待存储数据合并,并将合 并后的数据存入到所述特征值对应的存储空间内,包括:将确定的所述特征值作为所述key-value快速存储系统中新的key值;将所述key值与所述待存储数据合并,并确定合并后的数据为value部分;将所述value部分存入所述新的key值对应的存储空间内。4.如权利要求3所述的方法,其特征在于,将所述key值与所述待存储数据合并,包括:通过分隔符将所述key值与所述待存储数据进行分隔,将分隔后的数据进行合并;或者,设置从存储起始处开始的预定个字节存储所述key值、设置所述预定个字节之后的其 他字节存储所述待存储数据。5.如权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:接收用于查找数据的索引值,其中,所述索引值包括:特征值,或者,key值;根据所述索引值在所述key-value快速存储系统中查找数据。6.如权利要求5所述的方法,其特征在于,根据所述索引值在所述key-value快速存储 系统中查找数据,包括:在所述索引值为特征值的情况下,在所述key-value快速存储系统中查找所述特征值 对应的存储空间中的全部数据;在所述索引值为key值的情况下,计算所述key值对应的特征值,并在所述key-value快 速存储系统中查找到所述特征值对应的存储空间中的全部数据,再在所述全部数据中查找 所述key值对应的数据。7.—种存储数据的装置,其特征在于,包括:确定模块,用于在key-value快速存储系统中,根据预定算法确定每个待存储数据对应 的key值的特征值;存储模块,用于将所述key值与所述待存储数据合并,并将合并后的数据存入到所述特 征值对应的存储空间内。8.如权利要求7述的装置,其特征在于,所述确定模块,还用于在所述预定算法为内置区间法的情况下,将预定时间段作为所 述预定时间段内的所有key值对应的特征值;在所述预定算法为取余数值法的情况下,将每个待存储数据对应的key值除以预定数字后得到的余数作为所述key值的特征值。9.如权利要求7所述的装置,其特征在于,所述存储模块包括:第一确定单元,用于将确定的所述特征值作为所述key-value快速存储系统中新的key 值;第二确定单元,用于将所述key值与所述待存储数据合并,并确定合并后的数据为 value部分;存储单元,用于将所述value部分存入所述新的key值对应的存储空间内。10.如权利要求9所述的装置,其特征在于,所述第二确定单元,还用于通过分隔符将所述key值与所述待存储数据进行分隔,将分 隔后的数据进行合并;或者,设置从存储起始处开始的预定个字节存储所述key值、设置所 述预定个字节之后的其他字节存储所述待存储数据。11.如权利要求7至10中任一项所述的装置,其特征在于,所述装置还包括:接收模块,用于接收用于查找数据的索引值,其中,所述索引值包括:特征值,或者,key 值;查找模块,用于根据所述索引值在所述key-value快速存储系统中查找数据。12.如权利要求11所述的装置,其特征在于,所述查找模块,还用于在所述索引值为特征值的情况下,在所述key-value快速存储系 统中查找所述特征值对应的存储空间中的全部数据;在所述索引值为key值的情况下,计算 所述key值对应的特征值,并在所述key-value快速存储系统中查找到所述特征值对应的存 储空间中的全部数据,再在所述全部数据中查找所述key值对应的数据。13.—种key-value快速存储系统,其特征在于,包括:权利要求7至12中任一项所述的 存储数据的装置。
【文档编号】G06F17/30GK105956164SQ201610334343
【公开日】2016年9月21日
【申请日】2016年5月19日
【发明人】郭昊
【申请人】海尔优家智能科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1