CN113110944A - 信息查找方法、装置、服务器、可读存储介质及程序产品 - Google Patents
信息查找方法、装置、服务器、可读存储介质及程序产品 Download PDFInfo
- Publication number
- CN113110944A CN113110944A CN202110352496.9A CN202110352496A CN113110944A CN 113110944 A CN113110944 A CN 113110944A CN 202110352496 A CN202110352496 A CN 202110352496A CN 113110944 A CN113110944 A CN 113110944A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- target database
- information
- database file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 111
- 238000013507 mapping Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 19
- 230000006837 decompression Effects 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 abstract description 37
- 239000002699 waste material Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种信息查找方法、装置、服务器、可读存储介质及程序产品。该方法包括:获取目标数据库文件的压缩文件;目标数据库文件包括用于查询的索引文件;对压缩文件执行解压处理,得到目标数据库文件;将目标数据库文件复制到目标目录下;将目标目录下的目标数据库文件映射到共享内存;在共享内存映射的目标数据库文件的索引文件中查找目标信息。本公开提供的信息查找方法、装置、服务器、可读存储介质及程序产品,能够解决相关技术中服务器中运行的不同进程需要在同一份文件中查找数据时,重复的将同一份文件加载到内存,对内存造成浪费的问题。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种信息查找方法、装置、服务器、可读存储介质及程序产品。
背景技术
随着互联网技术的不断发展,电子设备依托于多种应用程序向用户提供服务,一些服务需要在大量的用户数据和服务数据中查找一个数据所对应的关联信息,例如查找与某个用户账号或IP地址等信息相关联的信息,例如用户个人信息、经度纬度、所在城市等业务信息。由于服务器上可能同时存在多个进程进行信息查询,导致内存中存储有一份相同的数据文件的多份副本,占用内存资源较多,降低服务器的处理速度,甚至会导致内存溢出。
发明内容
本公开提供一种信息查找方法、装置、服务器、可读存储介质及程序产品,以至少解决相关技术中服务器中运行的不同进程需要在同一份文件中查找数据时,重复的将同一份文件加载到内存,对内存造成浪费的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种信息查找方法,包括:
获取目标数据库文件的压缩文件;目标数据库文件包括用于查询的索引文件;
对压缩文件执行解压处理,得到目标数据库文件;
将目标数据库文件复制到目标目录下;
将目标目录下的目标数据库文件映射到共享内存;
在共享内存映射的目标数据库文件的索引文件中查找目标信息。
在一个示例中,索引文件包括网际互连协议IP地址索引文件和关联信息索引文件,IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,预设对应关系用于表示不同IP地址对应的不同数字标识,数字标识用于表示对应的IP地址按照地址大小排序的顺序;
在共享内存映射的目标数据库文件的索引文件中查找目标信息,包括:
在预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识;
通过二分查找法,在共享内存映射的IP地址索引文件中查找目标数字标识;
在查找到目标数字标识之后,确定目标数字标识所在记录的索引;
根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息。
在一个示例中,关联信息索引文件中的关联信息根据预设对应关系被预先替换为对应的标识;其中,预设对应关系还用于表示不同关联信息对应的不同标识;
根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息,包括:
在关联信息索引文件中查找索引对应的标识;
根据预设对应关系,确定标识对应的关联信息,得到目标信息。
在一个示例中,在获取目标数据库文件的压缩文件之前,该方法还包括:
从数据源获取裸数据文件;
根据预设对应关系,将裸数据文件中的目标字段值替换为对应的标识,得到替换处理后的裸数据文件;其中,预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数;
根据替换处理后裸数据文件,生成目标数据库文件,其中,目标数据库文件包括索引文件;
压缩目标数据库文件,得到压缩文件。
在一个示例中,在获取目标数据库文件的压缩文件之前,该方法还包括:将压缩文件上传至源站;
获取目标数据库文件的压缩文件,包括:从源站下载压缩文件。
在一个示例中,目标目录为动态文件系统在内存中配置的动态存储空间的地址,将目标目录下的目标数据库文件映射到共享内存,包括:
基于内存映射文件方法,将目标目录下的目标数据库文件映射到共享内存。
在一个示例中,将目标数据库文件复制到目标目录下,包括:调用软件开发工具包,通过软件开发工具包将目标数据库文件复制到目标目录下;
将目标目录下的目标数据库文件映射到共享内存,包括:调用软件开发工具包,通过软件开发工具包将目标目录下的目标数据库文件映射到共享内存。
根据本公开实施例的第二方面,提供一种信息查找装置,包括:
第一获取单元,被配置为执行获取目标数据库文件的压缩文件;目标数据库文件包括用于查询的索引文件;
解压单元,被配置为执行对压缩文件执行解压处理,得到目标数据库文件;
复制单元,被配置为执行将目标数据库文件复制到目标目录下;
映射单元,被配置为执行将目标目录下的目标数据库文件映射到共享内存;
查找单元,被配置为执行在共享内存映射的目标数据库文件的索引文件中查找目标信息。
在一个示例中,索引文件包括网际互连协议IP地址索引文件和关联信息索引文件,IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,预设对应关系用于表示不同IP地址对应的不同数字标识,数字标识用于表示对应的IP地址按照地址大小排序的顺序;
查找单元包括:
第一查找子单元,被配置为执行在预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识;
第二查找子单元,被配置为通过二分查找法,在共享内存映射的IP地址索引文件中查找目标数字标识;
第一确定子单元,被配置为执行在查找到目标数字标识之后,确定目标数字标识所在记录的索引;
第三查找子单元,被配置为执行根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息。
在一个示例中,关联信息索引文件中的关联信息根据预设对应关系被预先替换为对应的标识;其中,预设对应关系还用于表示不同关联信息对应的不同标识;
第三查找子单元包括:
第四查找子单元,被配置为执行在关联信息索引文件中查找索引对应的标识;
第二确定子单元,被配置为执行根据预设对应关系,确定标识对应的关联信息,得到目标信息。
在一个示例中,该装置还包括:
第二获取单元,被配置为执行在获取目标数据库文件的压缩文件之前,从数据源获取裸数据文件;
替换单元,被配置为执行根据预设对应关系,将裸数据文件中的目标字段值替换为对应的标识,得到替换处理后的裸数据文件;其中,预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数;
生成单元,被配置为执行根据替换处理后裸数据文件,生成目标数据库文件,其中,目标数据库文件包括索引文件;
压缩单元,被配置为执行压缩目标数据库文件,得到压缩文件。
在一个示例中,该装置还包括:上传单元,被配置为执行在压缩目标数据库文件,得到压缩文件之后,在获取目标数据库文件的压缩文件之前,将压缩文件上传至源站;
第一获取单元包括:下载子单元,被配置为执行从源站下载压缩文件。
在一个示例中,目标目录为动态文件系统在内存中配置的动态存储空间的地址,将目标目录下的目标数据库文件映射到共享内存,包括:
基于内存映射文件方法,将目标目录下的目标数据库文件映射到共享内存。
在一个示例中,复制单元包括:第一调用子单元,被配置为执行调用软件开发工具包,通过软件开发工具包将目标数据库文件复制到目标目录下;
映射单元包括:第二调用子单元,被配置为执行调用软件开发工具包,通过软件开发工具包将目标目录下的目标数据库文件映射到共享内存。
根据本公开实施例的第三方面,提供一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现如第一方面及其任意一个示例所提供的信息查找方法。
根据本公开实施例的第四方面,提供一种可读存储介质,当可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如第一方面及其任意一个示例所提供的信息查找方法。
根据本公开实施例的第五方面,提供一种程序产品,包括指令,指令被处理器执行时如第一方面及其任意一个示例所提供的信息查找方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
通过将目标数据库文件映射到共享内存中,以在共享内存映射的目标数据库文件中查找信息,可以使得所有运行的进程都可以访问同一块共享内存,无需在内存中复制多份目标数据库文件。与相关技术中多个进程在查找信息时,需要在内存中分别的复制一份目标数据库文件的技术方案相比,本公开实施例提供的技术方案可以通过内存映射文件的方法实现多进程共享内存,减少查找信息时目标数据库文件占用的内存空间,避免出现多进程在查询同一份文件时,对内存重复占用的现象,提高了服务器的运算处理速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种信息查找方法的架构图。
图2是相关技术提供的一种信息查找方法的示意图。
图3是根据一示例性实施例示出的一种信息查找方法的流程图。
图4是根据一示例性实施例示出的一种信息查找方法的示意图。
图5是根据一示例性实施例示出的一种信息查找装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开所提供的信息查找方法,可以应用于如图1的架构中。图1是根据一示例性实施例示出的一种信息查找方法的架构图。
如图1所示,包括服务器11、源站12、数据源13和客户端设备14。服务器11可以向客户端设备14提供业务服务,例如,可以提供视频服务。服务器11、源站12、数据源13可以是服务器、云服务器或者服务器集群等具有计算功能的电子设备。一个示例中,服务器11的系统可以是基于Linux的系统。电子设备14可以是手机、平板电脑、电脑等具有通讯功能的电子设备。服务器11可以通过网络协议如超文本传输安全协议(Hyper Text TransferProtocol over Secure Socket Layer,HTTPS),分别与源站12、数据源13和客户端设备14建立连接并进行信息交互。
客户端设备14可以向服务器11发出业务请求,该业务请求是需要服务器11查找一些信息。例如,在一个示例的场景中,用户通过客户端设备14登录视频的客户端,点击“附近”的功能图标,以刷新出在客户端设备14附近的用户中热度较高的视频,这时,客户端设备14向服务器11发起业务请求,以请求服务器11提供在客户端设备14附近的用户中热度较高的视频。
服务器11响应于业务请求,查找信息。例如,在上述示例的场景中,该业务请求来源于客户端设备14,在其它场景中,业务请求也可以来源于其它设备或来源于服务器11自身。
服务器11在查找信息时,在目标数据库文件中进行查找。在上述示例的场景中,服务器11响应于业务请求所要查找的信息,可以包括客户端设备14的网际互连协议(Internet Protocol,简称IP)地址所对应的实际地址信息(可以包括所在国家、城市、街道等)。这时,可以根据客户端设备14的IP地址,在目标数据库文件中查找IP地址对应的关联信息。
目标数据库文件可以包括多个索引文件。针对上述示例的应用场景,多个索引文件可以包括IP地址索引文件和关联信息索引文件。关联信息索引文件可以用于存储IP地址对应的经度、纬度、国家、城市、街道、运营商等信息。其中,上述的IP地址可以是IPV4(网际协议版本4,英文全称Internet Protocol version 4)地址或IPV6(网际协议版本6,英文全称Internet Protocol version 6)地址。
服务器11在查找信息时,可以针对业务请求新建一个进程,基于进程的控制来执行查找信息的流程。那么,对于不同的客户端设备所发送的业务请求,就可以新建对应数量的进程查找信息。
图2提供了一种相关技术中查找信息方法的示意图,在相关技术中,每个进程在查找信息时,分别将目标数据库文件复制到内存中,如图2所示,进程A将目标数据库文件复制到内存区域A中,进程B将目标数据库文件复制到内存区域B中,这样,在内存中复制了两份相同的目标数据库文件。
由于目标数据库文件的数据量通常比较大,例如,在一种可选的应用场景中,原始数据库用于存储所有的IPV4地址及其关联信息、以及IPV6地址及其关联信息,IPV4地址及其关联信息的裸数据文件的大小可以达到750M以上,IPV6地址及其关联信息的裸数据文件的大小可以达到260M以上。因此,相关技术中每个进程复制一份文件到内存中的信息查找方法非常占用内存。
为了解决上述问题,本公开实施例提供了一种信息查找方法,图3是根据一示例性实施例示出的一种信息查找方法的流程图,如图3所示,该方法可以用于图1的服务器11中,该方法可以包括以下步骤301-305:
步骤301,获取目标数据库文件的压缩文件。
目标数据库文件包括用于查询的索引文件。目标数据库文件可以是上述示例场景中所述的用于存储IP地址及其关联信息的文件,包括多个索引文件。目标数据库文件的压缩文件可以存储在如图1所示的源站12中,在需要获取目标数据库文件时,服务器11从源站12下载压缩文件。
在一个实施方式中,目标数据库文件中的数据来源可以是如图1所示的数据源13提供的裸数据(raw data)。服务器11可以设置一定的更新条件,从数据源13拉取裸数据文件,以生成更新的目标数据库文件。例如,更新条件可以是每天的固定时刻更新。从数据源13下载裸数据文件之后,可以对裸数据文件进行处理,例如,按照自定义格式生成二进制(bin)文件。自定义格式可以包括对裸数据的内容进行替换。示例性的,可以按照预设对应关系,将部分较长的字符串替换为较短的字符串,例如,将裸数据文件中所有的字符串“北京”替换为01,这样,可以减少目标数据库文件的数据量大小。
步骤302,对压缩文件执行解压处理,得到目标数据库文件。
在得到压缩文件之后,对压缩文件进行解压处理,得到目标数据库文件。
在一个实施方式中,在解压处理之后,可以对目标数据库文件进行校验,以确定目标数据库文件的正确和完整。校验可以是通过预先在压缩文件中放置校验码,在解压处理之后,根据目标数据库文件生成验证码,将验证码与校验码进行对比,如果一致则确定目标数据库文件是正确、完整的。
步骤303,将目标数据库文件复制到目标目录下。
在一个示例中,目标目录可以在服务器11的硬盘中。
在另一个示例中,目标目录也可以是动态文件系统tmpfs在内存中配置的动态存储空间的地址。动态文件系统,也可以称为临时文件系统,是一种基于内存的文件系统。动态文件系统可以提供一个直接访问内存的目录:/dev/shm/。本公开实施例中所述的目标目录可以是/dev/shm/或者其名下的目录。在复制目标数据库文件时,可以将其复制到目标目录下。如果不采用该方案,系统会采用懒加载的方式,根据进程查找信息时的需求将部分的目标数据库文件从硬盘中复制到共享内存中,这种方案会降低读取目标数据库文件的速度。在该示例中,将目标数据库文件直接复制到内存的目标目录下,可以直接将目标数据库文件全部加载到内存中,提高了查找信息时在内存中读取目标数据库文件的速度。
步骤304,将目标目录下的目标数据库文件映射到共享内存。
共享内存是内存中的一部分,共享内存提供了一种机制,允许多个进程访问。将目标数据库文件映射到共享内存中,就可以允许多个进程同时访问共享内存,读取共享内存中映射的目标数据库文件的内容。
示例性的,如图4所示,目标数据库文件映射在共享内存中,进程A和进程B都可以读取共享内存中映射的目标数据库文件的内容。这样,即使多个进程都需要在内存中读取目标数据库文件,也无需每个进程都复制一份文件到内存中,在共享内存中映射一份目标数据库文件即可,大大减少了多进程查找信息的情况下占用的内存空间。
基于步骤303的一个示例,目标目录可以是内存中的一个目录:/dev/shm/,在这种情况下,步骤304将目标目录下的目标数据库文件映射到共享内存,可以包括:
基于内存映射文件方法,将目标目录下的目标数据库文件映射到共享内存。通过内存映射文件方法,可以建立内存与文件的映射。内存映射文件方法可以使得多个进程之间可以通过映射同一个文件实现共享内存。多个进程可以像访问普通内存一样,对共享内存中的文件进行访问。
内存映射文件方法的一个实现方式可以是调用mmap函数。通过mmap函数执行共享内存和文件的映射。在调用mmap函数执行内存映射文件之后,可以通过shm_open函数来获取目标数据库文件的首地址,从而可以在目标数据库文件中查找信息。
步骤305,在共享内存映射的目标数据库文件的索引文件中查找目标信息。
共享内存是多个进程可以共用的内存空间。目标数据库文件映射到共享内存之后,不同的进程都可以像访问内存一样读取目标数据库文件,从而,可以在共享内存映射的目标数据库文件的索引文件中查找目标信息。
本公开实施例提供的信息查找方法,通过将目标数据库文件映射到共享内存中,以在共享内存映射的目标数据库文件中查找信息,可以使得所有运行的进程都可以访问同一块共享内存,无需在内存中复制多份目标数据库文件。与相关技术中多个进程在查找信息时,需要在内存中分别的复制一份目标数据库文件的技术方案相比,本公开实施例提供的技术方案可以通过内存映射文件的方法实现多进程共享内存,减少查找信息时目标数据库文件占用的内存空间,避免出现多进程在查询同一份文件时,对内存重复占用的现象,提高了服务器的运算处理速度。
在一个示例中,索引文件包括IP地址索引文件和关联信息索引文件。IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,预设对应关系用于表示不同IP地址对应的不同数字标识,数字标识用于表示对应的IP地址按照地址大小排序的顺序。例如,基于IPV6协议的IP地址,字段值是四段IP地址的字符串,例如“202.118.001.001”,其数字标识可以是202118001001,这样,各个IP地址都由多段字符串表示为一串数字,就可以进行排序了。
步骤305在共享内存映射的目标数据库文件的索引文件中查找目标信息,可以包括如下步骤3051-3054:
步骤3051,在预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识。
例如,目标IP地址为“025.114.030.004”,根据预设对应关系,其对应的数字标识为25114030004。
步骤3052,通过二分查找法,在共享内存映射的IP地址索引文件中查找目标数字标识。
二分查找法也即折半查找法,是将按序排列(此处以由小到大排列为例)的数据以中间数据分为前、后两个表,将待查找的数据与中间的数据进行比对,如果待查找数据大于比对数据,则在后表继续按照上述方式进行查找,如果待查找数据小于比对数据,则在前表继续按照上述方式进行查找,直至比对一致则查找成功。
由于IP地址索引文件中的IP地址都被替换为数字标识,因此,可以通过二分查找法进行查找,以提高查找效率。
步骤3053,在查找到目标数字标识之后,确定目标数字标识所在记录的索引。
步骤3054,根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息。
例如,目标数字标识25114030004所在记录的索引是100000,根据索引,在关联信息索引文件中查找第100000条记录中的所有字段内容,得到目标IP地址的关联信息(例如IP地址对应的经度纬度、国家、省份、城市、运营商等信息),也即目标信息。
在一个示例中,关联信息索引文件中的关联信息根据预设对应关系被预先替换为对应的标识;其中,预设对应关系还用于表示不同关联信息对应的不同标识。例如,关联信息索引文件中包括字段名称为“城市”的字段,“城市”为IP地址的一个关联信息,“城市”字段的字段值为城市名称,可以根据预设对应关系,预先将所有的城市名称为“北京”的字段值替换为“01”,以“01”来标识“北京”,这样,可以减小关联信息索引文件的体积,减少目标数据库文件所占用的内存。
在一个示例中,步骤3054,根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息,可以包括如下步骤401-402:
步骤401,在关联信息索引文件中查找索引对应的标识。
步骤402,根据预设对应关系,确定标识对应的关联信息,得到目标信息。
由于在该示例中关联信息索引文件中的关联信息被替换为对应的标识,因此,在关联信息索引文件中查找到的内容为标识。在查找到目标IP地址的索引对应的标识之后,就可以根据预设对应关系,反向的确定标识对应的关联信息,从而得到目标信息。
在一个示例中,在步骤301获取目标数据库文件的压缩文件之前,该方法还可以包括步骤501-504:
步骤501,从数据源获取裸数据文件。
数据源可以是如图1所示的数据源12。一个示例中,数据源12的地址可以是https://ipip.xxxx,服务器11通过该地址与数据源12交互。从数据源拉取文件时,可以通过Python脚本实现。从数据源获取的文件可以是裸数据文件。
步骤502,根据预设对应关系,将裸数据文件中的目标字段值替换为对应的标识,得到替换处理后的裸数据文件;其中,预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数。
为了便于信息查询,可以对裸数据文件进行处理,将裸数据文件中的目标字段值替换为对应的标识,例如,在步骤3051-3054的示例中,将“城市”、“IP地址”等字段的不同字段值替换为对应的不同标识。
步骤503,根据替换处理后裸数据文件,生成目标数据库文件。
其中,目标数据库文件包括索引文件。一个示例中,生成的目标数据库文件可以是二进制(bin)库文件。
步骤504,压缩目标数据库文件,得到压缩文件。
将目标数据库文件进行压缩,可以减少目标数据库文件的存储空间。
在一个示例中,在获取目标数据库文件的压缩文件之前,该方法还可以包括:将压缩文件上传至源站,相应的,获取目标数据库文件的压缩文件的步骤,可以包括从源站下载压缩文件。
将压缩文件存储在源站,可以减小服务器的存储压力,按需下载。对目标数据库文件进行压缩,可以缩短下载的时间。
在一个示例中,步骤303将目标数据库文件复制到目标目录下,可以通过调用软件开发工具包SDK实现,步骤304将目标目录下的目标数据库文件映射到共享内存,可以通过调用SDK实现。
也即,上述的将目标数据库文件复制到目标目录下、以及将目标目录下的目标数据库文件映射到共享内存的流程步骤,可以以指令的形式封装在SDK中,这样,可以方便开发过程中移植使用实现上述步骤303~304的指令。
需要说明的是,上述本公开实施例描述的应用场景和架构是为了更加清楚的说明本公开实施例提供的信息查找方法的技术方案,仅用于示例性的说明,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。
基于相同的发明构思,本公开实施例还提供一种信息查找装置,可以用于执行本公开实施例提供的信息查找方法,其中,在本公开实施例提供的信息查找装置中未详述说明的内容,可以参考上述对信息查找方法的实施例的相关说明,在此不再赘述。
图5是根据一示例性实施例示出的一种信息查找装置框图。参照图5,该装置包括第一获取单元801,解压单元802,复制单元803,映射单元804和查找单元805。
第一获取单元801被配置为执行获取目标数据库文件的压缩文件;目标数据库文件包括用于查询的索引文件;
解压单元802被配置为执行对压缩文件执行解压处理,得到目标数据库文件;
复制单元803被配置为执行将目标数据库文件复制到目标目录下;
映射单元804被配置为执行将目标目录下的目标数据库文件映射到共享内存;
查找单元805被配置为执行在共享内存映射的目标数据库文件的索引文件中查找目标信息。
在一个示例中,索引文件包括网际互连协议IP地址索引文件和关联信息索引文件,IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,预设对应关系用于表示不同IP地址对应的不同数字标识,数字标识用于表示对应的IP地址按照地址大小排序的顺序。
在这种情况下,查找单元805可以包括:
第一查找子单元,被配置为执行在预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识;
第二查找子单元,被配置为通过二分查找法,在共享内存映射的IP地址索引文件中查找目标数字标识;
第一确定子单元,被配置为执行在查找到目标数字标识之后,确定目标数字标识所在记录的索引;
第三查找子单元,被配置为执行根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息。
在一个示例中,关联信息索引文件中的关联信息根据预设对应关系被预先替换为对应的标识;其中,预设对应关系还用于表示不同关联信息对应的不同标识。
在这种情况下,第三查找子单元可以包括:
第四查找子单元,被配置为执行在关联信息索引文件中查找索引对应的标识;
第二确定子单元,被配置为执行根据预设对应关系,确定标识对应的关联信息,得到目标信息。
在一个示例中,该装置还可以包括:
第二获取单元被配置为执行在获取目标数据库文件的压缩文件之前,从数据源获取裸数据文件;
替换单元,被配置为执行根据预设对应关系,将裸数据文件中的目标字段值替换为对应的标识,得到替换处理后的裸数据文件;其中,预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数;
生成单元,被配置为执行根据替换处理后裸数据文件,生成目标数据库文件,其中,目标数据库文件包括索引文件;
压缩单元,被配置为执行压缩目标数据库文件,得到压缩文件。
在一个示例中,该装置还可以包括:上传单元,被配置为执行在压缩目标数据库文件,得到压缩文件之后,在获取目标数据库文件的压缩文件之前,将压缩文件上传至源站;第一获取单元801可以包括:下载子单元,被配置为执行从源站下载压缩文件。
在一个示例中,目标目录为动态文件系统在内存中配置的动态存储空间的地址,将目标目录下的目标数据库文件映射到共享内存,包括:
基于内存映射文件方法,将目标目录下的目标数据库文件映射到共享内存。
在一个示例中,复制单元803包括:第一调用子单元,被配置为执行调用软件开发工具包,通过软件开发工具包将目标数据库文件复制到目标目录下;
映射单元804包括:第二调用子单元,被配置为执行调用软件开发工具包,通过软件开发工具包将目标目录下的目标数据库文件映射到共享内存。
本公开实施例提供的信息查找装置,通过将目标数据库文件映射到共享内存中,以在共享内存映射的目标数据库文件中查找信息,可以使得所有运行的进程都可以访问同一块共享内存,无需在内存中复制多份目标数据库文件。与相关技术中多个进程在查找信息时,需要在内存中分别的复制一份目标数据库文件的技术方案相比,本公开实施例提供的技术方案可以通过内存映射文件的方法实现多进程共享内存,减少查找信息时目标数据库文件占用的内存空间,避免出现多进程在查询同一份文件时,对内存重复占用的现象,提高了服务器的运算处理速度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式以及方案的技术效果已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开实施例还提供了一种服务器,具体结合图6进行详细说明。
图6是根据一示例性实施例示出的一种服务器900的结构框图。该服务器900能够实现根据本公开实施例中的信息查找方法。
在示例性实施例中,本公开实施例还提供了一种包括指令的计算机可读存储介质,例如,计算机可读存储介质可以是服务器900中的包括指令的存储器902,该指令可以由服务器900中的处理器901执行,以使服务器900完成本公开实施例提供的信息查找方法。可选地,计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,本公开实施例还提供一种程序产品,包括指令,指令可以被处理器901执行,以实现本公开实施例提供的信息查找方法。
具体地,上述处理器901可以包括中央处理器(CPU),或者特定集成电路(application specific integrated circuit,ASIC),或者可以被配置成实施本公开实施例的一个或多个集成电路。
存储器902可以包括用于信息或指令的大容量存储器。举例来说而非限制,存储器902可包括硬盘驱动器(hard disk drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universal serial bus,USB)驱动器或者两个及其以上这些的组合。在合适的情况下,存储器902可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器902可在综合网关设备的内部或外部。在特定实施例中,存储器902是非易失性固态存储器。在特定实施例中,存储器902包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存,或者两个或及其以上这些的组合。
处理器901可以通过读取并执行存储器902中存储的计算机程序指令,以执行如下步骤:
获取目标数据库文件的压缩文件;目标数据库文件包括用于查询的索引文件;
对压缩文件执行解压处理,得到目标数据库文件;
将目标数据库文件复制到目标目录下;
将目标目录下的目标数据库文件映射到共享内存;
在共享内存映射的目标数据库文件的索引文件中查找目标信息。
在一个示例中,索引文件包括网际互连协议IP地址索引文件和关联信息索引文件,IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,预设对应关系用于表示不同IP地址对应的不同数字标识,数字标识用于表示对应的IP地址按照地址大小排序的顺序;
相应的,处理器901执行在共享内存映射的目标数据库文件的索引文件中查找目标信息时,可以包括执行如下步骤:
在预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识;
通过二分查找法,在共享内存映射的IP地址索引文件中查找目标数字标识;
在查找到目标数字标识之后,确定目标数字标识所在记录的索引;
根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息。
在一个示例中,关联信息索引文件中的关联信息根据预设对应关系被预先替换为对应的标识;其中,预设对应关系还用于表示不同关联信息对应的不同标识;
处理器901执行根据索引,在关联信息索引文件中查找目标IP地址的关联信息,得到目标信息时,可以包括执行如下步骤:
在关联信息索引文件中查找索引对应的标识;
根据预设对应关系,确定标识对应的关联信息,得到目标信息。
在一个示例中,处理器901执行在获取目标数据库文件的压缩文件之前,还可以包括执行如下步骤:
从数据源获取裸数据文件;
根据预设对应关系,将裸数据文件中的目标字段值替换为对应的标识,得到替换处理后的裸数据文件;其中,预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数;
根据替换处理后裸数据文件,生成目标数据库文件,其中,目标数据库文件包括索引文件;
压缩目标数据库文件,得到压缩文件。
在一个示例中,处理器901在执行获取目标数据库文件的压缩文件之前,还可以包括执行如下步骤:将压缩文件上传至源站;
获取目标数据库文件的压缩文件时,可以包括执行如下步骤:从源站下载压缩文件。
在一个示例中,目标目录为动态文件系统在内存中配置的动态存储空间的地址,处理器901执行将目标目录下的目标数据库文件映射到共享内存时,可以包括执行如下步骤:
基于内存映射文件方法,将目标目录下的目标数据库文件映射到共享内存。
在一个示例中,处理器901执行将目标数据库文件复制到目标目录下时,可以包括执行如下步骤:调用软件开发工具包,通过软件开发工具包将目标数据库文件复制到目标目录下;
处理器901执行将目标目录下的目标数据库文件映射到共享内存时,可以包括执行如下步骤:调用软件开发工具包,通过软件开发工具包将目标目录下的目标数据库文件映射到共享内存。
本公开实施例提供的服务器,通过将目标数据库文件映射到共享内存中,以在共享内存映射的目标数据库文件中查找信息,可以使得所有运行的进程都可以访问同一块共享内存,无需在内存中复制多份目标数据库文件。与相关技术中多个进程在查找信息时,需要在内存中分别的复制一份目标数据库文件的技术方案相比,本公开实施例提供的技术方案可以通过内存映射文件的方法实现多进程共享内存,减少查找信息时目标数据库文件占用的内存空间,避免出现多进程在查询同一份文件时,对内存重复占用的现象,提高了服务器的运算处理速度。
在一个示例中,该服务器900还可包括收发器903和总线904。其中,如图6所示,处理器901、存储器902和收发器903通过总线904连接并完成相互间的通信。
总线904包括硬件、软件或两者。举例来说而非限制,总线904可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围控件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线904可包括一个或多个总线。尽管本公开实施例描述和示出了特定的总线,但本公开考虑任何合适的总线或互连。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种信息查找方法,其特征在于,包括:
获取目标数据库文件的压缩文件;所述目标数据库文件包括用于查询的索引文件;
对所述压缩文件执行解压处理,得到所述目标数据库文件;
将所述目标数据库文件复制到目标目录下;
将所述目标目录下的所述目标数据库文件映射到共享内存;
在所述共享内存映射的所述目标数据库文件的索引文件中查找目标信息。
2.根据权利要求1所述的方法,其特征在于,所述索引文件包括网际互连协议IP地址索引文件和关联信息索引文件,所述IP地址索引文件中的IP地址根据预设对应关系被预先替换为数字标识,所述预设对应关系用于表示不同IP地址对应的不同数字标识,所述数字标识用于表示对应的IP地址按照地址大小排序的顺序;
所述在所述共享内存映射的所述目标数据库文件的索引文件中查找目标信息,包括:
在所述预设对应关系中,查找目标IP地址对应的数字标识,得到目标数字标识;
通过二分查找法,在所述共享内存映射的所述IP地址索引文件中查找所述目标数字标识;
在查找到所述目标数字标识之后,确定所述目标数字标识所在记录的索引;
根据所述索引,在所述关联信息索引文件中查找所述目标IP地址的关联信息,得到所述目标信息。
3.根据权利要求2所述的方法,其特征在于,所述关联信息索引文件中的关联信息根据所述预设对应关系被预先替换为对应的标识;其中,所述预设对应关系还用于表示不同关联信息对应的不同标识;
所述根据所述索引,在所述关联信息索引文件中查找所述目标IP地址的关联信息,得到所述目标信息,包括:
在所述关联信息索引文件中查找所述索引对应的标识;
根据所述预设对应关系,确定所述标识对应的关联信息,得到所述目标信息。
4.根据权利要求1所述的方法,其特征在于,在获取目标数据库文件的压缩文件之前,所述方法还包括:
从数据源获取裸数据文件;
根据预设对应关系,将所述裸数据文件中的所述目标字段值替换为对应的标识,得到替换处理后的所述裸数据文件;其中,所述预设对应关系用于描述不同的目标字段值所对应的不同标识,每个标识所占的字符数小于对应的目标字段值所占的字符数;
根据替换处理后所述裸数据文件,生成所述目标数据库文件,其中,所述目标数据库文件包括所述索引文件;
压缩所述目标数据库文件,得到所述压缩文件。
5.根据权利要求4所述的方法,其特征在于,
在压缩所述目标数据库文件,得到所述压缩文件之后,在获取目标数据库文件的压缩文件之前,所述方法还包括:将所述压缩文件上传至源站;
所述获取目标数据库文件的压缩文件,包括:从所述源站下载所述压缩文件。
6.根据权利要求4所述的方法,其特征在于,所述目标目录为动态文件系统在内存中配置的动态存储空间的地址,所述将所述目标目录下的所述目标数据库文件映射到共享内存,包括:
基于内存映射文件方法,将所述目标目录下的所述目标数据库文件映射到共享内存。
7.一种信息查找装置,其特征在于,包括:
第一获取单元,被配置为执行获取目标数据库文件的压缩文件;所述目标数据库文件包括用于查询的索引文件;
解压单元,被配置为执行对所述压缩文件执行解压处理,得到所述目标数据库文件;
复制单元,被配置为执行将所述目标数据库文件复制到目标目录下;
映射单元,被配置为执行将所述目标目录下的所述目标数据库文件映射到共享内存;
查找单元,被配置为执行在所述共享内存映射的所述目标数据库文件的索引文件中查找目标信息。
8.一种服务器,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的信息查找方法。
9.一种可读存储介质,当所述可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行如权利要求1至6中任一项所述的信息查找方法。
10.一种程序产品,包括指令,其特征在于,所述指令被处理器执行时实现权利要求1-6任一项所述的信息查找方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352496.9A CN113110944A (zh) | 2021-03-31 | 2021-03-31 | 信息查找方法、装置、服务器、可读存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352496.9A CN113110944A (zh) | 2021-03-31 | 2021-03-31 | 信息查找方法、装置、服务器、可读存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113110944A true CN113110944A (zh) | 2021-07-13 |
Family
ID=76713749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110352496.9A Pending CN113110944A (zh) | 2021-03-31 | 2021-03-31 | 信息查找方法、装置、服务器、可读存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113110944A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114416133A (zh) * | 2021-12-30 | 2022-04-29 | 武汉卓目科技有限公司 | 一种嵌入式文件数据更新方法及系统 |
CN114428957A (zh) * | 2021-12-21 | 2022-05-03 | 哈尔滨理工大学 | 一种高准确率的Linux共享内存恶意代码检测方法 |
CN116627568A (zh) * | 2023-05-25 | 2023-08-22 | 成都融见软件科技有限公司 | 一种数据可视化定位系统 |
CN118035264B (zh) * | 2024-04-11 | 2024-06-07 | 成都融见软件科技有限公司 | 一种自动获取网表数据库的方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708825A (zh) * | 2015-07-29 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种数据文件处理方法及系统 |
CN110334069A (zh) * | 2019-07-10 | 2019-10-15 | 中国民航信息网络股份有限公司 | 多进程间的数据共享方法及相关装置 |
-
2021
- 2021-03-31 CN CN202110352496.9A patent/CN113110944A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708825A (zh) * | 2015-07-29 | 2017-05-24 | 腾讯科技(深圳)有限公司 | 一种数据文件处理方法及系统 |
CN110334069A (zh) * | 2019-07-10 | 2019-10-15 | 中国民航信息网络股份有限公司 | 多进程间的数据共享方法及相关装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114428957A (zh) * | 2021-12-21 | 2022-05-03 | 哈尔滨理工大学 | 一种高准确率的Linux共享内存恶意代码检测方法 |
CN114416133A (zh) * | 2021-12-30 | 2022-04-29 | 武汉卓目科技有限公司 | 一种嵌入式文件数据更新方法及系统 |
CN116627568A (zh) * | 2023-05-25 | 2023-08-22 | 成都融见软件科技有限公司 | 一种数据可视化定位系统 |
CN116627568B (zh) * | 2023-05-25 | 2024-02-20 | 成都融见软件科技有限公司 | 一种数据可视化定位系统 |
CN118035264B (zh) * | 2024-04-11 | 2024-06-07 | 成都融见软件科技有限公司 | 一种自动获取网表数据库的方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113110944A (zh) | 信息查找方法、装置、服务器、可读存储介质及程序产品 | |
WO2019201039A1 (zh) | 一种更新应用程序的方法、系统及应用服务器 | |
CN109558525B (zh) | 一种测试数据集的生成方法、装置、设备和存储介质 | |
CN109829287A (zh) | Api接口权限访问方法、设备、存储介质及装置 | |
CN109447820B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
CN104503780A (zh) | 一种提供应用渠道包的方法和装置 | |
CN110572451B (zh) | 一种数据处理的方法、装置及存储介质 | |
CN109558091B (zh) | 查找表存储方法、装置及计算机可读存储介质 | |
CN111182089A (zh) | 容器集群系统和访问大数据组件的方法、装置及服务器 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN109800005A (zh) | 一种客户端热更新方法及装置 | |
CN111163072A (zh) | 机器学习模型中特征值的确定方法、装置及电子设备 | |
CN106227893A (zh) | 一种文件类型获取方法及装置 | |
CN114756306A (zh) | 服务调用方法、装置、设备及存储介质 | |
CN112579595A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN114064594A (zh) | 数据处理方法和装置 | |
CN110990350B (zh) | 日志的解析方法及装置 | |
CN111367870A (zh) | 一种绘本共享方法、装置和系统 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN113495765A (zh) | 业务数据的填充方法和装置、存储介质及电子装置 | |
CN111273942A (zh) | 一种代码生成方法、存储介质、电子设备及系统 | |
CN105430115A (zh) | 一种优化ip库的方法、装置及计算设备 | |
CN106446138B (zh) | 数据包的存储方法及装置 | |
CN109617708B (zh) | 一种埋点日志的压缩方法、设备及系统 | |
CN112035432B (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 |