一种数据存储方法及装置、存储介质与流程

文档序号:33258667发布日期:2023-02-21 18:05阅读:30来源:国知局
一种数据存储方法及装置、存储介质与流程

1.本技术涉及数据存储领域,尤其涉及一种数据存储方法及装置、存储介质。


背景技术:

2.现有的数据存储方法在接收到消息数据并进行存储的情况下,通常是从内存资源中预先划分一个固定容量大小的缓存容量来进行存储,但是由于消息在未被读取时,无法预知需要划分多少容量的缓存容量,如果接收到的消息数据大于固定容量时,需要根据消息数据的数据量重新为消息数据划分缓存容量,并释放现有的固定缓存容量。因此,查找到最适合存储接收到的消息数据的缓存容量的效率低、增加了存储时长。


技术实现要素:

3.本技术实施例提供一种数据存储方法及装置、存储介质,能够提高分配缓存容量时的效率,进而降低了存储时长。
4.本技术的技术方案是这样实现的:
5.第一方面,本技术实施例提供一种数据存储方法,所述方法包括:
6.在接收到第一消息数据的情况下,确定所述第一消息数据对应的第一数据量、参考索引值以及所述参考索引值对应的参考缓存容量;
7.将所述第一数据量和所述参考缓存容量进行比较,得到比较结果;根据所述比较结果对所述参考索引值进行调整,得到第一索引值;
8.从预设缓存容量库中查找所述第一索引值对应的第一缓存容量;为所述第一消息数据分配所述第一缓存容量的缓存空间进行数据存储。
9.在上述数据存储方法中,所述确定参考索引值以及所述参考索引值对应的参考缓存容量,包括:
10.若所述第一消息数据为首次接收的消息数据,则确定所述参考索引值为初始索引值,所述参考缓存容量为所述初始索引值对应的初始缓存容量;
11.若所述第一消息数据为非首次接收的消息数据,则确定所述参考索引值为上一次数据存储时确定的索引值,所述参考缓存容量为上一次数据存储时确定索引值对应的缓存容量。
12.在上述数据存储方法中,所述根据所述比较结果对所述参考索引值进行调整,得到第一索引值,包括:
13.根据所述预设缓存容量库的排序方式确定调整规则;
14.若所述比较结果为所述第一数据量大于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量大于所述第一数据量,将所述调整后的参考索引值确定为所述第一索引值。
15.在上述数据存储方法中,所述根据所述比较结果对所述参考索引值进行调整,得到第一索引值;包括:
16.根据所述预设缓存容量库的排序方式确定调整规则;
17.若所述比较结果为所述第一数据量小于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量小于所述第一数据量;
18.根据所述调整规则,确定与所述调整后的参考索引值相邻的上一轮调整后的参考索引值,并将所述上一轮调整后的参考索引值确定为所述第一索引值。
19.在上述数据存储方法中,所述根据所述比较结果对所述参考索引值进行调整,得到第一索引值,包括:
20.若所述比较结果为所述第一数据量小于所述参考缓存容量,将所述参考索引值确定为所述第一索引值。
21.在上述数据存储方法中,所述在接收到第一消息数据的情况下,确定所述第一消息数据对应的第一数据量、参考索引值以及所述参考索引值对应的参考缓存容量之前,所述方法还包括:
22.按照缓存容量的大小,依次为所述缓存容量分配索引值;并将缓存容量和对应的索引值添加至所述预设缓存容量库中。
23.在上述数据存储方法中,所述从所述预设缓存容量库中查找所述第一索引值对应的第一缓存容量;为所述第一消息数据分配所述第一缓存容量的缓存空间进行数据存储之后,所述方法还包括:
24.将所述第一索引值和所述第一缓存容量作为所述参考索引值和所述参考缓存容量,以供下一次接收到消息数据时确定下一次分配的缓存容量。
25.第二方面,本技术实施例提供一种数据存储装置,所述装置包括:
26.确定单元,用于在接收到第一消息数据的情况下,确定所述第一消息数据对应的第一数据量、参考索引值以及所述参考索引值对应的参考缓存容量;
27.数据处理单元,用于将所述第一数据量和所述参考缓存容量进行比较,得到比较结果;根据所述比较结果对所述参考索引值进行调整,得到第一索引值;
28.查找单元,用于从预设缓存容量库中查找所述第一索引值对应的第一缓存容量;为所述第一消息数据分配所述第一缓存容量的缓存空间进行数据存储。
29.第三方面,本技术实施例提供一种数据存储设备,其特征在于,所述设备包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如上述任一项所述的数据存储方法。
30.第四方面,本技术实施例提供一种存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上述任一项所述的数据存储方法。
31.本技术实施例提供了一种数据存储方法及装置、存储介质,该方法包括:在接收到第一消息数据的情况下,确定第一消息数据对应的第一数据量、参考索引值以及参考索引值对应的参考缓存容量;将第一数据量和参考缓存容量进行比较,得到比较结果;根据比较结果对参考索引值进行调整,得到第一索引值;从预设缓存容量库中查找第一索引值对应的第一缓存容量;为第一消息数据分配第一缓存容量的缓存空间进行数据存储;采用上述实现方案,由于将内存资源预先划分为多个不同大小的缓存容量,并且对应添加索引值,能够在接收到消息数据时,通过消息数据和参考缓存容量的判断结果,得到消息数据对应的
索引值,然后从预设缓存容量库中查找消息数据对应的缓存容量存储消息数据,能够提高分配缓存容量时的效率,进而降低存储时长。
附图说明
32.图1为本技术实施例提供的一种数据存储方法流程图;
33.图2为本技术实施例提供的一种数据存储装置1的组成结构示意图;
34.图3为本技术实施例提供的一种数据存储设备1的组成结构示意图。
具体实施方式
35.应当理解,此处描述的具体实施例仅仅用以解释本技术。并不用于限定本技术。
36.本技术实施例提供一种数据存储方法,应用于数据存储装置,图1为本技术实施例提供的一种数据存储方法流程图,如图1所示,数据存储方法可以包括:
37.s101、在接收到第一消息数据的情况下,确定第一消息数据对应的第一数据量、参考索引值以及参考索引值对应的参考缓存容量。
38.本技术实施例提供的一种数据存储方法适用于在接收到消息数据时,需要分配缓存容量进行存储的场景下。
39.在本技术实施例中,数据存储装置在接收到第一消息数据的情况下,确定第一消息数据对应的第一数据量、参考索引值以及参考索引值对应的参考缓存容量。
40.需要说明的是,在接收到第一消息数据时,需要对第一消息数据分配缓存容量进行存储,此时则需要先确定第一消息数据对应的第一数据量,再根据第一数据量判断给第一消息数据分配多少缓存容量。
41.需要说明的是,参考索引值可以理解为是此次分配缓存容量时的一个参考,参考索引值可以是初始索引值也可以是上一次进行缓存容量分配时分配的缓存容量对应的索引值。
42.具体的,若第一消息数据为首次接收的消息数据,则确定参考索引值为初始索引值,参考缓存容量为初始索引值对应的初始缓存容量;若第一消息数据为非首次接收的消息数据,则确定参考索引值为上一次数据存储时确定的索引值,参考缓存容量为上一次数据存储时确定索引值对应的缓存容量。
43.需要说明的是,假设此时第一消息数据为首次接收的消息数据,由于之前没有接收并存储过消息数据,所以,此时的参考索引值只能是初始指定的索引值,在本技术实施例中,初始索引值为32,对应的初始缓存容量为1024字节。具体的初始索引值和初始缓存容量根据实际情况指定,本技术实施例在此不做限定。
44.需要说明的是,假设此时第一消息数据为非首次接收的消息数据,则上一次消息存储时确定的索引值为参考索引值,例如,上一次在接收到消息数据之后,将其存储至缓存容量为512字节的缓存空间中,并且其对应的索引值为31,则此时参考索引值为31,参考缓存容量为512字节。
45.需要说明的是,预设缓存容量库是由多个不同的缓存容量组成的,并且每个缓存容量都有自己的索引值。
46.具体的,按照缓存容量的大小,依次为缓存容量分配索引值;并将缓存容量和对应
的索引值添加至预设缓存容量库中。
47.示例性的,在本技术实施例中,定义了一个预设缓存容量库a,a=[16,32,48,64,80,96,112,128,144,160,176,192,208,224,240,256,272,288,304,320,336,352,368,384,400,416,432,448,464,480,496,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824],从此预设缓存容量库a中可以看出,预设的最小缓存容量为16字节,最大缓存容量为1073741824字节,并且可以给每个缓存容量添加对应的索引值,例如16字节对应索引值为0,32字节对应索引值为1,48字节对应索引值为2,以此类推,直到每个缓存容量都有自己对应的索引值,并且从此预设缓存容量库a中可以看出,在缓存容量小于512字节的时候,由于缓存容量已经比较小,容量每次下调的幅度要小些,每两个缓存容量之间差距为16字节;当容量大于512字节时,说明需要解码的消息码流比较大,这时采用较大的幅度,每两个缓存容量之间则为倍数关系。
[0048]
需要说明的是,在定义预设缓存容量库时,可以从根据缓存容量的大小从大到小进行存储,例如:[144,128,112,96,80,64,48,32,16],此时缓存容量144对应的索引值则为0,缓存容量16对应的索引值则为8,具体的预设缓存容量库生成方法根据实际情况确定,本技术实施例在此不做限定。
[0049]
s102、将第一数据量和参考缓存容量进行比较,得到比较结果;根据比较结果对参考索引值进行调整,得到第一索引值。
[0050]
在本技术实施例中,数据存储装置在查找到参考索引值对应的参考缓存容量的情况下,将第一数据量和参考缓存容量进行比较,得到比较结果;根据比较结果对参考索引值进行调整,得到第一索引值。
[0051]
在本技术一种可选的实施例中,若第一数据量大于参考缓存容量,则需要在参考缓存容量的基础上扩大缓存容量,从而存储第一消息数据。
[0052]
具体的,根据预设缓存容量库的排序方式确定调整规则;若比较结果为第一数据量大于参考缓存容量,则根据第一预设数值和调整规则,循环对参考索引值进行调整,直至调整后的参考索引值对应的缓存容量大于第一数据量,将调整后的参考索引值确定为第一索引值。
[0053]
需要说明的是,预设缓存容量库的排序方式可以理解为是根据缓存容量从小到大进行存储或者从大到小进行存储。
[0054]
需要说明的是,假设此时预设缓存容量库的排序方式是从小到大进行存储的,则调整规则为在参考索引值的基础上循环增加第一预设数值;假设此时预设缓存容量库的排序方式是从大到小进行存储的,则调整规则为在参考索引值的基础上循环减小第一预设数值。
[0055]
示例性的,假设此时预设缓存容量库的排序方式是从小到大进行存储的,并且第一数据量为2000字节,参考缓存容量为512字节,则512字节的参考缓存容量中存储不下2000字节的第一消息数据,需要在512字节的参考缓存容量的基础上扩大缓存容量,则在参考索引值31的基础上增加第一预设数值,在本技术实施例中,第一预设数值为4,在31的基础上加4,得到索引值35,然后查找索引值35在预设缓存容量库中对应的缓存容量为8192字节,判断2000字节的第一消息数据能否存储至索引值35对应的缓存容量中,如果可以,则索
引值35为第一索引值,但是如果此时第一数据量为9000字节,则不能存储至索引值35对应的缓存容量中,需要在索引值35的基础上再增加第一预设数值4,得到索引值39,继续进行判断,直至调整后的参考索引值对应的缓存容量大于第一数据量,得到第一索引值。
[0056]
需要说明的是,在循环增加的过程中,需要保证增加后的索引值不能超过预设缓存容量库中的最大索引值;在循环减小的过程中,需要保证减小后的索引值不能小于预设缓存容量库中的最小索引值。
[0057]
在本技术一种可选的实施例中,若第一数据量小于参考缓存容量,则需要在参考缓存容量的基础上缩小缓存容量,从而存储第一消息数据。
[0058]
具体的,根据预设缓存容量库的排序方式确定调整规则;若比较结果为第一数据量小于参考缓存容量,则根据第一预设数值和调整规则,循环对参考索引值进行调整,直至调整后的参考索引值对应的缓存容量小于第一数据量;根据调整规则,确定与调整后的参考索引值相邻的上一轮调整后的参考索引值,并将上一轮调整后的参考索引值确定为第一索引值。
[0059]
需要说明的是,假设此时预设缓存容量库的排序方式是从小到大进行存储的,则调整规则为在参考索引值的基础上循环减少第二预设数值;假设此时预设缓存容量库的排序方式是从大到小进行存储的,则调整规则为在参考索引值的基础上循环增加第二预设数值。
[0060]
示例性的,假设此时预设缓存容量库的排序方式是从小到大进行存储的,并且第一数据量为450字节,参考缓存容量为512字节,则512字节的参考缓存容量大于450字节的第一消息数据,需要在512字节的参考缓存容量的基础上缩小缓存容量,则在参考索引值31的基础上减少第二预设数值,在本技术实施例中,第二预设数值为1,在31的基础上减1,得到索引值30,然后查找索引值30在预设缓存容量库中对应的缓存容量为496字节,判断索引值30对应的缓存容量496是否小于450字节的第一消息数据,如果不小于,则继续在索引值30的基础上减少第二预设数值,继续进行判断,直到调整后的参考索引值对应的缓存容量小于450字节,即预设缓存容量库中的448缓存容量,此时需要在448缓存容量对应的参考索引值的基础上增加一个第二预设数值,即增加1,得到464缓存容量后,将464缓存容量对应的索引值作为第一索引值。
[0061]
可以理解的是,通过上述方法能够尽可能的找到和第一数据量最相近的缓存容量,减少内存资源的浪费。
[0062]
在本技术一种可选的实施例中,若第一数据量小于参考缓存容量,还可以直接将参考索引值确定为第一索引值。
[0063]
s103、从预设缓存容量库中查找第一索引值对应的第一缓存容量;为第一消息数据分配第一缓存容量的缓存空间进行数据存储。
[0064]
在本技术实施例中,数据存储装置在得到第一索引值的情况下,从预设缓存容量库中查找第一索引值对应的第一缓存容量;为第一消息数据分配第一缓存容量的缓存空间进行数据存储。
[0065]
需要说明的是,在为第一消息数据分配第一缓存容量的缓存空间进行数据存储之后,还需要将第一索引值和第一缓存容量作为下一次数据存储时的参考。
[0066]
具体的,将第一索引值和第一缓存容量作为参考索引值和参考缓存容量,以供下
一次接收到消息数据时确定下一次分配的缓存容量。
[0067]
示例性的,假设此时确定出的第一索引值为33,第一缓存容量为2048字节,并且此时的参考索引值为31,参考缓存容量为512字节,则将参考索引值更新为第一索引值33,将参考缓存容量更新为第一缓存容量2048字节,在下一次接收到消息数据时,就基于参考索引值33和参考缓存容量2048字节确定分配的缓存容量。
[0068]
本技术实施例提供了一种数据存储方法,该方法包括:在接收到第一消息数据的情况下,确定第一消息数据对应的第一数据量、参考索引值以及参考索引值对应的参考缓存容量;将第一数据量和参考缓存容量进行比较,得到比较结果;根据比较结果对参考索引值进行调整,得到第一索引值;从预设缓存容量库中查找第一索引值对应的第一缓存容量;为第一消息数据分配第一缓存容量的缓存空间进行数据存储;采用上述实现方案,首由于将内存资源预先划分为多个不同大小的缓存容量,并且对应添加索引值,能够在接收到消息数据时,通过消息数据和参考缓存容量的判断结果,得到消息数据对应的索引值,然后从预设缓存容量库中查找消息数据对应的缓存容量存储消息数据,能够提高分配缓存容量时的效率,进而降低存储时长。
[0069]
基于上述实施例,在本技术的另一实施例中,提供了一种数据存储装置1,图2为本技术提供的一种数据存储装置1的组成结构示意图一,如图2所示,该数据存储装置1包括:
[0070]
确定单元10,用于在接收到第一消息数据的情况下,确定所述第一消息数据对应的第一数据量、参考索引值以及所述参考索引值对应的参考缓存容量;
[0071]
数据处理单元11,用于将所述第一数据量和所述参考缓存容量进行比较,得到比较结果;根据所述比较结果对所述参考索引值进行调整,得到第一索引值;
[0072]
查找单元12,用于从预设缓存容量库中查找所述第一索引值对应的第一缓存容量;为所述第一消息数据分配所述第一缓存容量的缓存空间进行数据存储。
[0073]
可选的,所述确定单元10,还用于若所述第一消息数据为首次接收的消息数据,则确定所述参考索引值为初始索引值,所述参考缓存容量为所述初始索引值对应的初始缓存容量;
[0074]
所述确定单元10,还用于若所述第一消息数据为非首次接收的消息数据,则确定所述参考索引值为上一次数据存储时确定的索引值,所述参考缓存容量为上一次数据存储时确定索引值对应的缓存容量。
[0075]
可选的,所述数据处理单元11,还用于根据所述预设缓存容量库的排序方式确定调整规则;若所述比较结果为所述第一数据量大于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量大于所述第一数据量,将所述调整后的参考索引值确定为所述第一索引值。
[0076]
可选的,所述数据处理单元11,还用于根据所述预设缓存容量库的排序方式确定调整规则;若所述比较结果为所述第一数据量小于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量小于所述第一数据量;根据所述调整规则,确定与所述调整后的参考索引值相邻的上一轮调整后的参考索引值,并将所述上一轮调整后的参考索引值确定为所述第一索引值。
[0077]
可选的,所述确定单元10,还用于若所述比较结果为所述第一数据量小于所述参
考缓存容量,将所述参考索引值确定为所述第一索引值。
[0078]
可选的,所述数据处理单元11,还用于按照缓存容量的大小,依次为所述缓存容量分配索引值;并将缓存容量和对应的索引值添加至所述预设缓存容量库中。
[0079]
可选的,所述数据处理单元11,还用于将所述第一索引值和所述第一缓存容量作为所述参考索引值和所述参考缓存容量,以供下一次接收到消息数据时确定下一次分配的缓存容量。
[0080]
本技术实施例提供了一种数据存储装置,该装置包括:在接收到第一消息数据的情况下,确定第一消息数据对应的第一数据量、参考索引值以及参考索引值对应的参考缓存容量;将第一数据量和参考缓存容量进行比较,得到比较结果;根据比较结果对参考索引值进行调整,得到第一索引值;从预设缓存容量库中查找第一索引值对应的第一缓存容量;为第一消息数据分配第一缓存容量的缓存空间进行数据存储;采用上述实现方案,由于将内存资源预先划分为多个不同大小的缓存容量,并且对应添加索引值,能够在接收到消息数据时,通过消息数据和参考缓存容量的判断结果,得到消息数据对应的索引值,然后从预设缓存容量库中查找消息数据对应的缓存容量存储消息数据,能够提高分配缓存容量时的效率,进而降低存储时长。
[0081]
图3为本技术实施例提供的一种数据存储设备1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图3所示,本实施例的数据存储设备1包括:处理器13、存储器14及通信总线15。
[0082]
在具体的实施例的过程中,上述确定单元10、数据处理单元11和查找单元12可由位于数据存储设备1上的处理器13实现,上述处理器13可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理器(dsp,digital signal processor)、数字信号处理图像处理装置(dspd,digital signal processing device)、可编程逻辑图像处理装置(pld,programmable logic device)、现场可编程门阵列(fpga,field programmable gate array)、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的数据存储设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
[0083]
在本技术实施例中,上述通信总线15用于实现处理器13和存储器14之间的连接通信;上述处理器13执行存储器14中存储的运行程序时实现如下的数据存储方法:
[0084]
在接收到第一消息数据的情况下,确定所述第一消息数据对应的第一数据量、参考索引值以及所述参考索引值对应的参考缓存容量;
[0085]
将所述第一数据量和所述参考缓存容量进行比较,得到比较结果;根据所述比较结果对所述参考索引值进行调整,得到第一索引值;
[0086]
从预设缓存容量库中查找所述第一索引值对应的第一缓存容量;为所述第一消息数据分配所述第一缓存容量的缓存空间进行数据存储。
[0087]
可选的,所述处理器13,还用于若所述第一消息数据为首次接收的消息数据,则确定所述参考索引值为初始索引值,所述参考缓存容量为所述初始索引值对应的初始缓存容量;若所述第一消息数据为非首次接收的消息数据,则确定所述参考索引值为上一次数据存储时确定的索引值,所述参考缓存容量为上一次数据存储时确定索引值对应的缓存容量。
[0088]
可选的,所述处理器13,还用于根据所述预设缓存容量库的排序方式确定调整规则;若所述比较结果为所述第一数据量大于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量大于所述第一数据量,将所述调整后的参考索引值确定为所述第一索引值。
[0089]
可选的,所述处理器13,还用于根据所述预设缓存容量库的排序方式确定调整规则;若所述比较结果为所述第一数据量小于所述参考缓存容量,则根据第一预设数值和所述调整规则,循环对所述参考索引值进行调整,直至调整后的参考索引值对应的缓存容量小于所述第一数据量;根据所述调整规则,确定与所述调整后的参考索引值相邻的上一轮调整后的参考索引值,并将所述上一轮调整后的参考索引值确定为所述第一索引值。
[0090]
可选的,所述处理器13,还用于若所述比较结果为所述第一数据量小于所述参考缓存容量,将所述参考索引值确定为所述第一索引值。
[0091]
可选的,所述处理器13,还用于按照缓存容量的大小,依次为所述缓存容量分配索引值;并将缓存容量和对应的索引值添加至所述预设缓存容量库中。
[0092]
可选的,所述处理器13,还用于将所述第一索引值和所述第一缓存容量作为所述参考索引值和所述参考缓存容量,以供下一次接收到消息数据时确定下一次分配的缓存容量。
[0093]
本技术实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于数据存储装置中,该计算机程序实现如上述的数据存储方法。
[0094]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0095]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的数据存储方法。
[0096]
以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1