一种存储和读取数据的方法及设备技术

技术编号:16456070 阅读:30 留言:0更新日期:2017-10-25 20:36
本公开内容涉及网络通信技术领域,特别涉及一种存储和读取数据的方法及设备,用以解决现有技术的存储数据的方法造成存储空间的浪费的问题。本公开内容实施例确定需要存储的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;将所述数据的数据内容存储到数据表中所述存储索引信息对应的存储位置上;其中,所述数据表的结构为二维数组结构。由于本公开内容实施例根据需要存储的数据的ID,确定该数据对应的存储索引信息,根据确定的存储索引信息,将该数据的数据内容存储到数据表中,在将数据存储到数据表时,只需要存储该数据的内容,不需要存储数据的ID,从而有效的减少了存储数据需要的内存空间。

Method and equipment for storing and reading data

The disclosure relates to the field of network communication technology, in particular relates to a method and equipment for storing and reading data, so as to solve the waste of storage space caused by the storage of data in the existing technology. The embodiment of the disclosure to determine the identity ID stored data; the ID data processing to determine the storage index information corresponding to the data; the stored data content of the data stored in the data table stored in the corresponding index information; the structure of the data table the two-dimensional array structure. Because of the disclosure embodiment according to the needs of the data stored in ID, determine the index information stored the data corresponding to the index information stored according to the determined, the data content stored in the data table, the data stored in the data table, only need to store the number according to the content, do not need to store data the ID, which effectively reduces the memory space for data storage.

【技术实现步骤摘要】
一种存储和读取数据的方法及设备
本公开内容涉及网络通信
,特别涉及一种存储和读取数据的方法及设备。
技术介绍
随着计算机及网络技术的发展,数据的种类日益增多,对于不同种类的数据,需要采取合理的存储方法。目前,通常采用集合、数据表和数据库等形式存储数据。在通过集合或数据表存储该数据时,存在一种大记录数小数据体的数据模型,该集合或数据表中的记录数非常多,通常是亿级甚至是十亿级,但是集合中的每一个元素或者数据表中的每一条记录对应的数据信息占用的存储空间非常小。例如,一个数据表中保存的是用户状态,此数据表就为大记录数小数据体,该数据表中的记录数为所有用户,则记录数非常多,而记录的数据为每一个用户对应的用户状态,每一条记录占用的存储空间非常小。目前,在存储大记录数小数据体时,采用Hash(哈希)结构进行存储,形如:<数据标识,数据内容>。即在存储该数据时,需要将数据标识和数据内容同时存储。由于对于大记录数小数据体而言,数据内容占用的存储空间非常小,一般使用bit(比特)存储,而数据标识一般占用4-8字节的存储空间,因此存储数据标识占用的存储空间远远大于存储数据内容占用的存储空间,从而造成了存储空间的浪费。综上所述,目前存储数据的方法造成存储空间的浪费。
技术实现思路
本公开内容提供一种存储和读取数据的方法及设备,用以解决现有技术的存储数据的方法造成存储空间的浪费的问题。基于上述问题,本公开内容实施例提供一种存储数据的方法,包括:确定需要存储的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;将所述数据的数据内容存储到数据表中所述存储索引信息对应的存储位置上;其中,所述数据表的结构为二维数组结构。由于本公开内容实施例根据需要存储的数据的ID,确定该数据对应的存储索引信息,根据确定的存储索引信息,将该数据的数据内容存储到数据表中,在将数据存储到数据表时,只需要存储该数据的内容,不需要存储数据的ID,从而有效的减少了存储数据需要的内存空间。可选的,所述根据所述存储索引信息,将所述数据的数据内容存储到数据表中之前,还包括:根据所述数据的ID,确定所述数据为热点数据。由于本公开内容实施例在二维数组结构的数据表只存储热点数据,不存储非热点数据,从而有效减小存储空间的浪费,并且在调用该数据表时,由于数据表占用内存较小,使得效率更高。可选的,所述数据对应的存储索引信息包括所述数据对应的数组位置、所述数据对应的在数组中的元素位置、所述数据在元素中的起始位;所述对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息,包括:根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置和在数组中的元素位置;根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位;其中,所述N为所述数据表中每个数组包括的元素个数;所述L为所述数据表中每个元素存储数据的个数,并且所述L为H的约数,所述H为一个元素的位数;所述N、L和H为正整数。由于本公开内容实施例在二维数组结构的数据表存储数据时,只存储数据的内容,而数据的ID作为确定数据在数据对应的存储索引信息的计算参数,根据数据对应的存储索引信息将数据的数据内容存储到数据表中,不需要将数据的ID存储在二维数组结构的数据表,从而最大限度的减小内存。可选的,所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置,包括:根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置;所述根据所述数据表的参数信息中的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:根据所述N和所述L,对所述数据的ID进行取模运算和取整运算,确定所述数据对应的在数组中的元素位置;所述根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位,包括:根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位。可选的,所述根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置,包括:将所述数据的ID除以M,并将得到的商值进行向上取整运算;根据所述取整运算后得到的数值,确定所述数据对应的数组位置;其中,所述M为所述N与所述L的乘积;所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:将所述数据的ID与所述M进行取模运算,并将所述取模运算后得到的数值除以所述L,将得到的商值进行向上取整运算;根据所述向上取整运算后得到的数值,确定所述数据对应的在数组中的元素位置;其中,所述M为所述N与所述L的乘积;所述根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位,包括:将所述数据的ID与所述L进行取模运算,确定所述数据在元素中的数据位置;根据所述数据在元素中的所述数据位置,以及所述数据在元素中占用的位数,确定所述数据在元素中的起始位。由于本公开内容实施例的数据对应的存储索引信息包括数据对应的数组位置、数据对应的在数组中的元素位置、数据在元素中的起始位。并提供了根据数据的ID,以及二维数组结构的数据表的参数,确定数据对应的存储索引信息的计算方式,保证了数据表中数据的ID与数据内容的一一对应。可选的,所述数据对应的存储索引信息还包括所述数据在元素中的结束位;根据所述L,以及所述数据的ID,确定所述数据在元素中的结束位。可选的,所述根据所述L,以及所述数据的ID,确定所述数据在元素中的结束位,包括:根据所述数据的ID与所述L进行取模运算后的数值,确定所述数据在元素中的数据位置;根据所述数据在元素中的数据位置,确定与所述数据相邻且位于所述数据位置之后的目标数据在元素中的起始位;根据所述目标数据在元素中的起始位,确定所述数据在元素中的结束位。由于本公开内容实施例的数据对应的存储索引信息还包括数据在元素中的结束位。并提供了根据数据的ID,以及二维数组结构的数据表的参数,确定数据在元素中的结束位的计算方式,从而更加准确的根据数据对应的存储索引信息存储数据,保证了数据表中数据的ID与数据内容的一一对应。基于上述问题,本公开内容实施例提供一种读取数据的方法,包括:确定需要读取的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;从数据表中所述存储索引信息对应的存储位置上读取所述数据的数据内容;其中,所述数据表的结构为二维数组结构。由于本公开内容实施例在读取数据时,只需要根据确定的需要读取数据的ID,以及该数据对应的存储索引信息,就能够快速读取到数据表中该存储索引信息对应的数据内容,从而实现在占用很小内存的情况下,准确读取数据。可选的,所述从数据表中所述存储索引信息对应的存储位置上读取所述数据的数据内容之前,还包括:根据所述数据的ID,确定所述数据为热点数据。由于本公开内容实施例二维数组结构的数据表中存储有热点数据,在读取数据时,热点数据能够通过该数据表读取,由于该数据表占用内存很小,从而提高读取数据的效率。可选的,所述数据对应的存储索引信息包括所述数据对应的数组位置、所述数据对应的在数组中的元素位置、所述数据在元素中的起始位;所述对所述数据本文档来自技高网...
一种存储和读取数据的方法及设备

【技术保护点】
一种存储数据的方法,其特征在于,该方法包括:确定需要存储的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;将所述数据的数据内容存储到数据表中所述存储索引信息对应的存储位置上;其中,所述数据表的结构为二维数组结构。

【技术特征摘要】
1.一种存储数据的方法,其特征在于,该方法包括:确定需要存储的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;将所述数据的数据内容存储到数据表中所述存储索引信息对应的存储位置上;其中,所述数据表的结构为二维数组结构。2.如权利要求1所述的方法,其特征在于,所述根据所述存储索引信息,将所述数据的数据内容存储到数据表中之前,还包括:根据所述数据的ID,确定所述数据为热点数据。3.如权利要求1所述的方法,其特征在于,所述数据对应的存储索引信息包括所述数据对应的数组位置、所述数据对应的在数组中的元素位置、所述数据在元素中的起始位;所述对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息,包括:根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置和在数组中的元素位置;根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位;其中,所述N为所述数据表中每个数组包括的元素个数;所述L为所述数据表中每个元素存储数据的个数,并且所述L为H的约数,所述H为一个元素的位数;所述N、L和H为正整数。4.如权利要求3所述的方法,其特征在于,所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置,包括:根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置;所述根据所述数据表的参数信息中的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:根据所述N和所述L,对所述数据的ID进行取模运算和取整运算,确定所述数据对应的在数组中的元素位置;所述根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位,包括:根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位。5.如权利要求4所述的方法,其特征在于,所述根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置,包括:将所述数据的ID除以M,并将得到的商值进行向上取整运算;根据所述取整运算后得到的数值,确定所述数据对应的数组位置;其中,所述M为所述N与所述L的乘积;所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:将所述数据的ID与所述M进行取模运算,并将所述取模运算后得到的数值除以所述L,将得到的商值进行向上取整运算;根据所述向上取整运算后得到的数值,确定所述数据对应的在数组中的元素位置;其中,所述M为所述N与所述L的乘积;所述根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位,包括:将所述数据的ID与所述L进行取模运算,确定所述数据在元素中的数据位置;根据所述数据在元素中的所述数据位置,以及所述数据在元素中占用的位数,确定所述数据在元素中的起始位。6.如权利要求3所述的方法,其特征在于,所述数据对应的存储索引信息还包括所述数据在元素中的结束位;根据所述L,以及所述数据的ID,确定所述数据在元素中的结束位。7.如权利要求6所述的方法,其特征在于,所述根据所述L,以及所述数据的ID,确定所述数据在元素中的结束位,包括:根据所述数据的ID与所述L进行取模运算后的数值,确定所述数据在元素中的数据位置;根据所述数据在元素中的数据位置,确定与所述数据相邻且位于所述数据位置之后的目标数据在元素中的起始位;根据所述目标数据在元素中的起始位,确定所述数据在元素中的结束位。8.一种读取数据的方法,其特征在于,该方法包括:确定需要读取的数据的标识ID;对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息;从数据表中所述存储索引信息对应的存储位置上读取所述数据的数据内容;其中,所述数据表的结构为二维数组结构。9.如权利要求8所述的方法,其特征在于,所述从数据表中所述存储索引信息对应的存储位置上读取所述数据的数据内容之前,还包括:根据所述数据的ID,确定所述数据为热点数据。10.如权利要求8所述的方法,其特征在于,所述数据对应的存储索引信息包括所述数据对应的数组位置、所述数据对应的在数组中的元素位置、所述数据在元素中的起始位;所述对所述数据的ID进行运算处理,确定所述数据对应的存储索引信息,包括:根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置和在数组中的元素位置;根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位;其中,所述N为所述数据表中每个数组包括的元素个数;所述L为所述数据表中每个元素存储数据的个数,并且所述L为H的约数,所述H为一个元素的位数;所述N、L和H为正整数。11.如权利要求10所述的方法,其特征在于,所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的数组位置,包括:根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置;所述根据所述数据表的参数信息中的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:根据所述N和所述L,对所述数据的ID进行取模运算和取整运算,确定所述数据对应的在数组中的元素位置;所述根据所述L,以及所述数据的ID,确定所述数据在元素中的起始位,包括:根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位。12.如权利要求11所述的方法,其特征在于,所述根据所述N和所述L,对所述数据的ID进行除法运算,并将所述除法运算后的商值进行取整运算,确定所述数据对应的数组位置,包括:将所述数据的ID除以M,并将得到的商值进行向上取整运算;根据所述取整运算后得到的数值,确定所述数据对应的数组位置;其中,所述M为所述N与所述L的乘积;所述根据所述数据表的N和L,以及所述数据的ID,确定所述数据对应的在数组中的元素位置,包括:将所述数据的ID与所述M进行取模运算,并将所述取模运算后得到的数值除以所述L,将得到的商值进行向上取整运算;根据所述向上取整运算后得到的数值,确定所述数据对应的在数组中的元素位置;其中,所述M为所述N与所述L的乘积;所述根据所述L,对所述数据的ID进行取模运算,确定所述数据在元素中的起始位,包括:将所述数据的ID与所述L进行取模运算,确定所述数据在元素中的数据位置;根据所述数据在元素中的所述数据位置,以及所述数据在元素中占用的位数,确定...

【专利技术属性】
技术研发人员:余俊李彦超除禹桑植郭东白邹廷明周志伟
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1