本发明专利技术实施例公开了一种用于优化数据存储的方法。该方法包括:将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是键数据末尾的第一数量的位的数据,第一子键数据是键数据除了第二子键数据以外的其他位的数据;采用哈希算法根据包括第一子键数据在内的一部分或者全部的所述键数据对键数据进行分桶;将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。还公开了用于优化数据存储的装置。上述方案能够优化Redis数据库的存储性能以及对数据的处理能力。
A method and device for optimizing data storage
【技术实现步骤摘要】
一种用于优化数据存储的方法和装置
本专利技术涉及数据管理领域,尤指一种用于优化数据存储的方法和装置。
技术介绍
在互联网领域,Redis(Remotedictionaryserver,远程字典服务器)作为一款基于内存的非常高效的非关系型数据库,因其提供非常高效的数据读写操作,并且支持string、list、set、hash等复杂的数据结构,在业界得到广泛应用。正是因为Redis具有以上的优异性能,因此Redis的一个典型的应用是作为缓存服务器存储海量数据的内存数据库,因此有限的存储空间很难存储海量的数据,限制了在使用Redis作为内存数据库时对数据的存储以及对数据的处理。
技术实现思路
为了解决上述技术问题,本专利技术提供了一种用于优化数据存储的方法和装置,其能够优化Redis数据库的存储性能以及对数据的处理能力。为了达到本专利技术目的,本专利技术实施例提供了一种用于优化数据存储的方法,该方法包括:将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是键数据末尾的第一数量的位的数据,第一子键数据是键数据除了第二子键数据以外的其他位的数据;采用哈希算法根据包括第一子键数据在内的一部分或者全部的键数据对键数据进行分桶;将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。在一个可选的实施例中,在将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的步骤之前,该方法还包括:将待写入Redis的键值对的最大数据量设置为小于等于第二数值;将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的步骤包括:监测Redis中的未经压缩的键值对的数量;当Redis中的未经压缩的键值对的数量大于第二数值的时候,将待写入Redis的键值对中的键数据拆分为第一子键数据和第二子键数据。在一个可选的实施例中,哈希算法是:MD5算法、安全散列算法或者循环冗余校验算法。在一个可选的实施例中,第二子键数据是采用哈希算法进行变换的;将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中的步骤包括:将经变换的第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。为了达到上述目的,本专利技术实施例提供了一种用于优化数据存储的装置,该装置包括存储器和处理器;存储器用于存储计算机可读指令;处理器用于读取计算机可读指令,以执行如下操作:将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是键数据末尾的第一数量的位的数据,第一子键数据是键数据除了第二子键数据以外的其他位的数据;采用哈希算法根据包括第一子键数据在内的一部分或者全部的键数据对键数据进行分桶;将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。在一个可选的实施例中,处理器用于读取执行计算机可读指令,以执行如下操作:在将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的操作之前,将待写入Redis的键值对的最大数据量设置为小于等于第二数值;将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的操作包括:监测Redis中的未经压缩的键值对的数量;当Redis中的未经压缩的键值对的数量大于第二数值的时候,将待写入Redis的键值对中的键数据拆分为第一子键数据和第二子键数据。在一个可选的实施例中,哈希算法是:MD5算法、安全散列算法或者循环冗余校验算法。在一个可选的实施例中,第二子键数据是采用哈希算法进行变换的;将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中的操作包括:将经变换的第二子键数据以及键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。本申请的有益效果在于,通过将Redis的键值对中的键数据拆分成第一子间数据和第二子键数据,使得其中一部分的子键数据或者全部的键数据在分桶时作为存储的内容,另一部分的子键数据以及键值对中的值数据组成新的键值对,写入到散列表的哈希桶中,从而使得Redis在存储键值对的时候,需要提供的存储空间可以更小,因此Redis可以存储更多的键值对,增强了对数据的存储以及对数据的处理的能力。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本专利技术技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本专利技术的技术方案,并不构成对本专利技术技术方案的限制。图1为本专利技术实施例提供的用于优化数据存储的方法的流程图;图2为本专利技术实施例提供的用于优化数据存储的装置的框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。为了解决上述技术问题,本专利技术实施例提供了一种用于优化数据存储的方法,如图1所示,该方法包括步骤S101-步骤S105。步骤S101,将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是键数据末尾的第一数量的位的数据,第一子键数据是键数据除了第二子键数据以外的其他位的数据。以原始的键数据是“11553987”为例,第二子键数据是原始的键数据末尾的3位的数据,也就是说,第一数量是3,那么第二子键数据是“987”,第一子键数据是“11553”。步骤S103,采用哈希算法根据包括第一子键数据在内的一部分或者全部的键数据对键数据进行分桶。在此,哈希算法对一部分键数据或者全部的键数据进行分桶,如果是对一部分的键数据进行分桶的话,那么这一部分的键数据中包括第一子键数据。分桶的优点在于,可以通过哈希算法的计算,将一个文件的大量数据分成若干个部分,并且通过索引的方式可以查找到分布于内存中的数据。步骤S105,将第一子键数据作为已更新的键数据存储到Redis之中,将第二子键数据以及键值对中的值数据本文档来自技高网...
【技术保护点】
1.一种用于优化数据存储的方法,其特征在于,包括:/n将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是所述键数据末尾的第一数量的位的数据,第一子键数据是所述键数据除了所述第二子键数据以外的其他位的数据;/n采用哈希算法根据包括所述第一子键数据在内的一部分或者全部的所述键数据对所述键数据进行分桶;/n将所述第一子键数据作为已更新的键数据存储到Redis之中,将所述第二子键数据以及所述键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。/n
【技术特征摘要】
1.一种用于优化数据存储的方法,其特征在于,包括:
将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据;其中,第二子键数据是所述键数据末尾的第一数量的位的数据,第一子键数据是所述键数据除了所述第二子键数据以外的其他位的数据;
采用哈希算法根据包括所述第一子键数据在内的一部分或者全部的所述键数据对所述键数据进行分桶;
将所述第一子键数据作为已更新的键数据存储到Redis之中,将所述第二子键数据以及所述键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。
2.根据权利要求1所述的方法,其特征在于,在所述将待写入非关系型数据库Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的步骤之前,所述方法还包括:
将待写入所述Redis的键值对的最大数据量设置为小于等于第二数值;
所述将待写入所述Redis的键值对中的键数据拆分为第一子键数据和第二子键数据的步骤包括:
监测Redis中的未经压缩的键值对的数量;
当Redis中的未经压缩的键值对的数量大于第二数值的时候,将待写入Redis的键值对中的键数据拆分为第一子键数据和第二子键数据。
3.根据权利要求1所述的方法,其特征在于,所述哈希算法是:MD5算法、安全散列算法或者循环冗余校验算法。
4.根据权利要求1所述的方法,其特征在于,所述第二子键数据是采用哈希算法进行变换的;所述将所述第一子键数据作为已更新的键数据存储到Redis之中,将所述第二子键数据以及所述键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中的步骤包括:
将经变换的第二子键数据以及所述键值对中的值数据组成已更新的键值对,写入到散列表的哈希桶中。
5.一种用于优化数据存储的装置,其特征在于,包括存储器和处理器;
所述...
【专利技术属性】
技术研发人员:王伟亮,
申请(专利权)人:苏州浪潮智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。