WO2018001085A1 - 数据存储方法和装置、数据查找请求的处理方法和装置 - Google Patents

数据存储方法和装置、数据查找请求的处理方法和装置 Download PDF

Info

Publication number
WO2018001085A1
WO2018001085A1 PCT/CN2017/088071 CN2017088071W WO2018001085A1 WO 2018001085 A1 WO2018001085 A1 WO 2018001085A1 CN 2017088071 W CN2017088071 W CN 2017088071W WO 2018001085 A1 WO2018001085 A1 WO 2018001085A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
integer number
value
register
index
Prior art date
Application number
PCT/CN2017/088071
Other languages
English (en)
French (fr)
Inventor
郝允冉
Original Assignee
中兴通讯股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Publication of WO2018001085A1 publication Critical patent/WO2018001085A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the embodiments of the present invention provide a data storage method and apparatus, a data search request processing method and apparatus, a device, and a storage medium, so as to at least solve the technical problem of low efficiency in searching data by using polling in the related art.
  • the processing unit includes: a first processing module configured to perform a remainder operation on the number using a preset parameter, the result of the remainder operation being a first integer number X; and the second processing module configured to The modulo operation is performed on the number using the preset parameters, and the result of the modulo operation is the second integer number Y.
  • the number configured for the current service data is obtained; the number is decomposed into the first integer number and the second integer number; and the first mapping number is read in the first mapping bit chart.
  • the first data indexed and the second data indexed by the second integer number, wherein the first data and the second data are used to locate the previously saved service data; and the first data and the second data are saved, and the related technology can be solved A technical problem in which polling is used to find data that is less efficient.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种数据存储方法和装置、数据查找请求的处理方法和装置、设备、存储介质。其中,该存储方法包括:在保存当前业务数据时,获取为当前业务数据配置的编号(S201);将编号分解为第一整形数和第二整形数(S202);读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据(S203),其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据(S204)。

Description

数据存储方法和装置、数据查找请求的处理方法和装置
相关申请的交叉引用
本申请基于申请号为201610505350.2、申请日为2016年06月30日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本发明涉及数据处理领域,具体而言,涉及一种数据存储方法和装置、数据查找请求的处理方法和装置、设备、存储介质。
背景技术
在路由器中,经常需要进行数据的存储、查找。例如在需要创建很多条业务的情况下,查找最新创建的某条业务时,如果采用轮询的方式进行数据查找,由于轮询需要遍历所有数据,会消耗很多时间,数据查找的效率较低,降低了路由器的性能。
为了提高路由器查找数据的效率,减少消耗时间,可以采取以下两种方法来提高查找效率。方式1)采用常用的查找方法,无法避免轮询数据,例如,使用建立行索引、动态分配内存、二分查找等方法来提高查询速度,本质上还是使用轮询数据的方法,无法有效改善轮询造成的查询效率低下。方式2)采用关键字和常用的轮询的查找方法,例如,分别采用直接定位查找和二分查找的算法,同样无法避免进行数据轮询,从原理上比查表的方法还要慢,效率更加低下。
针对相关技术中使用轮询的方式来查找数据的效率较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种数据存储方法和装置、数据查找请求的处理方法和装置、设备、存储介质,以至少解决相关技术中使用轮询的方式来查找数据的效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种数据存储方法,该方法包括:在保存当前业务数据时,获取为当前业务数据配置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据。
在本发明的其他实施例中,将编号分解为第一整形数和第二整形数包括:使用预设参数对编号执行取余运算,取余运算的结果为第一整形数X;使用预设参数对编号执行取模运算,取模运算的结果为第二整形数Y。
在本发明的其他实施例中,保存第一数据和第二数据包括:获取数组中元素Y的值,并保存第一数据至元素Y中,其中,保存后的元素Y的值为(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为获取到的数组DataRdyTblX中元素Y的值,FDMapTbl[X]为第一数据;获取寄存器的值,保存第二数据至寄存器,其中,保存后的寄存器的值为(DataRdyGrpY|FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为第二数据。
根据本发明实施例的另一个方面,提供了一种数据查找请求的处理方法,该方法包括:在接收到数据查找请求时,获取寄存器的寄存器值;以寄存器值为索引从第二映射位图表中读取第二整形数;读取数组中以第二整形数为索引的第一整形数;基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
在本发明的其他实施例中,基于第一整形数和第二整形数确定数据查 找请求所查找的业务数据的索引包括:由第一整形数X和第二整形数Y确定与业务数据的索引S=X|(Y《B),其中,B为Y右移的位数。
在本发明的其他实施例中,在基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引之后,该方法还包括:通过业务数据的索引查找存储业务数据的数据库中的业务数据。
根据本发明实施例的另一个方面,提供了一种数据存储装置,该装置包括:第一获取单元,配置为在保存当前业务数据时,获取为当前业务数据配置的编号;处理单元,配置为将编号分解为第一整形数和第二整形数;第一读取单元,配置为读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存单元,配置为保存第一数据和第二数据。
在本发明的其他实施例中,处理单元包括:第一处理模块,配置为使用预设参数对编号执行取余运算,取余运算的结果为第一整形数X;第二处理模块,配置为使用预设参数对编号执行取模运算,取模运算的结果为第二整形数Y。
在本发明的其他实施例中,保存单元包括:第一保存模块,配置为获取数组中元素Y的值,并保存第一数据至元素Y中,其中,保存后的元素Y的值为:(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为获取到的数组DataRdyTblX中元素Y的值,FDMapTbl[X]为第一数据;第二保存模块,配置为获取寄存器的值,保存第二数据至寄存器,其中,保存后的寄存器的值为(DataRdyGrpY|FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为第二数据。
根据本发明实施例的另一个方面,提供了一种数据查找请求的处理装置,该装置包括:第二获取单元,配置为在接收到数据查找请求时,获取寄存器的寄存器值;第二读取单元,配置为以寄存器值为索引从第二映射 位图表中读取第二整形数;第三读取单元,配置为读取数组中以第二整形数为索引的第一整形数;确定单元,配置为基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
在本发明的其他实施例中,确定单元包括:确定模块,配置为由第一整形数X和第二整形数Y确定与业务数据的索引S=X|(Y《B),其中,B为Y右移的位数。
在本发明的其他实施例中,装置还包括:查找单元,配置为在基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引之后,通过业务数据的索引查找存储业务数据的数据库中的业务数据。
根据本发明的另一个实施例,提供了一种存储介质,存储介质可以被设置为存储用于执行以下步骤的程序代码:在保存当前业务数据时,获取为当前业务数据配置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据。
在本发明的其他实施例中,存储介质还可以被设置为存储用于执行以下步骤的程序代码:在接收到数据查找请求时,获取寄存器的寄存器值;以寄存器值为索引从第二映射位图表中读取第二整形数;读取数组中以第二整形数为索引的第一整形数;基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
根据本发明实施例的另一个方面,提供了一种设备,包括:
存储介质,配置为存储可执行指令;
处理器,配置为执行存储的可执行指令,所述可执行指令配置为实现上述的数据存储方法或上述的数据查找请求的处理方法。
在本发明实施例中,在保存当前业务数据时,获取为当前业务数据配 置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据。从而解决了相关技术中使用轮询的方式来查找数据的效率较低的技术问题,实现了提高查找数据的效率的技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的终端的示意图;
图2是根据本发明实施例的数据存储方法的流程图;
图3是根据本发明实施例的位图表的示意图;
图4是根据本发明实施例的数据查找请求的处理方法的流程图;
图5是根据本发明实施例的位图表的示意图;
图6是根据本发明实施例的数据存储装置的示意图;
图7是根据本发明实施例的数据查找请求的处理装置的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例所提供的方法可以在移动终端(如路由器等)、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,如图1所示, 移动终端可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、配置为存储数据的存储器103、以及配置为通信功能的传输装置105。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。
存储器103可配置为存储应用软件的软件程序以及模块,如本发明实施例中的设备的控制方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置配置为经由一个网络接收或者发送数据。上述的网络的实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
根据本发明实施例,提供了一种数据存储方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2是根据本发明实施例的数据存储方法的流程图,如图2所示,该方法包括如下步骤:
步骤S201,在保存当前业务数据时,获取为当前业务数据配置的编号。
步骤S202,将编号分解为第一整形数和第二整形数。
步骤S203,读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据。
第一映射位图表为预先制作好的,用来存储已经处理好的具有映射关系的数据,即整形数与编号的对应关系。
步骤S204,保存第一数据和第二数据。
通过上述实施例,在保存当前业务数据时,获取为当前业务数据配置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据,在查找数据时可通过第一数据和第二数据进行数据查询,而不用进行轮询,从而解决了相关技术中使用轮询的方式来查找数据的效率较低的技术问题,实现了提高数据查找的效率的技术效果。
在本发明的其他实施例中,上述步骤的执行主体可以为嵌入式设备等,如路由器、移动终端等,但不限于此。
在上述实施例中,将编号分解为第一整形数和第二整形数包括:使用预设参数对编号执行取余运算,取余运算的结果为第一整形数X;使用预设参数对编号执行取模运算,取模运算的结果为第二整形数Y。
在本发明的其他实施例中,保存第一数据和第二数据包括:获取数组中元素Y的值,并保存第一数据至元素Y中,其中,保存后的元素Y的值为:(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为数组DataRdyTblX中的元素Y的值,FDMapTbl[X]为第一数据;获取寄存器的值,保存第二数据至寄存器,其中,保存后的寄存器的值为(DataRdyGrpY |FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为第二数据。
通过上述实施例,与现有技术相比,在减少数据查找时间方面取得了非常大的进步,达到了提高数据查找效率的目标,在软件开发和数据转发等应用上,可以提高系统的效率。
在上述实施例中,对于一组业务数据,在管理的时候,一般使用数组来储存,在数组储存数据的时候,给每个业务数据一个编号,编号唯一。编号进行分解,分解成X和Y两个整形数值,然后把X和Y通过一个位图表进行映射,X映射到一个组数中储存,Y映射成一个整形数值,这样就完成了数据的存储。查找已经存储的,排序最靠前的数据时,用X和Y映射出来的值,通过另外一个位图表还原出来X和Y值,然后把X和Y进行组合,从而得到数据的编号,进而得到数据值。例如,可通过如下步骤实现:
步骤S11,在数组储存数据的时候,给每个数据一个编号,编号唯一。
步骤S12,编号进行分解,分解成X和Y两个整形数值。
用数据编号除以64,得到模值和余数,用变量DataM记录模值。开始分解余数,把余数转换成二进制,取得余数的低3位,记录在变量X中。取得余数的高3位,记录在变量Y中,通过Y,查找位图表FDMapTbl[Y],得到位图值DataRdyGrpY,查找方法为DataRdyGrpY|=FDMapTbl[Y],通过X,查找位图表FDMapTbl[X],得到位图值DataRdyTblX[Y],查找方法为DataRdyTblX[Y]|=FDMapTbl[X]。
步骤S13,设计2个位图表,位图表FDMapTbl[]和FDUnMapTbl[]。
步骤S14,X和Y的值,通过映射位图表FDMapTbl[],X存储在DataRdyTblX[Y]数组中,Y存储在DataRdyGrpY中,从而完成数据存储。
步骤S15,如果有新的数据需要存储,重复第一步。
例如,某个路由器需要创建64条业务,每条业务需要存储一个数据。数据的编号从0到63,对应64条业务。如,创建了第18条业务,就需要把编号17存储起来。查找的时候,需要把编号最小的那条业务取出来。假设没有存储数据,现在需要存储第18条业务,第28条业务,并且需要把第18条业务取出来。其执行过程如下:
首先,存储第18条业务,即需要存储编号17,先对17进行分解,Y=17>>3(相当于取17的二进制数的高三位),X=17&0x7(相当于取17的二进制数的低三位),Y的值为17右移3个bit,等于2;X的值为17的低3个bit,等于1。
其次,经过上面的分解,第18条业务的X值为1,Y值为2。根据附图3,通过位图表FDMapTbl[]进行映射,DataRdyTblX[Y]=DataRdyTblX[Y]|FDMapTbl[X],DataRdyGrpY=DataRdyGrpY|FDMapTbl[Y],即DataRdyTblX[2]=DataRdyTblX[2]|FDMapTbl[1],DataRdyGrpY=DataRdyGrpY|FDMapTbl[2],可以得到如下结果:X的值1通过映射,存储在DataRdyTblX[2]中值为0x02。Y的值2通过映射,存储在DataRdyGrpY的值为0x04。这样就完成的第18条业务的存储。
接着,进行第28条业务的存储,和第18条一样,编号27分解之后X=3,Y=3。通过映射DataRdyTblX[Y]=DataRdyTblX[Y]|FDMapTbl[X],DataRdyGrpY=DataRdyGrpY|FDMapTbl[Y],即DataRdyTblX[3]|=DataRdyTblX[3]|FDMapTbl[3],DataRdyGrpY|=DataRdyGrpY|FDMapTbl[3],可以得到如下结果:X的值3通过映射,存储在DataRdyTblX[3]中值为0x08。Y的值3通过映射,存储在DataRdyGrpY的值为(0x04|0x08),所以值为0x0C。这样就完成第28条业务的存储。
通过上述实施例,采用这种数据存储方式,便于数据的查找。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根 据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本发明实施例,提供了一种数据查找请求的处理方法的方法实施例,图4是根据本发明实施例的数据查找请求的处理方法的流程图,如图4所示,该方法包括如下步骤:
步骤S401,在接收到数据查找请求时,获取寄存器的寄存器值;
步骤S402,以寄存器值为索引从第二映射位图表中读取第二整形数;
步骤S403,读取数组中以第二整形数为索引的第一整形数;
步骤S404,基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
通过上述实施例,在接收到数据查找请求时,获取寄存器的寄存器值;以寄存器值为索引从第二映射位图表中读取第二整形数;读取数组中以第二整形数为索引的第一整形数;基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引,以通过索引确定出所需查找的数据,从而解决了相关技术中使用轮询的方式来查找数据的效率较低的技术问题,实现了提高数据查找的效率的技术效果。
在步骤S404中,基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引包括:由第一整形数X和第二整形数Y确定与业务数据的索引S=X|(Y《B),其中,B为Y右移的位数,如前述实施例中右移3位,B的值即为3。
在本发明的其他实施例中,在基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引之后,可通过业务数据的索引查找存储业务数据的数据库中的业务数据。
需要说明的是,使用上述的方法查找的数据是比当前编号小且存储有数据的编号,如果还需要查找下一位存储有数据且编号更小的编号,就判断DataRdyTblX[Y]是否还有bit位被置1,如果有,就把DataRdyTblX[Y]中对应前面那个编号的bit位清零(如当前最小编号为16.则清零16对应的bit位),然后继续根据请处理后的DataRdyTblX[Y]和DataRdyGrpY来寻找更小的编号;如果DataRdyTblX[Y]中没有其他bit位被置1,就把DataRdyTblX[Y]和DataRdyGrpY中对应前面那个编号的bit位清零,然后重新寻找更小的编号。
在上述实施例中,进行数据查找时,DataRdyTblX[]和DataRdyGrpY,通过映射位图表FDUnMapTbl[],来还原出来X和Y,通过X和Y组合,得到数据编号,进而得到存储的数据,这样可以取得编号最小的那个数据,如果还需要继续查找下一个编号最小的数据,就把DataRdyGrpY和DataRdyTblX[Y]中对应前面那个编号的bit位清零,然后重复第一步。
例如,某个路由器需要创建64条业务,每条业务需要存储一个数据。数据的编号从0到63,对应64条业务。如,创建了第18条业务,就需要把编号17存储起来。查找的时候,需要把编号最小的那条业务取出来。假设没有存储数据,现在需要存储第18条业务,第28条业务,并且需要把第18条业务取出来。关于第18条业务和第28条业务的存储已在实施例1中详述,本实施例不再赘述。
在需要读取第18条业务时:
首先,所有的数据都存储在DataRdyGrpY和DataRdyTblX[]中。根据附图5,先通过位图FDUnMapTbl[]取出Y值,Y= FDUnMapTbl[DataRdyGrpY],即Y=FDUnMapTbl[0x0C],可以得到Y=2。
对于“0x0C”,其范围在“0x00-0x0F”内,故而从与“0x00-0x0F”对应的行中选取第13位(即bit 12),即2。若数据为“0x3C”,则对应的从“0x30-0x3F”对应的行中选取第13位,即2。
然后,通过位图FDUnMapTbl[]取出X值。X=FDUnMapTbl[DataRdyTblX[Y]],即X=FDUnMapTbl[DataRdy TblX[2]],X=FDUnMapTbl[0x02],可以得到Y=1。
最后,把X和Y值通过算法组合,(Y<<3)|X,可以得到[(2<<3)|1]等于17,即取出来的是第18条业务的编号,这样就把编号最小的业务找到了。
下面对附图2和附图5做如下说明:
对于附图2中的取值,可根据整形数的类型进行变更,本申请对此不作限定,为了便于处理,本申请采用二进制数据进行处理,FDMapTbl[]中的第一至第八个元素,相当于对应于二进制数的第一至第八位。若编号的范围较大,即超过了2的8次方,则可以对FDMapTbl[]中的元素进行扩充。
对于附图5,在制作时,可以将FDUnMapTbl[Y]中的Y分解成二进制数,如表1所示:
表1
Y(十进制) Y(二进制)
0 0000 0000
1 0000 0001
2 0000 0010
3 0000 0011
4 0000 0100
5 0000 0101
6 0000 0110
7 0000 0111
8 0000 1000
9 0000 1001
…… ……
255 1111 1111
FDUnMapTbl[Y]的原理是将FDUnMapTbl[Y]这个数组的下标分解成二进制数,找到置位为“1”的最低位bit,然后FDUnMapTbl[Y]对应的值就是这个下标的最低位bit置“1”的bit号,bit号从0开始编号。另外,如果下标为“0”,则FDUnMapTbl[Y]对应的值为0。
例如,Y=1(二进制数为:0000 0001)时,FDUnMapTbl[1]=0;
Y=2(二进制数为:0000 0010)时,FDUnMapTbl[2]=1;
Y=4(二进制数为:0000 0100)时,FDUnMapTbl[4]=2;
Y=8(二进制数为:0000 1000)时,FDUnMapTbl[8]=3;
Y=9(二进制数为:0000 1001)时,FDUnMapTbl[9]=0。
需要说明的是,Y=9时,可分解为二进制数0000 1001,其第0个bit位为“1”,所以,FDUnMapTbl[9]=0。其它数据的取值相同,不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本发明实施例中还提供了一种数据存储装置。该装置用于实现上述实施例及实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的 装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的数据存储装置的示意图。如图6所示,该装置可以包括:第一获取单元61、处理单元62、第一读取单元63以及保存单元64。
第一获取单元61配置为在保存当前业务数据时,获取为当前业务数据配置的编号。
处理单元62配置为将编号分解为第一整形数和第二整形数。
第一读取单元63配置为读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据。
保存单元64配置为保存第一数据和第二数据。
通过上述实施例,第一获取单元在保存当前业务数据时,获取为当前业务数据配置的编号;处理单元将编号分解为第一整形数和第二整形数;第一读取单元读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存单元保存第一数据和第二数据,从而解决了相关技术中使用轮询的方式来查找数据的效率较低的技术问题,实现了提高数据查找的效率的技术效果。
在上述实施例中,处理单元包括:第一处理模块,配置为使用预设参数对编号执行取余运算,取余运算的结果为第一整形数X;第二处理模块,配置为使用预设参数对编号执行取模运算,取模运算的结果为第二整形数Y。
在本发明的其他实施例中,保存单元包括:第一保存模块,配置为获取数组中元素Y的值,并保存第一数据至元素Y中,其中,保存后的元素Y 的值为:(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为获取到的数组DataRdyTblX中的元素Y的值,FDMapTbl[X]为第一数据;第二保存模块,配置为获取寄存器的值,保存第二数据至寄存器,其中,保存后的寄存器的值为(DataRdyGrpY|FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为第二数据。
在上述实施例中,对于一组业务数据,在管理的时候,一般使用数组来储存,在数组储存数据的时候,给每个业务数据一个编号,编号唯一。编号进行分解,分解成X和Y两个整形数值,然后把X和Y通过一个位图表进行映射,X映射到一个组数中储存,Y映射成一个整形数值,这样就完成了数据的存储。查找已经存储的,排序最靠前的数据时,用X和Y映射出来的值,通过另外一个位图表还原出来X和Y值,然后把X和Y进行组合,从而得到数据的编号,进而得到数据值。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明实施例中还提供了一种数据查找请求的处理装置。该装置配置为实现上述实施例及实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本发明实施例的数据查找请求的处理装置的示意图。如图7所示,该装置可以包括:第二获取单元71、第二读取单元72、第三读取单元73以及确定单元74。
第二获取单元71配置为在接收到数据查找请求时,获取寄存器的寄存器值。
第二读取单元72配置为以寄存器值为索引从第二映射位图表中读取第二整形数。
第三读取单元73配置为读取数组中以第二整形数为索引的第一整形数。
确定单元74,配置为基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
通过上述实施例,第二获取单元在接收到数据查找请求时,获取寄存器的寄存器值;第二读取单元以寄存器值为索引从第二映射位图表中读取第二整形数;第三读取单元读取数组中以第二整形数为索引的第一整形数;确定单元基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引,以通过索引确定出所需查找的数据,从而解决了相关技术中使用轮询的方式来查找数据的效率较低的技术问题,实现了提高数据查找的效率的技术效果。
上述的确定单元包括:确定模块,配置为由第一整形数X和第二整形数Y确定与业务数据的索引S=X|(Y《B),其中,B为Y右移的位数。
在本发明的其他实施例中,该装置还包括:查找单元,配置为在基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引之后,通过业务数据的索引查找存储业务数据的数据库中的业务数据。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质。在本实施例中,上述存储介质可以被设置为存储配置为执行以下步骤的程序代码:
S21,在保存当前业务数据时,获取为当前业务数据配置的编号;
S22,将编号分解为第一整形数和第二整形数;
S23,读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;
S24,保存第一数据和第二数据。
在本发明的其他实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:
S31,在接收到数据查找请求时,获取寄存器的寄存器值;
S32,以寄存器值为索引从第二映射位图表中读取第二整形数;
S33,读取数组中以第二整形数为索引的第一整形数;
S34,基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在本实施例中,处理器根据存储介质中已存储的程序代码执行:在保存当前业务数据时,获取为当前业务数据配置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据。
在本实施例中,处理器根据存储介质中已存储的程序代码执行:在接收到数据查找请求时,获取寄存器的寄存器值;以寄存器值为索引从第二映射位图表中读取第二整形数;读取数组中以第二整形数为索引的第一整形数;基于第一整形数和第二整形数确定数据查找请求所查找的业务数据的索引。
本发明实施例中,如果以软件功能模块的形式实现上述的数据存储方 法或上述的数据查找请求的处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
相应地,本发明实施例提供一种设备,例如嵌入式设备,包括路由器、移动终端等,该设备包括:
存储介质,配置为存储可执行指令;
处理器,配置为执行存储的可执行指令,所述可执行指令配置为实现上述的数据存储方法或上述的数据查找请求的处理方法。
本实施例中的示例可以参考上述实施例及实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的实施例而已,并不用于限制本发明的保护范围, 对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
工业实用性
本发明实施例中,在保存当前业务数据时,获取为当前业务数据配置的编号;将编号分解为第一整形数和第二整形数;读取第一映射位图表中以第一整形数为索引的第一数据和以第二整形数为索引的第二数据,其中,第一数据和第二数据用于定位前一次保存的业务数据;保存第一数据和第二数据,能够解决相关技术中使用轮询的方式来查找数据的效率较低的技术问题。

Claims (14)

  1. 一种数据存储方法,包括:
    在保存当前业务数据时,获取为所述当前业务数据配置的编号;
    将所述编号分解为第一整形数和第二整形数;
    读取第一映射位图表中以所述第一整形数为索引的第一数据和以所述第二整形数为索引的第二数据,其中,所述第一数据和所述第二数据用于定位前一次保存的业务数据;
    保存所述第一数据和所述第二数据。
  2. 根据权利要求1所述的方法,其中,将所述编号分解为第一整形数和第二整形数包括:
    使用预设参数对所述编号执行取余运算,取余运算的结果为所述第一整形数X;
    使用所述预设参数对所述编号执行取模运算,取模运算的结果为所述第二整形数Y。
  3. 根据权利要求2所述的方法,其中,保存所述第一数据和所述第二数据包括:
    获取数组中元素Y的值,并保存所述第一数据至元素Y中,其中,保存后的元素Y的值为(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为获取到的所述数组DataRdyTblX中元素Y的值,FDMapTbl[X]为所述第一数据;
    获取寄存器的值,保存所述第二数据至所述寄存器,其中,保存后的寄存器的值为(DataRdyGrpY|FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为所述第二数据。
  4. 一种数据查找请求的处理方法,包括:
    在接收到数据查找请求时,获取寄存器的寄存器值;
    以所述寄存器值为索引从第二映射位图表中读取第二整形数;
    读取数组中以所述第二整形数为索引的第一整形数;
    基于所述第一整形数和所述第二整形数确定所述数据查找请求所查找的业务数据的索引。
  5. 根据权利要求4所述的方法,其中,基于所述第一整形数和所述第二整形数确定所述数据查找请求所查找的业务数据的索引包括:
    由所述第一整形数X和所述第二整形数Y确定与所述业务数据的索引S=X|(Y《B),其中,B为Y右移的位数。
  6. 根据权利要求4或5所述的方法,其中,在基于所述第一整形数和所述第二整形数确定所述数据查找请求所查找的业务数据的索引之后,所述方法还包括:
    通过所述业务数据的索引查找存储业务数据的数据库中的业务数据。
  7. 一种数据存储装置,其中,包括:
    第一获取单元,配置为在保存当前业务数据时,获取为所述当前业务数据配置的编号;
    处理单元,配置为将所述编号分解为第一整形数和第二整形数;
    第一读取单元,配置为读取第一映射位图表中以所述第一整形数为索引的第一数据和以所述第二整形数为索引的第二数据,其中,所述第一数据和所述第二数据配置为定位前一次保存的业务数据;
    保存单元,配置为保存所述第一数据和所述第二数据。
  8. 根据权利要求7所述的装置,其中,所述处理单元包括:
    第一处理模块,配置为使用预设参数对所述编号执行取余运算,取余运算的结果为所述第一整形数X;
    第二处理模块,配置为使用所述预设参数对所述编号执行取模运算, 取模运算的结果为所述第二整形数Y。
  9. 根据权利要求8所述的装置,其中,所述保存单元包括:
    第一保存模块,配置为获取数组中元素Y的值,并保存所述第一数据至元素Y中,其中,保存后的元素Y的值为(DataRdyTblX[Y]|FDMapTbl[X]),DataRdyTblX[Y]为获取到的所述数组DataRdyTblX中元素Y的值,FDMapTbl[X]为所述第一数据;
    第二保存模块,配置为获取寄存器的值,保存所述第二数据至所述寄存器,其中,保存后的寄存器的值为(DataRdyGrpY|FDMapTbl[Y]),DataRdyGrpY为获取到的寄存器的值,FDMapTbl[Y]为所述第二数据。
  10. 一种数据查找请求的处理装置,包括:
    第二获取单元,配置为在接收到数据查找请求时,获取寄存器的寄存器值;
    第二读取单元,配置为以所述寄存器值为索引从第二映射位图表中读取第二整形数;
    第三读取单元,配置为读取数组中以所述第二整形数为索引的第一整形数;
    确定单元,配置为基于所述第一整形数和所述第二整形数确定所述数据查找请求所查找的业务数据的索引。
  11. 根据权利要求10所述的装置,其中,所述确定单元包括:
    确定模块,配置为由所述第一整形数X和所述第二整形数Y确定与所述业务数据的索引S=X|(Y《B),其中,B为Y右移的位数。
  12. 根据权利要求10或11所述的装置,其中,所述装置还包括:
    查找单元,配置为在基于所述第一整形数和所述第二整形数确定所述数据查找请求所查找的业务数据的索引之后,通过所述业务数据的索引查找存储业务数据的数据库中的业务数据。
  13. 一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,该计算机可执行指令配置为执行上述的权利要求1至3任一项所述的数据存储方法或权利要求4至6任一项所述的数据查找请求的处理方法。
  14. 一种设备,包括:
    存储介质,配置为存储可执行指令;
    处理器,配置为执行存储的可执行指令,所述可执行指令配置为执行上述的权利要求1至3任一项所述的数据存储方法或权利要求4至6任一项所述的数据查找请求的处理方法。
PCT/CN2017/088071 2016-06-30 2017-06-13 数据存储方法和装置、数据查找请求的处理方法和装置 WO2018001085A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610505350.2A CN107562743B (zh) 2016-06-30 2016-06-30 数据存储方法和装置、数据查找请求的处理方法和装置
CN201610505350.2 2016-06-30

Publications (1)

Publication Number Publication Date
WO2018001085A1 true WO2018001085A1 (zh) 2018-01-04

Family

ID=60785918

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/088071 WO2018001085A1 (zh) 2016-06-30 2017-06-13 数据存储方法和装置、数据查找请求的处理方法和装置

Country Status (2)

Country Link
CN (1) CN107562743B (zh)
WO (1) WO2018001085A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765133A (zh) * 2019-10-24 2020-02-07 上海二三四五网络科技有限公司 一种基于数据取余分配数据表的控制方法及装置
CN110825521A (zh) * 2019-10-21 2020-02-21 新华三信息安全技术有限公司 一种内存使用管理方法、装置及存储介质
CN112118262A (zh) * 2020-09-21 2020-12-22 武汉中元华电科技股份有限公司 一种基于动态内存分配实现数据排序与合并的系统及方法
CN112506440A (zh) * 2020-12-17 2021-03-16 杭州迪普信息技术有限公司 基于二分法的数据查找方法和设备

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111783378B (zh) * 2020-06-30 2022-05-17 迈普通信技术股份有限公司 数据处理方法及fpga
CN113407577B (zh) * 2021-06-29 2023-06-23 成都新潮传媒集团有限公司 一种kafka数据的查询方法、装置及计算机可读存储介质
CN115454354B (zh) * 2022-10-19 2023-09-12 上海吉贝克信息技术有限公司 数据的处理方法、系统、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639851A (zh) * 2009-08-03 2010-02-03 北京高森明晨信息科技有限公司 一种数据存储、查询的方法和装置
US20140297651A1 (en) * 2013-04-01 2014-10-02 Ori Software Development Ltd. Using hash table to retrieve leaf index blocks
CN104462141A (zh) * 2013-09-24 2015-03-25 中国移动通信集团重庆有限公司 一种数据存储与查询的方法、系统及存储引擎装置
US20150106382A1 (en) * 2013-10-11 2015-04-16 Oracle International Corporation Tables With Unlimited Number Of Sparse Columns And Techniques For An Efficient Implementation
CN105426519A (zh) * 2015-12-04 2016-03-23 河海大学 一种用于离线搜索的小规模索引数据存储方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395712C (zh) * 2005-12-22 2008-06-18 华为技术有限公司 软件系统的资源管理方法
CN104298680B (zh) * 2013-07-18 2019-01-11 腾讯科技(深圳)有限公司 数据统计方法及数据统计装置
KR102106538B1 (ko) * 2013-10-08 2020-05-04 삼성전자주식회사 수치 연산을 처리하는 장치 및 방법
CN104794196B (zh) * 2015-04-21 2018-07-31 浙江大学 一种树形结构数据的采集和更新方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639851A (zh) * 2009-08-03 2010-02-03 北京高森明晨信息科技有限公司 一种数据存储、查询的方法和装置
US20140297651A1 (en) * 2013-04-01 2014-10-02 Ori Software Development Ltd. Using hash table to retrieve leaf index blocks
CN104462141A (zh) * 2013-09-24 2015-03-25 中国移动通信集团重庆有限公司 一种数据存储与查询的方法、系统及存储引擎装置
US20150106382A1 (en) * 2013-10-11 2015-04-16 Oracle International Corporation Tables With Unlimited Number Of Sparse Columns And Techniques For An Efficient Implementation
CN105426519A (zh) * 2015-12-04 2016-03-23 河海大学 一种用于离线搜索的小规模索引数据存储方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110825521A (zh) * 2019-10-21 2020-02-21 新华三信息安全技术有限公司 一种内存使用管理方法、装置及存储介质
CN110825521B (zh) * 2019-10-21 2022-11-25 新华三信息安全技术有限公司 一种内存使用管理方法、装置及存储介质
CN110765133A (zh) * 2019-10-24 2020-02-07 上海二三四五网络科技有限公司 一种基于数据取余分配数据表的控制方法及装置
CN112118262A (zh) * 2020-09-21 2020-12-22 武汉中元华电科技股份有限公司 一种基于动态内存分配实现数据排序与合并的系统及方法
CN112118262B (zh) * 2020-09-21 2022-07-29 武汉中元华电科技股份有限公司 一种基于动态内存分配实现数据排序与合并的系统及方法
CN112506440A (zh) * 2020-12-17 2021-03-16 杭州迪普信息技术有限公司 基于二分法的数据查找方法和设备

Also Published As

Publication number Publication date
CN107562743A (zh) 2018-01-09
CN107562743B (zh) 2022-12-02

Similar Documents

Publication Publication Date Title
WO2018001085A1 (zh) 数据存储方法和装置、数据查找请求的处理方法和装置
CN107547633B (zh) 一种用户常驻点的处理方法、装置和存储介质
Xu et al. Energy efficient index for querying location-dependent data in mobile broadcast environments
CN108769111A (zh) 一种服务器连接方法、计算机可读存储介质及终端设备
CN107682466B (zh) Ip地址的地域信息搜索方法及其装置
US10083195B2 (en) System and method for composing a multidimensional index key in data blocks
CN101594319B (zh) 表项查找方法和装置
US20110307656A1 (en) Efficient lookup methods for ternary content addressable memory and associated devices and systems
Qian et al. ASAP: Scalable collision arbitration for large RFID systems
CN107145526B (zh) 一种路网下地理社交关键字反最近邻查询处理方法
CN111078807B (zh) 位置查询方法、装置、计算机设备及存储介质
US20160328445A1 (en) Data Query Method and Apparatus
CN105740405B (zh) 存储数据的方法和装置
CN101848248B (zh) 一种规则查找方法和装置
CN104750872A (zh) 一种业务对象的查询方法及装置
US20220005546A1 (en) Non-redundant gene set clustering method and system, and electronic device
CN107330094A (zh) 动态存储键值对的布鲁姆过滤器树结构及键值对存储方法
CN108920105B (zh) 基于社区结构的图数据分布式存储方法及装置
CN110457704B (zh) 目标字段的确定方法、装置、存储介质及电子装置
CN107784073B (zh) 一种本地缓存的数据查询方法、存储介质和服务器
CN114265927A (zh) 数据查询方法及装置、存储介质及电子装置
CN107291746B (zh) 一种存储和读取数据的方法及设备
US20190188311A1 (en) Database access using a z-curve
CN110929173A (zh) 同人识别方法、装置、设备及介质
CN105574076B (zh) 一种基于Bloom Filter的键值对存储结构及方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17819082

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17819082

Country of ref document: EP

Kind code of ref document: A1