一种数据存储方法、装置及设备制造方法及图纸

技术编号:24517362 阅读:15 留言:0更新日期:2020-06-17 06:42
本发明专利技术公开了一种数据存储方法、装置及设备,属于数据存储技术领域,用于减少内存的浪费,提高内存利用率。该方法包括:获得待存储的目标数据;从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,其中,N为大于或等于2的整数,每个内存队列被划分为多个内存容量相等的内存块,所述N个内存队列中的至少两个内存队列所划分的内存块的内存容量不同;将所述目标数据存储在所述目标内存队列的空闲内存块中。

A data storage method, device and equipment

【技术实现步骤摘要】
一种数据存储方法、装置及设备
本专利技术涉及数据存储
,尤其涉及一种数据存储方法、装置及设备。
技术介绍
随着互联网、社交网络、物联网的快速发展,会产生大量的数据,例如,对于物联网来说,物联网中所使用的传感器可能会不间断地采集数据,为了实现对海量数据的存储和处理,大数据技术应运而生。随着数据越来越多,也就需要越多越大的空间来存储这些数据,对于数据存储资源的分配是一个需要解决的问题。对于数据存储的方式,目前一般是先分配一块内存空间,当需要有数据存储时,则将需要存储的数据依次存储到该内存空间的各个内存块中,然而,当前分配给待存储数据的内存块的内存大小可能与该待存储数据的实际数据量相差较大,这样则可能导致较多的内存浪费,所以内存利用率较低。
技术实现思路
本专利技术实施例提供一种数据存储方法、装置及设备,用于解决内存利用率较低的技术问题,以减少数据存储时的内存浪费,提高内存利用率。第一方面,提供一种数据存储方法,所述方法包括:获得待存储的目标数据;从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,其中,N为大于或等于2的整数,每个内存队列被划分为多个内存容量相等的内存块,所述N个内存队列中的至少两个内存队列所划分的内存块的内存容量不同;将所述目标数据存储在所述目标内存队列的空闲内存块中。可选的,从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,包括:从所述N个内存队列中确定单个内存块的内存容量大于等于所述目标数据的数据量的候选内存队列;确定每个候选内存队列中的单个内存块的内存容量与所述目标数据的数据量之间的差值;根据获得的差值和预定选择规则,从所述候选内存队列中确定所述目标内存队列。可选的,根据获得的差值和预定选择规则,从所述候选内存队列中确定所述目标内存队列,包括:将获得的差值中的最小差值对应的内存队列确定为所述目标内存队列;或者,在获得的差值中的最小差值对应的内存队列中的内存块的使用比例大于等于第一预定比例时,将差值倒数第二对应的内存队列确定为所述目标内存队列。可选的,所述方法还包括:从所述N个内存队列中确定内存块的使用比例大于等于第二预定比例的第一内存队列;创建具有预定内存容量的新内存队列,并根据所述第一内存队列将所述新内存队列划分为多个内存块。可选的,根据所述第一内存队列将所述新内存队列划分为多个内存块,包括:以与所述第一内存队列中的单个内存块的内存容量划分所述新内存队列;或者,以第一内存容量与第二内存容量之间的一个内存容量划分所述新内存队列,其中,所述第一内存容量为所述第一内存队列中单个内存块的内存容量,所述第二内存容量为第二内存队列中单个内存块的内存容量,所述第二内存队列为单个内存块的内存容量小于所述第一内存容量且最大的内存队列。可选的,根据所述第一内存队列将所述新内存队列划分为多个内存块,包括:确定所述第一内存队列中的所有内存块中已经存储的数据的第一平均数据量;以所述第一平均数据量划分所述新内存队列。可选的,所述方法还包括:从所述N个内存队列中确定内存块的使用比例大于等于第二预定比例的第一内存队列;确定预定时间段内存储于所述N个内存队列中的所有数据的第二平均数据量,其中,所述预定时间段的终止时刻为创建所述新内存队列的时刻;以所述第二平均数据量划分所述新内存队列。第二方面,提供一种数据存储装置,所述数据存储装置包括:获得模块,用于获得待存储的目标数据;确定模块,用于从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,其中,N为大于或等于2的整数,每个内存队列被划分为若干个内存容量相等的内存块,所述N个内存队列中的至少两个内存队列所划分的内存块的内存容量不同;存储模块,用于将所述目标数据存储在所述目标内存队列的空闲内存块中。可选的,所述确定模块,用于:从所述N个内存队列中确定单个内存块的内存容量大于等于所述目标数据的数据量的候选内存队列;确定每个候选内存队列中的单个内存块的内存容量与所述目标数据的数据量之间的差值;根据获得的差值和预定选择规则,从所述候选内存队列中确定所述目标内存队列。可选的,所述确定模块,用于:将获得的差值中的最小差值对应的内存队列确定为所述目标内存队列;或者,在获得的差值中的最小差值对应的内存队列中的内存块的使用比例大于等于第一预定比例时,将差值倒数第二对应的内存队列确定为所述目标内存队列。可选的,所述数据存储装置还包括创建模块,用于:从所述N个内存队列中确定内存块的使用比例大于等于第二预定比例的第一内存队列;创建具有预定内存容量的新内存队列,并根据所述第一内存队列将所述新内存队列划分为多个内存块。可选的,所述创建模块,用于:以与所述第一内存队列中的单个内存块的内存容量划分所述新内存队列;或者,以第一内存容量与第二内存容量之间的一个内存容量划分所述新内存队列,其中,所述第一内存容量为所述第一内存队列中单个内存块的内存容量,所述第二内存容量为第二内存队列中单个内存块的内存容量,所述第二内存队列为单个内存块的内存容量小于所述第一内存容量且最大的内存队列。可选的,所述创建模块,用于:确定所述第一内存队列中的所有内存块中已经存储的数据的第一平均数据量;以所述第一平均数据量划分所述新内存队列。可选的,所述创建模块,用于:从所述N个内存队列中确定内存块的使用比例大于等于第二预定比例的第一内存队列;确定预定时间段内存储于所述N个内存队列中的所有数据的第二平均数据量,其中,所述预定时间段的终止时刻为创建所述新内存队列的时刻;以所述第二平均数据量划分所述新内存队列。第三方面,提供一种数据存储设备,所述设备包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行第一方面中任一方法包括的步骤。第四方面,提供一种存储介质,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行第一方面中任一方法包括的步骤。在本专利技术实施例中,可以预先配置多个内存队列,例如可以配置N个内存队列,并且将各个内存队列划分为不同内存容量的内存块,从而可以通过不同内存大小的内存块来对不同数据量的数据进行匹配存储,例如,对于待存储的目标数据来说,可以从N个内存队列中选择出与该目标数据的数据量匹配的(例如数据量最接近)的内存块来存储该目标数据,这样可以尽量将接近目标数据的数据量的内存块分配来存储该目标数据,从而可以尽量减少一个内存块在存储数据后的内存剩余,减少内存浪费,节约内存空间,提高内存利用率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明为了更清楚地说明本专利技术实施例本文档来自技高网...

【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:/n获得待存储的目标数据;/n从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,其中,N为大于或等于2的整数,每个内存队列被划分为多个内存容量相等的内存块,所述N个内存队列中的至少两个内存队列所划分的内存块的内存容量不同;/n将所述目标数据存储在所述目标内存队列的空闲内存块中。/n

【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:
获得待存储的目标数据;
从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,其中,N为大于或等于2的整数,每个内存队列被划分为多个内存容量相等的内存块,所述N个内存队列中的至少两个内存队列所划分的内存块的内存容量不同;
将所述目标数据存储在所述目标内存队列的空闲内存块中。


2.如权利要求1所述的方法,其特征在于,从N个内存队列中确定与所述目标数据的数据量匹配的目标内存队列,包括:
从所述N个内存队列中确定单个内存块的内存容量大于等于所述目标数据的数据量的候选内存队列;
确定每个候选内存队列中的单个内存块的内存容量与所述目标数据的数据量之间的差值;
根据获得的差值和预定选择规则,从所述候选内存队列中确定所述目标内存队列。


3.如权利要求2所述的方法,其特征在于,根据获得的差值和预定选择规则,从所述候选内存队列中确定所述目标内存队列,包括:
将获得的差值中的最小差值对应的内存队列确定为所述目标内存队列;
或者,在获得的差值中的最小差值对应的内存队列中的内存块的使用比例大于等于第一预定比例时,将差值倒数第二对应的内存队列确定为所述目标内存队列。


4.如权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
从所述N个内存队列中确定内存块的使用比例大于等于第二预定比例的第一内存队列;
创建具有预定内存容量的新内存队列,并根据所述第一内存队列将所述新内存队列划分为多个内存块。


5.如权利要求4所述的方法,其特征在于,根据所述第一内存队列将所述新内存队列划分为多个内存块,包括:
以与所述第一内存队列中的单个内存块的内存容量划分所述新内存队列;
或者,以第一内存容量与第二内存容量之间的一个内存...

【专利技术属性】
技术研发人员:王鹏贺婷李芳费菲王斌
申请(专利权)人:中国移动通信集团陕西有限公司中国移动通信集团有限公司
类型:发明
国别省市:陕西;61

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

1