发明内容
有鉴于此,本申请实施例提供了一种数据存储方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本申请实施例的第一方面,提供了一种数据存储方法,包括:
接收第一数据存储请求,根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据;
将所述待存储数据和所述初始存储数据进行对比,确定所述待存储数据中发生改变的目标存储数据;
根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;
将所述变化记录数据进行序列化处理后添加至目标存储资源中,其中,所述目标存储资源为序列化处理后的所述初始存储数据的存储位置。
可选地,所述接收第一数据存储请求之前,还包括:
接收第二数据存储请求,根据所述第二数据存储请求获取携带有存储资源标识的初始存储数据;
根据所述初始存储数据的存储资源标识确定所述初始存储数据对应的目标存储资源;
将所述初始存储数据进行序列化处理后存入所述目标存储资源中。
可选地,所述根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据,包括:
根据所述目标存储数据的数据类型确定所述目标存储数据相对于所述初始存储数据的地址偏移量;
将所述地址偏移量与所述目标存储数据进行组合生成所述目标存储数据的变化记录数据。
可选地,所述将所述地址偏移量与所述目标存储数据进行组合生成所述目标存储数据的变化记录数据,包括:
将所述地址偏移量作为键值,将所述目标存储数据作为数值;
将所述键值和所述数值进行组合,生成所述目标存储数据的变化记录数据。
可选地,所述将所述变化记录数据进行序列化处理后添加至目标存储资源中,包括:
根据所述初始存储数据确定目标存储资源;
将所述变化记录数据转换为二进制流,添加至所述目标存储资源中。
可选地,所述确定所述待存储数据中发生改变的目标存储数据之后,根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据之前,还包括:
获取所述待存储数据中相对于所述初始存储数据发生改变的目标存储数据;
确定所述目标存储数据的数据类型。
可选地,所述根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据,包括:
根据所述第一数据存储请求中携带的待存储数据的标识信息获取待存储数据;
通过所述待存储数据查找与所述待存储数据对应的初始存储数据;
根据查找结果获取与所述待存储数据对应的初始存储数据。
可选地,所述待存储数据和所述初始存储数据均携带有序列号;
所述通过所述待存储数据查找与所述待存储数据对应的初始存储数据,包括:
获取所述待存储数据的序列号;
根据所述序列号查找携带有所述序列号的初始存储数据。
根据本申请实施例的第二方面,提供了一种数据存储装置,包括:
第一接收模块,被配置为接收第一数据存储请求,根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据;
对比模块,被配置为将所述待存储数据和所述初始存储数据进行对比,确定所述待存储数据中发生改变的目标存储数据;
第一确定模块,被配置为根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;
第一存储模块,被配置为将所述变化记录数据进行序列化处理后添加至目标存储资源中,其中,所述目标存储资源为序列化处理后的所述初始存储数据的存储位置。
根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述数据存储方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述数据存储方法的步骤。
本申请实施例中,通过接收第一数据存储请求,获取待存储数据和初始存储数据,进一步对比所述待存储数据和所述初始存储数据,从而确定所述待存储数据中发生改变的目标存储数据;根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;将所述变化记录数据进行序列化处理,添加至中序列化处理后的所述初始存储数据的存储位置,即目标存储资源。如此,可以通过存入待存储数据中发生变化的目标存储数据,在不影响待存储数据有效性的情况下,减少了存入目标存储资源的数据量,提高了空间利用率。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明一个或多个实施例涉及的名词术语进行解释。
序列化:把数据对象转化为可传输的字节序列过程称为序列化。
键值:也称为key值,是windows中注册表中的概念。键值位于注册表结构链末端,和文件系统的文件类似,包含当前计算机及应用程序执行时使用的实际配置信息和数据。
Key-value:是一种以键值对存储数据的一种结构,类似Java中的map。每个键都会对应一个唯一的值。
偏移量:把存储单元的实际地址与其所在段的段地址之间的距离称为段内偏移,也成为“有效地址或偏移量”。
在本申请中,提供了一种数据存储方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本申请一实施例提供的一种数据存储方法的流程图,具体包括以下步骤:
步骤102:接收第一数据存储请求,根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据。
具体的,所述第一数据存储请求是指根据用户需要对所述初始存储数据的部分内容进行修改,并通过预设操作进行保存时生成的请求,从而可以基于所述第一数据存储请求实现后续的数据存储过程;所述待存储数据是指用户对初始存储数据的部分内容进行修改后生成的需要进行存储或保存的数据,例如对一张人物画像进行修改,将画像中人物的眼睛放大并保存时,修改后的人物画像相当于待存储数据;所述初始存储数据是指预先存储在内存中的数据,也即是用户所要修改对应的数据,例如上述修改之前的人物画像。
实际应用中,用户在终端设备上都可以对初始存储数据进行修改,修改可以是对初始存储数据中的某个数据进行修改,也可以是对初始存储数据中的某些数据进行修改。修改完成后,用户可以点击“保存”或者“存储”等同等类型的按键,从而触发数据存储指令,并生成第一数据存储请求。终端设备在接收到所述第一数据存储请求后,对所述第一数据存储请求进行解析,并根据解析结果获取用户修改后的待存储数据以及所述待存储数据对应的初始存储数据。
例如,用户通过手机对一个预先存储的视频A(初始存储数据)进行剪辑,所述视频时长为10秒,用户将所述视频第1秒内的视频内容进行裁剪,只剩下其余9秒的视频内容,裁剪完成后生成视频B(待存储数据)并点击保存。此时手机就会自动接收到一个数据存储请求,并对该数据存储请求进行解析,根据解析结果获取视频B和视频A,即获取待存储数据和待存储数据对应的初始存储数据。
本申请中,在接收第一数据存储请求后,根据所述第一数据存储请求确定并获取与所述第一数据存储请求对应的待存储数据,以及所述待存储数据对应的初始存储数据,为后续根据待存储数据和初始存储数据确定被修改的数据,即目标存储数据做好了准备工作,在一定程度上减少了数据处理的时间,提高了数据存储的效率。
本实施例的一个或多个实施方式中,根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据的具体实现过程可以如下:
根据所述第一数据存储请求中携带的待存储数据的标识信息获取待存储数据;
通过所述待存储数据查找与所述待存储数据对应的初始存储数据;
根据查找结果获取与所述待存储数据对应的初始存储数据。
具体的,所述待存储数据的标识信息是指表征待存储数据的信息,可以根据所述待存储数据的标识信息找到并获取待存储数据,所述待存储数据的标识信息可以是待存储数据的类型、名称等,本申请对此不做限定;所述查找是指根据所述待存储数据找到与所述待存储数据对应的初始存储数据。
实际应用中,第一数据存储请求中不仅包含有存储指令,使终端设备响应用户存储数据的指示,还包含有用户想要存储的数据的标识信息,即待存储数据的标识信息。在接收到第一数据存储请求的基础上,对所述第一数据存储请求中待存储数据的标识信息进行解析,并根据该解析结果去获取与所述标识信息对应的待存储数据。进一步地,根据获取到的待存储数据去查找对应的初始存储数据,并获取查找到的初始存储数据。
例如,第一数据存储请求中携带的待存储数据的标识信息为“小明的信息”,即可以根据“小明的信息”这个标识信息获取到“姓名:小明;性别:男;身高:170厘米;体重:65千克”这些数据,即待存储数据。之后根据待存储数据“姓名:小明;性别:男;身高:170厘米;体重:65千克”查找并获取到初始存储数据“姓名:小明;性别:男;身高:175厘米;体重:65千克”。
本申请中,可以根据第一数据存储请求中待存储数据的标识信息去获取对应的待存储数据,在此基础上进一步获取对应的初始存储数据,避免了将待存储数据直接依附在第一数据存储请求中,极大地降低了对第一数据存储请求解析时终端设备的运算压力,而且加快了数据处理速度,一定程度上提高了整个数据存储的速度,提高用户体验性。
本实施例的一个或多个实施方式中,所述接收第一数据存储请求之前,还需要由用户对所述初始存储数据进行存储,后续才能基于初始存储数据对待存储数据进行处理,具体实现过程可以如下:
接收第二数据存储请求,根据所述第二数据存储请求获取携带有存储资源标识的初始存储数据;
根据所述初始存储数据的存储资源标识确定所述初始存储数据对应的目标存储资源;
将所述初始存储数据进行序列化处理后存入所述目标存储资源中。
具体的,所述第二数据存储请求是指用户在终端设备提交第一次存储数据时,通过预设操作进行保存时生成的请求,例如通过手机摄像头拍摄一张风景照并存储在手机时发出的照片存储请求;所述存储资源标识是指用户指定的或者用户未指定时默认的初始存储数据的存储位置的标识,可以根据所述存储资源标识确定所述初始存储数据的存储位置,即目标存储资源,所述存储资源标识可以是地址,也可以是名称,例如“硬盘A”、“C:\Download”等;所述目标存储资源即所述初始存储数据的存储位置;所述序列化是指将存储数据转换为二进制流的过程。
实际应用中,用户对初始存储数据修改形成待存储数据的前提为终端设备中存储有初始存储数据,也即用户需要在终端设备中预先存储初始存储数据。用户根据需要将一些初始存储数据进行存储并指定存储位置,或者默认系统给出的存储位置,点击保存按键之后,从而触发数据存储指令,并生成第二数据存储请求。在接收到第二数据存储请求的基础上,终端设备将根据第二数据存储请求去获取与所述第二数据存储请求对应的数据,即初始存储数据。需要说明的是,所述初始存储数据中携带有存储资源标识,当用户指定初始存储数据的存储位置时,所述存储资源标识指向用户指定的存储位置;当用户未指定初始存储数据的存储位置时,所述存储资源标识指向系统默认的存储位置。在此基础上,通过所述存储资源标识确定所述存储数据对应的目标存储资源,为了在不损坏数据的完整性和可读性的基础上提高存储空间即目标存储资源的利用率,将所述初始存储数据进行序列化处理,并将序列化处理后的初始存储数据存入所述目标存储资源中。
例如,用户通过浏览器在网页上下载一个文档,在点击下载时,页面会弹出一个界面,显示有文件名、文件类型、存储位置等类似的选择框或者输入框,以及保存和取消的按键,其中所述存储位置中已显示默认存储位置标识即存储资源标识。用户可以在存储位置中填写指定的存储位置标识以替换默认存储位置标识,也可以保留默认存储位置标识,之后点击保存按键,终端设备将接收到针对于所述文档的存储请求,即第二存储请求。根据所述第二存储请求去获取所述文档,其中所述文档携带有指定存储位置标识或者默认存储位置标识,再根据所述指定存储位置标识或者所述默认存储位置标识确定目标存储资源。对所述文档进行序列化处理后存入所述目标存储资源中。
实际应用中,所述待存储数据和所述初始存储数据均携带有序列号,进一步地,所述通过所述待存储数据查找与所述待存储数据对应的初始存储数据的具体实现过程可以为:
获取所述待存储数据的序列号;
根据所述序列号查找携带有所述序列号的初始存储数据。
具体的,序列号是指标识待存储数据或者初始存储数据的专属号码,如ID,可以是数据、字母、符号中的一种,也可以是数据、字母、符号中的几种组合。对于互相对应的初始存储数据和待存储数据来说,两者的序列号也是相同,因此,在获取到待存储数据的基础上,可以根据待存储数据的序列号来查找对应的初始存储数据,即将待存储数据的序列号与所有的初始存储数据的序列号进行对比。若查找到序列号与待存储数据的序列号一样的初始存储数据,则获取该初始存储数据;若查找不到,则说明所述待存储数据也为初始存储数据,按照初始存储数据的存储方式进行存储即可。如此,可以精确的找到与待存储数据对应的初始存储数据,有利于提高查找效率,一定程度上提高了待存储数据的存储速度。
例如,在游戏中,对于某一游戏角色的属性进行修改,修改后的属性数据即为待存储数据,其中,所述待存储数据中携带有该游戏角色的ID,这时,可以将待存储数据的ID与已经存储的所有初始存储数据进行对比,若找到一个初始存储数据的ID与待存储数据的ID完全一样,则这个初始存储数据即为与所述待存储数据对应的初始存储数据。
本申请中,可以根据第二数据存储请求,获取所述初始存储数据并确定目标存储资源,将所述初始存储数据序列化处理后存入目标存储资源中,不仅提高了目标存储资源的空间利用率,还为后续基于所述初始存储数据对待存储数据进行处理做好了准备基础。
步骤104:将所述待存储数据和所述初始存储数据进行对比,确定所述待存储数据中发生改变的目标存储数据。
在获取到待存储数据和初始存储数据的基础上,将其进行对比,从而确定用户改动、修改的数据,即目标存储数据。具体的,所述对比是指将所述待存储数据和所述初始存储数据放在一起进行比较,有利于快速确定所述待存储数据与所述初始存储数据之间不同的数据;所述目标存储数据是指所述待存储数据相对于所述初始存储数据进行修改或者变化的数据,即上述所述待存储数据与所述初始存储数据之间不同的数据,也即最终进行存储的数据。
实际应用中,在对初始存储数据进行修改后生成的待存储数据中,包含两部分:发生修改的数据和未修改的数据。为了减少存储空间的浪费,即目标存储资源的浪费,对于未修改的数据无需进行存储,只需将发生修改的数据进行存储,而在此过程中,则需要确定发生修改的数据,即需要确定待存储数据中相对于所述初始存储数据中发生修改的目标存储数据。
需要说明的是,在确定待存储数据中相对于所述初始存储数据中发生修改的目标存储数据之后,还需要获取所述待存储数据中相对于所述初始存储数据发生改变的目标存储数据,确定所述目标存储数据的数据类型。
具体的,在获取到所述待存储数据与所述初始存储数据的基础上,将所述待存储数据与所述初始存储数据进行对比,这样可以找到所述待存储数据中相对于所述初始存储数据的所有的发生修改或者变化的数据,避免遗漏,进一步地,提取出所述待存储数据中所有的发生修改或者变化的目标存储数据。此外,还需要判断所述目标存储数据的类型,为后续基于所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据做好准备。需要说明的是,此处所说的初始存储数据是指内存中展示的未经序列化处理的初始存储数据,而不是目标存储资源中(硬盘中)序列化之后的初始存储数据。
例如,待存储数据A为“姓名:小明;性别:男;身高:170厘米;体重:65千克”,初始存储数据B为“姓名:小明;性别:男;身高:175厘米;体重:68千克”,将待存储数据A与初始存储数据B中的数据逐一进行对比,从而确定待存储数据A中“身高:170厘米;体重:65千克”与初始存储数据B中“身高:175厘米;体重:68千克”不同,提取出待存储数据A中的“身高:170厘米;体重:65千克”,即目标存储数据。之后,对目标存储数据的类型进行判断。
本申请,通过将所述待存储数据和所述初始存储数据进行对比,从而确定了需要进行存储的目标存储数据,简化了确认目标存储数据的复杂流程,易于实现,降低了对终端设备计算能力的要求。
步骤106:根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据。
在确定所述待存储数据中发生改变的目标存储数据的基础上,为了使目标存储数据在存储之后可以被识别、读取且有效,需要根据目标存储数据确定变化记录数据。具体的,所述数据类型是指所述目标存储数据在内存中展现时的数据类型,所述数据类型包括byte、short、int、long、float、double、boolean、char八种数据类型;所述变化记录数据是指将目标存储数据按照Key-value的结构进行整理后的数据。
实际应用中,由于目标存储数据为待存储数据中相对于初始存储数据发生变化的数据,而不是待存储数据中的所有数据,为了使目标存储数据在存储之后可以被识别、读取且有效,需要根据目标存储数据的数据类型对所述目标存储数据进行整理,形成有效且可识别的变化记录数据,具体实现过程可以如下:
根据所述目标存储数据的数据类型确定所述目标存储数据相对于所述初始存储数据的地址偏移量;
将所述地址偏移量与所述目标存储数据进行组合生成所述目标存储数据的变化记录数据。
具体的,所述地址偏移量是指目标存储数据相对于初始存储数据的首地址的偏移量;所述组合是指将所述地址偏移量和所述目标存储数据按照Key-value的结构进行组合;所述变化记录数据是指将所述地址偏移量和所述目标存储数据按照Key-value的结构进行组合生成的数据。
实际应用中,将目标存储数据进行存储之前,需要对数据进行整理。首先需要确定所述目标存储数据的数据类型,如int型或者double型。再根据所述目标存储数据的数据类型和所述目标存储数据相对于所述初始存储数据的位置确定所述目标存储数据相对于所述初始存储数据的地址偏移量,如目标存储数据为double型,目标存储数据相对于所述初始存储数据的位置为3,即所述目标存储数据与初始存储数据中的第三个数据相对应,由于每个double型为8个字节,所述目标存储数据相对于初始存储数据的地址偏移量为8*(3-1)=16。在此基础上,将所述地址偏移量作为键值,将所述目标存储数据作为数值,将所述键值和所述数值进行组合,生成所述目标存储数据的变化记录数据。
示例的,表1为目标存储数据与初始存储数据的对应关系。根据表1,目标存储数据为“5”,对应于“int D”,初始存储数据为“1;2;3;4”,分别对应于“int A;int B;int C;intD”。由于int型数据对应4个字节,在基础上计算目标存储数据为“5”相对于初始存储数据的地址偏移量,即相对于数据“1”的地址偏移量,计算过程为:4*(4-1)=12,即地址偏移量为“12”,将“12”作为键值,即key值,将“5”作为数值,即Value值,组合成“12,5”,即所述目标存储数据的变化记录数据。
表1目标存储数据与初始存储数据的对应关系
本申请中,通过目标存储数据的数据类型确定所述目标存储数据的变化记录数据,不仅减少了存入目标存储资源的数据量,而且还有效地保证了目标存储数据存入目标存储资源后的可识别性和有效性。
步骤108:将所述变化记录数据进行序列化处理后添加至目标存储资源中,其中,所述目标存储资源为序列化处理后的所述初始存储数据的存储位置。
在确定目标存储数据的变化记录数据的基础上,需要将变化记录数据进行序列化处理,再进行存储。具体的,所述目标存储资源为所述变化记录数据最终所要存储的地方,也即存储序列化的初始存储数据的地方;所述添加是指将变化记录数据存储至目标存储资源中的过程。
实际应用中,在确定根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据的基础上,需要对所述变化记录数据进行序列化处理,有利于减小目标存储数据的空间占用量,之后将序列化处理后的数据添加至存有序列化处理后的初始存储数据的目标存储资源中。将变化记录数据序列化处理后再进行存储,有利于提高目标存储资源的空间利用率。
本实施例的一个或多个实施方式中,所述将所述变化记录数据进行序列化处理后添加至目标存储资源中,具体实现过程可以如下:
根据所述初始存储数据确定目标存储资源;
将所述变化记录数据转换为二进制流,添加至所述目标存储资源中。
具体的,所述二进制流是指流动的二进制数字序列,若二进制流中有字符,则用一个字节的二进制ASCII码表示,若二进制流中有数字,则用一个字节的二进制数表示。
实际应用中,可以根据初始存储数据确定与之对应的序列化处理后的初始存储数据,从而确定存储有序列化处理后的初始存储数据的目标存储资源。在此基础上,将所述变化记录数据进行序列化处理,即转换为二进制流,并存储至目标存储资源中,有利节省空间,而且在读取时可以提高读取速度和效率。
例如,目标存储数据的变化记录数据为“12,5”,将其转换为二进制流后为“00010010,00000101”,在根据所述初始存储数据确定目标存储资源的基础上,将“00000110,00000101”存入目标存储资源中。
本申请实施例提供的数据存储方法,通过接收第一数据存储请求,获取待存储数据和初始存储数据,进一步对比所述待存储数据和所述初始存储数据,从而确定所述待存储数据中发生改变的目标存储数据;根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;将所述变化记录数据进行序列化处理,添加至序列化处理后的所述初始存储数据的存储位置,即目标存储资源。如此,可以通过存入待存储数据中发生变化的目标存储数据,在不影响待存储数据有效性的情况下,减少了存入目标存储资源的数据量,提高了空间利用率。
下述结合附图2,以本申请提供的数据存储方法在视频剪辑中的应用为例,对所述数据存储方法进行进一步说明。其中,图2示出了本申请一实施例提供的一种应用于视频剪辑的数据存储方法的处理流程图,具体包括以下步骤:
步骤202:接收初始视频数据存储请求,根据所述初始视频数据存储请求获取携带有存储资源标识的初始视频存储数据。
用户将待剪辑的初始视频保存时,可以指定存储初始视频的存储位置,也可以使用默认的存储位置。在用户点击保存按键之后,本地接收到初始视频的存储请求,即初始视频数据存储请求。之后再根据所述初始视频数据存储请求获取携带有存储资源标识的初始视频存储数据,所述存储资源标识指向用户指定的存储位置或者默认的存储位置。
步骤204:根据所述初始视频存储数据的存储资源标识确定所述初始视频存储数据对应的目标存储资源。
由于所述存储资源标识指向用户指定的存储位置或者默认的存储位置,即可以根据所述存储资源标识确定所述初始视频存储数据的目标存储资源。在用户指定初始视频的存储位置时,所述目标存储资源为用户指定初始视频的存储位置;在用户未指定初始视频的存储位置时,所述目标存储资源为默认的存储位置。
步骤206:将所述初始视频存储数据进行序列化处理后存入所述目标存储资源中。
响应于初始视频数据存储请求,先将所述初始视频存储数据进行序列化处理,再将处理后的初始视频存储数据存储至上述目标存储资源中。需要说明的是,对初始视频存储数据进行序列化处理是为了提高目标存储资源的空间利用率。
步骤208:接收剪辑视频数据存储请求,根据所述剪辑视频数据存储请求获取剪辑视频存储数据和所述剪辑视频存储数据对应的初始视频存储数据。
所述剪辑视频是指用户对初始视频进行裁剪、拆分、添加文本、更换滤镜、修改播放速度等剪辑操作之后生成的视频。在对初始视频进行剪辑之后,达到用户想要的效果时,用户会点击保存按键,此时本地接收到剪辑视频数据存储请求,并根据所述剪辑视频数据存储请求去获取剪辑视频存储数据和初始视频存储数据。
步骤210:将所述剪辑视频存储数据和所述初始视频存储数据进行对比,确定所述剪辑视频存储数据中发生改变的目标视频存储数据。
为了避免空间浪费,只需将剪辑视频存储数据相对于所述初始视频存储数据发生变化的数据进行存储,即目标视频存储数据。可以通过将所述剪辑视频存储数据和所述初始视频存储数据进行逐一对比,从而进一步确定所述剪辑视频存储数据中发生改变的目标视频存储数据。
步骤212:根据所述目标视频存储数据的数据类型确定所述目标视频存储数据的变化记录数据。
由于目标视频存储数据不是一个视频的完整数据,直接将目标视频存储数据存入会导致数据无效或者不识别,因此需要将目标视频存储数据转换为变化记录数据。
步骤214:将所述变化记录数据进行序列化处理后添加至目标存储资源中,其中,所述目标存储资源为序列化处理后的所述初始视频存储数据的存储位置。
为了与目标存储资源中的序列化处理后的初始视频存储数据保持一致,对所述变化记录数据也进行序列化处理,之后存入目标存储资源中。
本申请实施例提供的数据存储方法,通过接收初始视频数据存储请求,并获取初始视频存储数据,进一步根据初始视频存储数据的存储资源标识确定对应的目标存储资源,然后将初始视频存储数据进行序列化处理后存入所述目标存储资源中。之后接收到剪辑视频数据存储请求时,获取剪辑视频存储数据和所述剪辑视频存储数据对应的初始视频存储数据,并对比剪辑视频存储数据和初始视频存储数据,从而确定剪辑存储数据中发生改变的目标视频存储数据;在此基础上根据所述目标视频存储数据的数据类型获取变化记录数据;将所述变化记录数据进行序列化处理,并添加至序列化处理后的所述初始视频存储数据的存储位置,即目标存储资源。如此,可以通过存入剪辑视频存储数据中发生变化的目标视频存储数据,在不影响剪辑视频存储数据有效性的情况下,减少了存入目标存储资源的数据量,提高了空间利用率。
与上述方法实施例相对应,本申请还提供了数据存储装置实施例,图3示出了本申请一个实施例的数据存储装置的结构示意图。如图3所示,该装置300包括:
第一接收模块302,被配置为接收第一数据存储请求,根据所述第一数据存储请求获取待存储数据和所述待存储数据对应的初始存储数据;
对比模块304,被配置为将所述待存储数据和所述初始存储数据进行对比,确定所述待存储数据中发生改变的目标存储数据;
第一确定模块306,被配置为根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;
第一存储模块308,被配置为将所述变化记录数据进行序列化处理后添加至目标存储资源中,其中,所述目标存储资源为序列化处理后的所述初始存储数据的存储位置。
在本实施例的一个或多个实施方式中,所述装置还包括:
第二接收模块,被配置为接收第二数据存储请求,根据所述第二数据存储请求获取携带有存储资源标识的初始存储数据;
第二确定模块,被配置为根据所述初始存储数据的存储资源标识确定所述初始存储数据对应的目标存储资源;
第二存储模块,被配置为将所述初始存储数据进行序列化处理后存入所述目标存储资源中。
在本实施例的一个或多个实施方式中,所述第一确定模块306,还被配置为:
根据所述目标存储数据的数据类型确定所述目标存储数据相对于所述初始存储数据的地址偏移量;
将所述地址偏移量与所述目标存储数据进行组合生成所述目标存储数据的变化记录数据。
在本实施例的一个或多个实施方式中,所述第一确定模块306,还被配置为:
将所述地址偏移量作为键值,将所述目标存储数据作为数值;
将所述键值和所述数值进行组合,生成所述目标存储数据的变化记录数据。
在本实施例的一个或多个实施方式中,第一存储模块308,还被配置为:
根据所述初始存储数据确定目标存储资源;
将所述变化记录数据转换为二进制流,添加至所述目标存储资源中。
在本实施例的一个或多个实施方式中,对比模块304,还被配置为:
获取所述待存储数据中相对于所述初始存储数据发生改变的目标存储数据;
确定所述目标存储数据的数据类型。
在本实施例的一个或多个实施方式中,第一接收模块302,还被配置为:
根据所述第一数据存储请求中携带的待存储数据的标识信息获取待存储数据;
通过所述待存储数据查找与所述待存储数据对应的初始存储数据;
根据查找结果获取与所述待存储数据对应的初始存储数据。
在本实施例的一个或多个实施方式中,所述待存储数据和所述初始存储数据均携带有序列号;
所述第一接收模块302,还被配置为:
获取所述待存储数据的序列号;
根据所述序列号查找携带有所述序列号的初始存储数据。
本申请实施例提供的数据存储装置,通过接收第一数据存储请求,获取待存储数据和初始存储数据,进一步对比将所述待存储数据和所述初始存储数据,从而确定所述待存储数据中发生改变的目标存储数据;根据所述目标存储数据的数据类型确定所述目标存储数据的变化记录数据;将所述变化记录数据进行序列化处理,添加至中序列化处理后的所述初始存储数据的存储位置,即目标存储资源。如此,可以通过存入待存储数据中发生变化的目标存储数据,在不影响待存储数据有效性的情况下,减少了存入目标存储资源的数据量,提高了空间利用率。
上述为本实施例的一种数据存储装置的示意性方案。需要说明的是,该数据存储装置的技术方案与上述的数据存储方法的技术方案属于同一构思,数据存储装置的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
图4示出了根据本说明书一个实施例提供的一种计算设备400的结构框图。该计算设备400的部件包括但不限于存储器410和处理器420。处理器420与存储器410通过总线430相连接,数据库450用于保存数据。
计算设备400还包括接入设备440,接入设备440使得计算设备400能够经由一个或多个网络460通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备440可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备400的上述部件以及图4中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图4所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备400可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备400还可以是移动式或静止式的服务器。
其中,处理器420执行所述计算机指令时实现所述的数据存储方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据存储方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述数据存储方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据存储方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据存储方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。