CN112732196B - 规则数据存储方法、装置及存储介质 - Google Patents
规则数据存储方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112732196B CN112732196B CN202110044335.3A CN202110044335A CN112732196B CN 112732196 B CN112732196 B CN 112732196B CN 202110044335 A CN202110044335 A CN 202110044335A CN 112732196 B CN112732196 B CN 112732196B
- Authority
- CN
- China
- Prior art keywords
- value
- storage unit
- preset
- modulus
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
Abstract
本发明提供一种规则数据存储方法、装置及存储介质,包括:第一获取模块,用于接收源数据,源数据包括特征数据和非特征数字,获取与特征数据对应的编码数字;第二获取模块,用于基于编码数字和非特征数字获取满足预设离散条件的第一编码数字和第一非特征数字;取模模块,用于对第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;生成模块,用于将所述商值、编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种规则数据存储方法、装置及存储介质。
背景技术
内存具有非常高的读写性能,在有高并发、高性能需求的业务场景中,通常使用内存做为应用服务的热点数据缓存,即能减轻下游应用或数据库的处理压力,又能提高应用服务的吞吐量和响应能力。
在现有技术的本地缓存过程中,为了避免资源的浪费,应用服务通常都部署在虚拟机或容器内,但是本地内存可用空间有限,通常可用内存只有几G,使得本地内存的缓存量较少。
并且,本地缓存当前所采取的方案都需要基于编程语言提供的数据结构或第三方工具实现,由于不同的数据可能会有不同的语言方式,在数据保存时会将内存使用量放大很多,使得本地缓存的有效存储效率降低。
在本地内存的存储量较少、存储效率较低的情况下,会使得本地缓存后续的数据调取、处理性能降低。
发明内容
本发明实施例提供一种规则数据存储方法、装置及存储介质,具有存储量高且处理速度、效率高、性能高等优点。
本发明实施例的第一方面,提供一种规则数据存储方法,包括:
获取与接收的源数据对应的编码数字;
基于所述编码数字获取满足预设离散条件的第一编码数字;
对所述第一编码数字进行取模运算得到取模值和商值,所述取模值和商值分别为一个或多个;
将所述商值和所述编码数字中不满足预设离散条件的第一非特征数字基于预设排列顺序生成保存数字;
获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元。
可选地,在第一方面的一种可能实现方式中,获取与接收的源数据对应的编码数字包括:
判断能否获取源数据的键;
若能,则基于键值对获取与所述源数据的键对应的值,其中所述键值对中的键和值预先对应设置;
获取与所述值对应的编码数字,所述值与所述编码数字预先对应设置;
若不能,则基于预设规则生成与所述获取不到键的源数据对应的编码数字;
以接收到的源数据为键、以生成编码数字为值在键值对中对应设置。
可选地,在第一方面的一种可能实现方式中,获取与所述取模值对应的存储单元包括:
获取所述取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
可选地,在第一方面的一种可能实现方式中,所述存储单元包括多个子存储单元;
将所述保存数字存储于所述存储单元包括:
按序访问每一个子存储单元,当存在子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储;
当不存在子存储单元内存储的数据都与所述保存数字相同时,按序寻找没有存储数据的子存储单元对所述保存数字存储;
当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。
本发明实施例的第二方面,提供一种规则数据存储方法,包括:
接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字;
基于所述编码数字和非特征数字获取满足预设离散条件的第一编码数字和第一非特征数字;
对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;
将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;
获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置。
可选地,在第二方面的一种可能实现方式中,获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元包括:
获取所述多个取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
可选地,在第二方面的一种可能实现方式中,所述存储单元包括多个子存储单元;
将所述保存数字存储于所述存储单元包括:
按序访问每一个所述子存储单元,当存在一个所述子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储;
当不存在子存储单元内存储的数据都与所述保存数字相同时,按序寻找没有存储数据的子存储单元对所述保存数字存储;
当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。
本发明实施例的第三方面,提供一种规则数据存储装置,包括:
第一获取模块,用于获取与接收的源数据对应的编码数字;
第二获取模块,用于基于所述编码数字获取满足预设离散条件的第一编码数字;
取模模块,用于对所述第一编码数字进行取模运算得到取模值和商值,所述取模值和商值分别为一个或多个;
生成模块,用于将所述商值和所述编码数字中不满足预设离散条件的第一非特征数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元。
本发明实施例的第四方面,提供一种规则数据存储装置,包括:
第一获取模块,用于接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字;
第二获取模块,用于基于所述编码数字和非特征数字获取满足预设离散条件的第一编码数字和第一非特征数字;
取模模块,用于对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;
生成模块,用于将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置。
本发明提供的一种规则数据存储方法、装置及存储介质,对源数据进行处理,将源数据包括的全部或部分数据转换成相应、占用存储量较小的编码数字,对满足预设离散条件的编码数字或源数据中的非特征数字进行取模得到商值,对已经转换过一次生成的编码数字进行二次转换,将满足预设离散条件的编码数字以及源数据商值以及不满足预设离散条件的编码数字和非特征数字组成保存数字,并将保存数字进行保存,以上步骤实现对源数据的保存进行了压缩。并且,本发明在保障源数据可完整映射、可恢复的前提下,最大限度的节省存储资源。
本发明根据源数据缓存的数据量,预先在内存中申请连续的存储单元。实现只需要记录每个源数据的最高级的地址索引,就可以根据各个存储单元的字节数和目标存储单元的地址索引,推算出目标单元的存储地址,减少大量的数据的存储地址的记录。
并且,本发明根据满足离散条件的编码数字或非特征数字得到相应的取模值,根据取模值生成相应的地址索引以及对应的存储单元,将源数据位于相对应的存储单元的存储位置。通过以上方式,能够得到保存数字对应的存储单元,在源数据的保存、调取时候易于分析、计算,实现快速查询。
本发明提供多级存储的方式,其中最低级的存储单元分别包括了若干的子存储单元,通过以上方式能够达到以下的效果:
(1)不同的源数据经过取模计算后得到存储单元,可能大概率映射在相同单元而成为热点存储单元。如果存储地址只映射一个存储单元而不是包括的若干子存储单元,就会导致存储单元(存储子单元)内的数据会经常替换,进而导致缓存命中率过低。
(2)将最低级的存储单元对应一组子存储单元的时,再采取随机替换的策略,可以完全避免上述(1)中所说的热点存储单元(存储子单元)引发命中率过低的问题。
附图说明
图1为本发明实施例1的第一种实施方式的流程图;
图2为本发明实施例1的第二种实施方式的流程图;
图3为本发明实施例1的第三种实施方式的流程图;
图4为本发明实施例1的第四种实施方式的流程图;
图5为本发明实施例2的第一种实施方式的流程图;
图6为本发明实施例2的第二种实施方式的流程图;
图7为本发明实施例2的第三种实施方式的流程图;
图8为本发明的存储单元的结构示意图;
图9为本发明实施例2的第四种实施方式的流程图;
图10为本发明实施例3的第一种实施方式的结构图;
图11为本发明实施例4的第一种实施方式的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例1
本发明的实施例1公开了一种规则数据存储方法,如图1所示,包括:
步骤S110、获取与接收的源数据对应的编码数字。源数据可以是一些规则的号码数据,例如说一个大学的系号、一个地区的区号等等。例如说东南大学的物理系号为12070341,其中1207对应的是东南大学,0341对应的是物理系。其中,源数据与编码数字可以是预先对应设置。编码数字可以是若干的号码,其中每组号码具有与其相对应的含义。
在步骤S110中,主要是对源数据进行处理进而得到与其对应的编码数字,例如说全国有500所大学,那么通过三位数字就可以对全国所有大学分别进行编号,例如说编码数字101对应东南大学。东南大学的系包括可能有几十个,那么两位数字就可以对东南大学的所有系就能对应,所以可以存在编码数字01对应物理系0341。在上述的过程中,能够将7位数字的12070341对应的东南大学物理系转换成编码数字10101对应的东南大学物理系,实现了数据的减小。
步骤S120、基于所述编码数字获取满足预设离散条件的第一编码数字。其中预设离散条件可以是预先设置。例如说编码数字可能位数较多,则预设离散条件对应的数值位数就较多,例如说编码数字的位数较多为100000,则预设离散条件的位数就较多,可能为10000、1000等等。
其中,还可以选取编码数字重复率低于预设值的条件为预设离散条件,也可以是满足相对连续或随机的的条件为预设离散条件,以上满足预设离散条件的数字可以保障计算出的模值相对离散,避免取模后的结果,大量映射在相同的存储位置。
通过以上的方式,对所有编码数字进行筛选,获取满足预设离散条件的第一编码数字。
步骤S130、对所述第一编码数字进行取模运算得到取模值和商值,所述取模值和商值分别为一个或多个。在本实施例中,12070341的各个部分分别对应的编码数字为101以及01。此时预设离散条件为基于100这个数值进行取模运算。101可以基于100进行取模运算,01不能基于100进行取模运算,则此时满足预设离散条件的第一编码数字为101,不满足预设离散条件的编码数字为01。
例如说第一编码数字为101,对101以100为除数进行取模运算,得到的取模值为1、商值为1。因为满足预设离散条件的第一编码数字可能是一个或者多个,所以取模值和商值也存在一个或者多个的情况。
步骤S140、将所述商值和所述编码数字中不满足预设离散条件的第一非特征数字基于预设排列顺序生成保存数字。在源数据为12070341的例子中,满足预设离散条件的第一编码数字101的商值为1,不满足预设离散条件的编码数字为01。此时,预设排列顺序可以是将商值在前、不满足预设离散条件的编码数字在后进行排序生成保存数字,此时保存数字为101。预设排列顺序也可以是不满足预设离散条件的编码数字在前、商值在后等实施方式,在此不对预设排列顺序做限定。
通过步骤S110,将源数据转换为占用空间较小的编码数字,然后再通过步骤S130将满足预设离散条件的第一编码数字进行取模,得到商值,其中商值相较于编码数字的占用空间更小。通过以上方式,能够将一个占用空间较大的源数据依次经过两个处理步骤得到占用空间较小的保存数字。
步骤S150、获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元。其中,取模值与所述存储单元预先对应设置。存储单元可能包括多个,可以是按顺序排列,例如说存储单元1、存储单元2、存储单元N等等,并且每个存储单元具有与其相对应的值。例如说取模值为1,则其对应的存储单元为存储单元1。通过以上方式将编码数字存储至相对应的存储单元。
如图2所示,在步骤S110中,还包括:
步骤S1101、判断能否获取源数据的键。在本步骤中,源数据与键预先对应设置。其中源数据的键可以直接为源数据,也可以是源数据的部分数字为键。例如说源数据为12070341分别包括1207和0341,此时如果以源数据为键,则源数据1207的键为1207,源数据0341的键为0341。
步骤S1102、若能,则基于键值对获取与所述源数据的键对应的值,其中所述键值对中的键和值预先对应设置。其中键值对可以如表1所示,1207的键对应的值为101,0341的键对应的值为01。
键 | 值 | |
1 | 1207 | 101 |
2 | 341 | 01 |
N | A | C |
表1
步骤S1103、获取与所述值对应的编码数字,所述值与所述编码数字预先对应设置。其中编码数字的值可以直接为编码数字,例如说编码数字为101,则值为101。通过以上的步骤,基于键值对,获取与源数据对应到的编码数据。
步骤S1104、若不能,则基于预设规则生成与所述获取不到键的源数据对应的编码数字。在本步骤中,此时并没有将当前的源数据与键相对应。例如说,数据库中本身有300所大学的源数据对应的编码数字,但是今年加了一个中北大学、学校号是1208,数据库并没有对中北大学进行添加,此时会中北大学1208没有对应的编码数字。其中预设规则可以是按照编码数字进行依次排序与新的源数据对应。例如说编码数字当前的最后一个编码是101,则与新的源数据中北大学1208对应的新的编码为102。
步骤S1105、以接收到的源数据为键、以生成编码数字为值在键值对中对应设置。此时,接收的源数据1208为键,编码数字102为值在键值对中对应设置,此后再接收到中北大学1208时,重复步骤S1101至S1103即可获得与源数据1208对应编码数字102。
如图3所示,取模值包括多个。
在步骤S150中,包括:
S1501、获取所述多个取模值的数量以及每一个所述取模值的数值。例如说源数据分别对应的编码数字为101和1001,并且分别对101和1001基于100进行取模运算,此时的取模值的数量为2,且取模值的数值分别为1和10。
S1502、基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置。例如说取模值的数量为2,则生成2级的存储单元的索引为2级索引。
S1503、基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置。例如说一级地址的数值为1、二级地址的数值为10。此时,存储单元包括两个存储级别,一个级别是存储单元,另一个级别是子存储单元,每个存储单元分别包括多个子存储单元。
S1504、通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。此时,可以根据一级地址的数值为1和二级地址的数值为10确定存储单元1中的子存储单元10对保存数字进行存储。
其中存储单元包括多个子存储单元,如图4所示,在步骤S150中,还包括:
步骤S1505、按序访问每一个子存储单元,当存在子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储。通过以上方式,当存在任意一个子存储单元对保存数字存储时即不再进行存储,可以节省占用、缓存空间。
步骤S1506、当不存在子存储单元内存储的数据都与所述保存数字相同时,按序寻找没有存储数据的子存储单元对所述保存数字存储。当子存储单元内存储的数据都与保存数字不相同时,此时需要将保存数字位于一个子存储单元内进行保存,使得该保存数字能够被调取、获取。
步骤S1507、当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。此时,存储单元已经使用满额,每一个子存储单元都被占用,但是当前具有需要被保存的保存数字,所以随机删除一个子存储单元内的数据来保存当前的保存数字。此时,可以看做是在缓存中,删除一个先前缓存的保存数字来保存当前缓存的保存数字。以当前的保存数字为最优的优先级于子存储单元内进行保存。
实施例2
本发明的实施例还公开一种规则数据存储方法,如图5所示,包括:
S210、接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字。
在一种可能的实施方式中,源数据可以是一些非规则的号码数据等等。例如说源数据为一个特定的身份证号、学号、手机号、证件号、卡号、全局序号等等。例如说,甲的身份证号110101199003078515,其中号码110101为户籍地区,例如说海淀区,甲号码199003为出生年月,以上信息都是有规律可循的,都具有一定特征,所以110101以及199003为特征数据。而078515中的8515则是随机的产生的,所以078515是非特征数字。
在步骤S210中,主要是对特征数据进行处理进而得到与其对应的编码数字,例如说全国有6000个区县,那么通过四位数字就可以对全国6000个区县分别进行编号,例如说编码数字1011对应海淀区。例如说一个时间段为一百年,所有的年月加起来也只有1200个,则四位数即可进行穷举,199003编码为1021。则特征数据110101199003对应的编码数字即为10111021,通过8位数字的编码数字对12位数字的特征数据进行了表示。此时特征数据对应两个编码数字。
S220、基于所述编码数字和非特征数字获取满足预设离散条件的第一编码数字和第一非特征数字。其中预设离散条件可以是预先设置,例如说编码数字或非特征数字可能位数较多,则预设离散条件对应的数值位数就较多,例如说编码数字或非特征数字的位数较多为100000,则预设离散条件的位数就较多,可能为10000、1000等等。
其中,还可以选取编码数字及非特征数字重复率低于预设值的条件为预设离散条件,也可以是编码数字及非特征数字满足相对连续或随机的的条件为预设离散条件,以上满足预设离散条件的数字可以保障计算出的模值相对离散,避免取模后的结果大量映射在相同的存储位置。
S230、对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值,其中取模值和商值分别为一个或多个。例如说预设离散条件的取模值为100,第一编码数字及第一非特征数字中的1011、1021以及078515分别满足,此时分别对1011、1021以及078515进行取模运算,第一编码数字1011的取模值为11、商值为10,另一个第一编码数字1021的取模值为21商值为10,第一非特征数字078515的取模值为15、商值为785。此时具有三个取模值和三个商值。
S240、将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字。在本实施例中,所有的编码数字及非特征数字都满足预设离散条件,则将所有的满足条件的第一编码数字及第一非特征数字的商值基于预设排列顺序生成保存数字,其中预设排列顺序可以是商的数值的大小顺序排列,则三个分别为10、10、785的商值排序为1010785,此时生成的保存数字为1010785。
S250、获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置。存储单元可能包括多个,可以是按顺序排列,例如说存储单元1、存储单元2、存储单元N等等,并且每个存储单元具有与其相对应的值。例如说取模值为1,则其对应的存储单元为存储单元1。通过以上方式将编码数字存储至相对应的存储单元。
通过以上步骤,对源数据进行处理。并且在本实施例中,源数据不再是完全具有规律的数据。将源数据包括的全部或部分数据转换成相应、占用存储量较小的编码数字。并且,基于编码数字和非特征数字生成相应的取模值,将取模值进行结合为地址索引,基于取模值可以得到源数据位于相对应的存储单元的存储位置。通过以上方式,能够对不具有规律的源数据进行压缩,减少源数据存储时的占用空间,进而在存储和调取源数据时的处理速度、效率就会加快、提高。
如图6所示,在步骤S210中,还包括:
步骤S2101、判断能否获取源数据的键。在本步骤中,源数据与键预先对应设置。其中源数据的键可以直接为源数据,也可以是源数据的部分数字为键。例如说源数据为12070341分别包括1207和0341,此时如果以源数据为键,则源数据1207的键为1207,源数据0341的键为0341。
步骤S2102、若能,则基于键值对获取与所述源数据的键对应的值,其中所述键值对中的键和值预先对应设置。其中键值对可以如表1所示,1207的键对应的值为101,0341的键对应的值为01。
键 | 值 | |
1 | 1207 | 101 |
2 | 341 | 01 |
N | A | C |
表1
步骤S2103、获取与所述值对应的编码数字,所述值与所述编码数字预先对应设置。其中编码数字的值可以直接为编码数字,例如说编码数字为101,则值为101。通过以上的步骤,基于键值对,获取与源数据对应到的编码数据。
步骤S2104、若不能,则基于预设规则生成与所述获取不到键的源数据对应的编码数字。在本步骤中,此时并没有将当前的源数据与键相对应。例如说,数据库中本身有300所大学的源数据对应的编码数字,但是今年加了一个中北大学、学校号是1208,数据库并没有对中北大学进行添加,此时会中北大学1208没有对应的编码数字。其中预设规则可以是按照编码数字进行依次排序与新的源数据对应。例如说编码数字当前的最后一个编码是101,则与新的源数据中北大学1208对应的新的编码为102。
步骤S2105、以接收到的源数据为键、以生成编码数字为值在键值对中对应设置。此时,接收的源数据1208为键,编码数字102为值在键值对中对应设置,此后再接收到中北大学1208时,重复步骤S1101至S1103即可获得与源数据1208对应编码数字102。
如图7所示,在步骤S250中,包括:
S2501、获取所述多个取模值的数量以及每一个所述取模值的数值。例如说源数据分别对应的编码数字为1011和1021,非特征数字为078515,并且分别对1011、1021以及078515基于100进行取模运算,此时的取模值的数量为3,且取模值的数值分别为10、10以及785。
S2502、基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置。例如说取模值的数量为3,则生成3级的存储单元的索引为3级索引。
S2503、基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置。例如说一级地址的数值为10、二级地址的数值为10、三级地址的数值为785。此时,存储单元包括三个存储级别,分别包括段、组以及单元,如图8所示,其中段包括多个,组为段中的一个子集,组也包括多个,单元为组的一个子集。如果存储单元包括四个存储级别,还可以分别包括段、组、单元以及子单元。
S2504、通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。此时,可以根据一级地址的数值为10、二级地址的数值为10、三级地址的数值为785确定10段、10组的785存储单元对保存数字进行存储。
其中存储单元包括多个子存储单元,如图9所示,在步骤S250中,还包括:
步骤S2505、基于所述子存储单元的预设排列顺序,分别访问每一个所述子存储单元,当存在一个所述子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储。通过以上方式,当存在任意一个子存储单元对保存数字存储时即不再进行存储,可以节省占用、缓存空间。
步骤S2506、当每一个所述子存储单元内存储的数据都与所述保存数字不相同时,基于所述子存储单元的预设排列顺序寻找没有存储数据的子存储单元对所述保存数字存储。当子存储单元内存储的数据都与保存数字不相同时,此时需要将保存数字位于一个子存储单元内进行保存,使得该保存数字能够被调取、获取。
步骤S2507、当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。此时,存储单元已经使用满额,每一个子存储单元都被占用,但是当前具有需要被保存的保存数字,所以随机删除一个子存储单元内的数据来保存当前的保存数字。此时,可以看做是在缓存中,删除一个先前缓存的保存数字来保存当前缓存的保存数字。以当前的保存数字为最优的优先级于子存储单元内进行保存。
实施例3
本发明还公开一种规则数据存储装置,用于实施上述图1至图4所述方法的装置,如图10所示,包括:
第一获取模块,用于获取与接收的源数据对应的编码数字;
第二获取模块,用于基于所述编码数字获取满足预设离散条件的第一编码数字;
取模模块,用于对所述第一编码数字进行取模运算得到取模值和商值,所述取模值和商值分别为一个或多个;
生成模块,用于将所述商值和所述编码数字中不满足预设离散条件的第一非特征数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元。
实施例4
本发明还公开一种规则数据存储装置,用于实施上述图5至图8所述方法的装置,如图11所示,包括:
第一获取模块,用于接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字;
第二获取模块,用于基于所述编码数字和非特征数字获取满足预设离散条件的第一编码数字和第一非特征数字;
取模模块,用于对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;
生成模块,用于将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置。
本发明实施例还公开一种终端的硬件结构示意图,该终端包括:处理器、存储器和计算机程序;其中
存储器,用于存储所述计算机程序,该存储器还可以是闪存(flash)。所述计算机程序例如是实现上述方法的应用程序、功能模块等。
处理器,用于执行所述存储器存储的计算机程序,以实现上述方法中终端执行的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器既可以是独立的,也可以跟处理器集成在一起。
当所述存储器是独立于处理器之外的器件时,所述终端还可以包括:
总线,用于连接所述存储器和处理器。
本发明还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现上述的各种实施方式提供的方法。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种规则数据存储方法,其特征在于,包括:
获取与接收的源数据对应的编码数字;
对所有编码数字进行筛选,获取满足预设离散条件的第一编码数字;
对所述第一编码数字进行取模运算得到取模值和商值,所述取模值为一个或多个,所述商值为一个或多个;
将所述商值和所述编码数字中不满足预设离散条件的编码数字基于预设排列顺序生成保存数字;
获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元;
获取与所述取模值对应的存储单元包括:
获取所述取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
2.根据权利要求1所述的规则数据存储方法,其特征在于,
获取与接收的源数据对应的编码数字包括:
判断能否获取源数据的键;
若能,则基于键值对获取与所述源数据的键对应的值,其中所述键值对中的键和值预先对应设置;
获取与所述值对应的编码数字,所述值与所述编码数字预先对应设置;
若不能,则基于预设规则生成与所述获取不到键的源数据对应的编码数字;
以接收到的源数据为键、以生成编码数字为值在键值对中对应设置。
3.根据权利要求1所述的规则数据存储方法,其特征在于,
所述存储单元包括多个子存储单元;
将所述保存数字存储于所述存储单元包括:
按序访问每一个子存储单元,当存在子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储;
当不存在子存储单元内存储的数据都与所述保存数字相同时,按序寻找没有存储数据的子存储单元对所述保存数字存储;
当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。
4.一种规则数据存储方法,其特征在于,包括:
接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字;
基于所述编码数字获取满足预设离散条件的第一编码数字,基于所述非特征数字获取满足预设离散条件的第一非特征数字;
对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;
将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;
获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置;
获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元包括:
获取多个取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
5.根据权利要求4所述的规则数据存储方法,其特征在于,
所述存储单元包括多个子存储单元;
将所述保存数字存储于所述存储单元包括:
按序访问每一个所述子存储单元,当存在一个所述子存储单元内存储的数据与所述保存数字相同时,不再对所述保存数字存储;
当不存在子存储单元内存储的数据都与所述保存数字相同时,按序寻找没有存储数据的子存储单元对所述保存数字存储;
当每一个子存储单元都存储有数据且与保存数字不同时,随机删除任意一个子存储单元内的数据后对所述保存数字保存。
6.一种规则数据存储装置,其特征在于,包括:
第一获取模块,用于获取与接收的源数据对应的编码数字;
第二获取模块,用于对所有编码数字进行筛选,获取满足预设离散条件的第一编码数字;
取模模块,用于对所述第一编码数字进行取模运算得到取模值和商值,所述取模值为一个或多个,所述商值为一个或多个;
生成模块,用于将所述商值和所述编码数字中不满足预设离散条件的编码数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元;
所述第三获取模块,还用于获取所述取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
7.一种规则数据存储装置,其特征在于,包括:
第一获取模块,用于接收源数据,所述源数据包括特征数据和非特征数字,获取与所述特征数据对应的编码数字;
第二获取模块,用于基于所述编码数字获取满足预设离散条件的第一编码数字,基于所述非特征数字获取满足预设离散条件的第一非特征数字;
取模模块,用于对所述第一编码数字和第一非特征数字进行取模值运算分别得到取模值和商值;
生成模块,用于将所述商值、所述编码数字中不满足预设离散条件的第三编码数字、所述非特征数字中不满足预设离散条件的第四编码数字基于预设排列顺序生成保存数字;
第三获取模块,用于获取与所述取模值对应的存储单元,将所述保存数字存储于所述存储单元,其中,所述取模值与所述存储单元预先对应设置;
所述第三获取模块,还用于获取多个取模值的数量以及每一个所述取模值的数值;
基于所述取模值的数量生成存储单元的多级索引,其中所述多级索引的级数与所述取模值的数量预先对应设置;
基于所述取模值的数值生成每一级索引的地址,其中所述数值和所述地址预先对应设置;
通过所述多级索引以及每一级索引的地址确定存储单元对所述保存数字进行存储。
8.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现权利要求1至5中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044335.3A CN112732196B (zh) | 2021-01-13 | 2021-01-13 | 规则数据存储方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044335.3A CN112732196B (zh) | 2021-01-13 | 2021-01-13 | 规则数据存储方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732196A CN112732196A (zh) | 2021-04-30 |
CN112732196B true CN112732196B (zh) | 2023-04-28 |
Family
ID=75593275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110044335.3A Active CN112732196B (zh) | 2021-01-13 | 2021-01-13 | 规则数据存储方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732196B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187505A (ja) * | 1996-12-24 | 1998-07-21 | Toshiba Corp | 情報記憶システム及び同システムに適用するデータ配置方法 |
DE10021920C1 (de) * | 2000-05-05 | 2001-07-26 | Infineon Technologies Ag | Datenverarbeitungsverfahren und -Einrichtung zur Modulo-Berechnung eines Rests bei der Division |
JP2001337815A (ja) * | 2000-05-24 | 2001-12-07 | Toshiba Corp | 剰余演算装置及び方法 |
US8694573B2 (en) * | 2009-10-26 | 2014-04-08 | Jadavpur University | Method and system for determining a quotient value |
US9213639B2 (en) * | 2012-09-25 | 2015-12-15 | Teradata Us, Inc. | Division of numerical values based on summations and memory mapping in computing systems |
CN107515878B (zh) * | 2016-06-16 | 2020-12-22 | 苏宁云计算有限公司 | 一种数据索引的管理方法及装置 |
CN107566484B (zh) * | 2017-08-31 | 2020-12-18 | 深信服科技股份有限公司 | 一种流量调度方法及装置 |
CN109325201A (zh) * | 2018-08-15 | 2019-02-12 | 北京百度网讯科技有限公司 | 实体关系数据的生成方法、装置、设备及存储介质 |
-
2021
- 2021-01-13 CN CN202110044335.3A patent/CN112732196B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112732196A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347787B2 (en) | Image retrieval method and apparatus, system, server, and storage medium | |
CN103150397B (zh) | 一种数据索引创建方法、数据检索方法和系统 | |
CN104246765A (zh) | 图像检索装置、图像检索方法、程序以及计算机可读取的存储介质 | |
CN106407207B (zh) | 一种实时新增数据更新方法和装置 | |
CN104221015A (zh) | 图像检索装置、图像检索方法、程序以及计算机可读取的存储介质 | |
CN112328688B (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN106503054A (zh) | 一种数据查询方法及服务器 | |
CN112732196B (zh) | 规则数据存储方法、装置及存储介质 | |
CN116821053B (zh) | 数据上报方法、装置、计算机设备和存储介质 | |
CN102867023A (zh) | 一种栅格数据的存储、读取方法及装置 | |
CN110909266B (zh) | 深度分页的方法、装置及服务器 | |
CN112540972A (zh) | 一种基于RoaringBitmap海量用户高效圈选方法及装置 | |
CN112468546B (zh) | 账号位置确定方法、装置、服务器和存储介质 | |
CN101799803B (zh) | 信息处理方法、模块及系统 | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
CN114443670B (zh) | 数据的存储、读取方法及装置 | |
CN113419792A (zh) | 一种事件处理方法、装置、终端设备和存储介质 | |
CN112732194B (zh) | 非规则数据存储方法、装置及存储介质 | |
CN111813833A (zh) | 一种实时二度通联关系数据挖掘的方法 | |
CN108256839B (zh) | 数值资源回退方法、装置、服务器及存储介质 | |
CN111782645A (zh) | 数据处理方法和装置 | |
CN105468603A (zh) | 数据选择方法及装置 | |
CN113704268B (zh) | 一种数据处理方法、装置、存储介质和设备 | |
CN115033608B (zh) | 一种储能系统信息的分级处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |