The invention discloses a data storage method and apparatus, the method includes: acquiring data file by the server, and the data file is split into at least two sub documents, the memory capacity of each sub file data is not greater than the server, after the split of each sub file are processed out of order that will be out of order processing after each file is stored in the database. By this method, even if out of order processing includes random code data file over memory capacity, data file can also be split, and the split of the sub file is out of order, finally stored in the database.
【技术实现步骤摘要】
一种数据存储方法及装置
本申请涉及计算机
,尤其涉及一种数据存储方法及装置。
技术介绍
随着网络技术的不断发展,数据的安全性已经越来越被人们所重视,为了保证存储的数据的安全性,通常可将需要存储到数据库中的数据进行乱序存储。例如,为了保证用来校验登录用户的验证码,不被除该登录用户以外的人获知,因此,可采用随机码作为验证码,在现有技术中,生成随机码的方式大致分为两种方式。第一种生成方式为:使用随机码生成器直接生成随机码。第二种生成方式为:预先随机生成随机码,并将这些随机码在内存中进行乱序处理,将乱序处理后的各随机码存储到数据库中,后续,在需要使用验证码时,直接从数据库按随机码的存储顺序,取出随机码。即,上述第二种生成方式就是基于乱序存储的生成方式。具体的,在第二种方式中,对预先生成的随机码进行乱序处理时,通常会将预先生成的各随机码添加到一个数据文件中,再将包含各随机码的数据文件在内存中进行乱序处理。但是,在实际应用中,针对第二种生成方式,由于内存的空间是有限的,不可能无限的扩大,当要进行乱序处理的上述数据文件的数据量超过内存空间容量时,则无法对该数据文件进行乱序处理。
技术实现思路
本申请实施例提供一种数据存储方法及装置,用以解决现有技术中当要进行乱序处理的包含随机码的数据文件的数据量超过内存空间容量时,则无法对该数据文件进行乱序处理的问题。本申请实施例提供的一种数据存储方法,所述方法包括:服务器获取数据文件;将所述数据文件拆分成至少两个子文件,其中,每个子文件的数据量均不大于所述服务器的内存空间容量;对拆分后的每个子文件分别进行乱序处理;将乱序处理后的每个 ...
【技术保护点】
一种数据存储方法,其特征在于,所述方法包括:服务器获取数据文件;将所述数据文件拆分成至少两个子文件,其中,每个子文件的数据量均不大于所述服务器的内存空间容量;对拆分后的每个子文件分别进行乱序处理;将乱序处理后的每个子文件存储到数据库中。
【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:服务器获取数据文件;将所述数据文件拆分成至少两个子文件,其中,每个子文件的数据量均不大于所述服务器的内存空间容量;对拆分后的每个子文件分别进行乱序处理;将乱序处理后的每个子文件存储到数据库中。2.如权利要求1所述的方法,其特征在于,将所述数据文件拆分成至少两个子文件,具体包括:将所述数据文件拆分成包含的数据量相同的至少两个子文件。3.如权利要求1所述的方法,其特征在于,对拆分后的每个子文件分别进行乱序处理,具体包括:针对每个子文件,将该子文件中的数据进行分组;将分组后的数据组进行排序;按排序先后顺序,依次针对每个数据组,从该数据组后的各数据组中随机抽取出一个数据组,作为调换组,并将调换组与该数据组在该子文件中的排序位置进行互换。4.如权利要求1所述的方法,其特征在于,将乱序处理后的每个子文件存储到数据库中,具体包括:将乱序处理后的各子文件合并成乱序文件;按所述乱序文件中各数据的排序先后顺序,读取所述乱序文件中的数据;每当读取的数据的数据量达到预设的数据量时,通过预先建立的线程池中处于空闲状态的线程,将所述读取的数据写入到数据库中,并继续读取所述乱序文件中的数据,直至将所述乱序文件中的所有数据写入到数据库中为止。5.如权利要求4所述的方法,其特征在于,将乱序处理后的各子文件合并成乱序文件,具体包括:从乱序处理后的每个子文件中,随机确定出任意一个子文件,并提取出随机确定出的该子文件中未添加到乱序文件、且排序位置最前的数据,将提取出的数据添加到乱序文件中,直至将每个子文件中的所有数据添加到乱序文件中为止。6.如权利要求4或5任一所述的方法,其特征在于,所述方法还包括:针对每个线程,监测该线程是否成功将数据写入到数据库中;当监测到该线程未成功将数据写入到数据库中时,记录当前读取乱序文件中的数据的排序位置,作为当前位置;根据当前线程池中处于运行状态的线程的数量以及所述预设的数据量,确定出待恢复的数据的数据量;根据所述待恢复的数据的数据量以及所述当前位置,确定当前位置与所述待恢复的数据的数据量的差值,作为恢复位置;在所述乱序文件中,按所述乱序文件中各数据的排序先后顺序,从排序位置为所述恢复位置处,重新开始读取数据,并通过所述线程池中处于空闲状态的线程,将读取的数据写入到数据库中。7.如权利要求4~6任一所述的方法,其特征在于,在将所述乱序文件中的所有数据写入到数据库中之后,所述方法还包括:对所述乱序处理的各子文件以及所述乱序文件进行清除。8...
【专利技术属性】
技术研发人员:姚陶钧,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。