CN110046159B - 银行账号存储方法、装置、计算机设备及存储介质 - Google Patents
银行账号存储方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110046159B CN110046159B CN201910190053.7A CN201910190053A CN110046159B CN 110046159 B CN110046159 B CN 110046159B CN 201910190053 A CN201910190053 A CN 201910190053A CN 110046159 B CN110046159 B CN 110046159B
- Authority
- CN
- China
- Prior art keywords
- bank account
- stored
- binary code
- account number
- binary
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/02—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word
- H03M7/04—Conversion to or from weighted codes, i.e. the weight given to a digit depending on the position of the digit within the block or code word the radix thereof being two
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
- H03M7/705—Unicode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明提供一种银行账号存储方法、装置、计算机设备及存储介质,该方法包括:S1,统计多个银行账号中出现频率最高的N组数字组合;步骤S2,建立N组数字组合对应的预设编码规则;S3,读取待存储银行账号;S4,判断待存储银行账号中是否包含N组数字组合中的其中一组或多组,若是,执行步骤S5,否则,执行步骤S6;S5,按所述预设编码规则将待存储银行账号中的一组或多组数字组合分别转换为对应的编码,按逢二进一的规则将除所述一组或多组数字组合以外的其它数字分别转换为对应的编码;S6,按逢二进一的规则将待存储银行账号中的各数字分别转换为对应的编码;S7,存储待存储银行账号对应的二进制编码数组。本发明可节省银行账号的存储空间。
Description
技术领域
本发明涉及数据存储领域,尤其涉及一种银行账号存储方法、装置、计算机设备及存储介质。
背景技术
银行账号是银行为客户提供的一串字符,客户通过账号可以在银行所提供的服务渠道办理银行业务、购买金融产品、享受银行所提供的服务,银行需要通过账号来识别不同的客户。银行账号是具有规则的一串标识符,通常要求账号可以唯一定位到一个客户账户,该账户被客户所持有。
众所周知,银行账号均由数字0-9组成的字符串构成,目前对银行账号的存储方法是采用ascii编码方法将字符串转换为二进制数值后存储于数据库中。例如,假设待存储的账号为6225001234568899,存储时首先将6225001234568899转换为00000110 0000001000000010 00000101 00000000 00000000 00000001 00000010 00000011 0000010000000101 00000110 00001000 00001000 00001001 00001001共计128位编码后再进行存储。
可见,采用上述方法存储银行账号时,由于每个银行账号中的每一个数字均占用二进制数组的一个字节,所以当需要存储的银行账号数量较多时,则将导致银行账号消耗的存储空间大。
发明内容
针对上述现有技术的不足,本发明的目的在于提供一种节省存储空间的银行账号存储方法。
为了实现上述目的,本发明提供一种银行账号存储方法,该方法包括以下步骤:
步骤S1,统计多个银行账号中出现频率最高的N组数字组合,其中,N取1~6之间的整数;
步骤S2,建立所述N组数字组合对应的预设编码规则,所述预设编码规则为:所述N组数字组合的编码分别一一对应于1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码;
步骤S3,读取待存储银行账号;
步骤S4,判断所述待存储银行账号中是否包含所述出现频率最高的N组数字组合中的其中一组或多组数字组合,若是,执行步骤S5,否则,执行步骤S6;
步骤S5,按所述预设编码规则将所述待存储银行账号中的所述一组或多组数字组合分别转换为对应的四位二进制编码,同时按逢二进一的二进制编码规则将所述待存储银行账号中除所述一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
步骤S6,按逢二进一的二进制编码规则将所述待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
步骤S7,存储所述待存储银行账号对应的二进制编码数组。
进一步地,所述步骤S7将所述待存储银行账号对应的二进制编码数组存储于布隆过滤器中。
进一步地,所述步骤S7在将所述待存储银行账号对应的二进制编码数组存储于所述布隆过滤器之前,先检查所述布隆过滤器中是否存在所述待存储银行账号对应的二进制编码数组,所述步骤S7仅在所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组时,才将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器中。
进一步地,所述银行账号存储方法还包括在执行所述步骤S7之前,通过如下步骤生成所述布隆过滤器:
步骤Sa,统计需存储的银行账号对应的二进制编码数组的总数量及平均长度;
步骤Sb,根据所述总数量及平均长度,分配具有若干比特位的位向量,并将所述位向量的各比特位均初始化为0;
步骤Sc,分配若干相互独立的散列函数,所述若干散列函数与所述位向量共同构成所述布隆过滤器。
进一步地,所述步骤S7通过如下步骤检查所述布隆过滤器中是否存在所述待存储银行账号对应的二进制编码数组:
步骤S71,通过k个所述散列函数对所述待存储银行账号对应的二进制编码数组进行计算,得到k个散列值,其中,k为所述步骤Sc分配的所述散列函数的数量;
步骤S72,对所述k个散列值分别进行取M模运算,得到0~M-1之间的k个整数,其中,M为所述步骤Sb分配的所述位向量的比特位的数量;
步骤S73,在所述位向量中,判断所述k个整数索引的各比特位是否均为1,若是,则判定所述布隆过滤器中存在所述待存储银行账号对应的二进制编码数组,否则,判定所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组。
可选地,所述步骤S7通过如下步骤将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器:步骤S74,在所述位向量中,将所述k个整数索引的各比特位分别置1。
为了实现上述目的,本发明还提供一种银行账号存储装置,该装置包括:
高频数字组合统计模块,用于统计多个银行账号中出现频率最高的N组数字组合,其中,N取1~6之间的整数;
编码规则建立模块,用于建立所述N组数字组合对应的预设编码规则,所述预设编码规则为:所述N组数字组合的编码分别一一对应于1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码;
读取模块,用于读取待存储银行账号;
高频数字组合判断模块,用于判断所述待存储银行账号中是否包含所述出现频率最高的N组数字组合中的其中一组或多组数字组合;
第一编码模块,用于在所述高频数字组合判断模块的判断结果为是时,按所述预设编码规则将所述待存储银行账号中的所述一组或多组数字组合分别转换为对应的四位二进制编码,同时按逢二进一的二进制编码规则将所述待存储银行账号中除所述一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
第二编码模块,用于在所述高频数字组合判断模块的判断结果为否时,按逢二进一的二进制编码规则将所述待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
存储模块,用于存储所述待存储银行账号对应的二进制编码数组。
进一步地,所述存储模块将所述待存储银行账号对应的二进制编码数组存储于布隆过滤器中。
进一步地,所述存储模块在将所述待存储银行账号对应的二进制编码数组存储于所述布隆过滤器之前,先检查所述布隆过滤器中是否存在所述待存储银行账号对应的二进制编码数组,所述存储模块仅在所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组时,才将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器中。
进一步地,所述银行账号存储装置还包括布隆过滤器生成模块,所述布隆过滤器生成模块包括:
二进制编码数组统计单元,用于统计需存储的银行账号对应的二进制编码数组的总数量及平均长度;
位向量分配单元,用于根据所述总数量及平均长度,分配具有若干个比特位的位向量,并将所述位向量的各比特位均初始化为0;
散列函数分配单元,用于分配若干相互独立的散列函数,所述若干散列函数与所述位向量共同构成所述布隆过滤器。
进一步地,所述存储模块包括:
散列值计算单元,用于通过k个所述散列函数对所述待存储银行账号对应的二进制编码数组进行计算,得到k个散列值,其中,k为所述散列函数分配单元分配的所述散列函数的数量;
模运算单元,用于对所述k个散列值分别进行取M模运算,得到0~M-1之间的k个整数,其中,M为所述位向量分配单元分配的所述位向量的比特位的数量;
判断单元,用于判断所述位向量中所述k个整数索引的各比特位是否均为1,若是,则判定所述布隆过滤器中存在所述待存储银行账号对应的二进制编码数组,否则,判定所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组。
进一步地,所述存储模块还包括:存储单元,用于在所述判断单元的判断结果为否时,在所述位向量中,将所述k个整数索引的各比特位分别置1,从而实现将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器。
可选地,所述存储模块将所述待存储银行账号对应的二进制编码数组存储于数据库中。
为了实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现前述方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现前述方法的步骤。
通过采用上述技术方案,本发明具有如下有益效果:
本发明通过统计银行账号中出现频率最高的N组数字组合,并将所述N组数字组合的编码分别一一对应于1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码,从而将出现频率最高的各组数字组合的编码分别压缩至四位,减小了银行账号对应的二进制编码数组所需的存储空间。此外,本发明还采用了布隆过滤器来实现银行账号二进制编码数组的存储和去重,能达到更快的存储速度和查询速度,占用更小的存储记录空间,适用于客服系统中的银行账号记录和检索。
附图说明
图1为本发明银行账号存储方法的一个实施例的流程图;
图2为本发明银行账号存储装置的一个实施例的结构框图;
图3为图2中布隆过滤器生成模块的一个实施例的结构框图;
图4为图2中存储模块的一个实施例的结构框图;
图5为本发明计算机设备的一个实施例的硬件架构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
众所周知,银行账号是由数字0-9组成的数字字符串构成,若按常用“逢二进一”规则对银行账号中的0~9进行编码则编码为四位二进制数0000~1001,则剩下1010、1011、1100、1101、1110和1111六个四位二进制编码空余。基于此,本发明提供如图1所示的银行账号存储方法,包括以下步骤:
步骤S1,统计多个银行账号中出现频率最高的N(1≤N≤6)组数字组合,其中,本发明的数字组合是指多个相邻数字组成的组合,一般指相邻的2、3或4个数字组成的组合。假设预定每个数字组合包含2个数字,则首先获取多个银行账号中每两个相邻数字组成的数字组合出现的次数,而后将出现次数最多的N组数字组合作为所述多个银行中出现频率最高的N组数字组合。
步骤S2,建立前述N组数字组合对应的预设编码规则,预设编码规则为:N组数字组合的编码分别一一对应于四位二进制编码1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码。
步骤S3,读取待存储银行账号。
步骤S4,判断待存储银行账号中是否包含出现频率最高的N组数字组合中的其中一组或多组数字组合,若是,执行步骤S5。否则,执行步骤S6。
步骤S5,按预设编码规则将待存储银行账号中的一组或多组数字组合分别转换为对应的四位二进制编码,同时按普通逢二进一的二进制编码规则(即数字0编码为0000,数字1编码为0001,数字2编码为0010,以此类推)将待存储银行账号中除一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成待存储银行账号对应的二进制编码数组。
步骤S6,按逢二进一的二进制编码规则将待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成待存储银行账号对应的二进制编码数组。
步骤S7,存储待存储银行账号对应的二进制编码数组。
例如,假设步骤S1统计银行账号中出现频率最高的六组数字组合,每组数字组合包含2个相邻数字,分别为00、22、99、88、67和35,步骤S2将00、22、99、88、67和35对应的编码设为分别与1010、1011、1100、1101、1110和1111一一对应。当步骤S3读取的待存储银行账号为6225001234568899时,步骤S4将判断到银行账号6225001234568899中包含前述出现频率最高的六组数字组合中的其中四组22、00、88、99,步骤S5将银行账号6225001234568899中的四组数字组合22、00、88、99分别编码为对应的四位二进制编码1011、1010、1101、1100,同时将银行账号中除22、00、88、99以外的其它数字按二进制编码规则编码为对应的四位二进制编码,并按银行账号中各数字的排列顺序排列对应的四位二进制编码,最终生成6225001234568899对应的二进制编码数组0110 1011 0101 1010 0001 0010 0011 01000101 0110 1101 1100,共计48比特位,相对于现有技术的128比特位编码缩短了80个比特位空间。最后,通过步骤S7对生成的二进制编码数组进行存储。
应该理解,本发明也并非必须取六组数字组合,也可以取频率最高的1~5组数字组合,当然取的组数越多,节省的空间越多,因而优选取6组;此外,本发明中的数字组合并非必须由2个相邻数字构成,也可以是由3个、4个或其它个数的相邻数字构成,根据具体需要而定。例如,假设步骤S1仅统计银行账号中出现频率最高的三组数字组合,每组数字组合包含4个数字,分别为6225、8899、3356,步骤S2将6225、8899、3356对应的编码设为分别与1010、1011、1100一一对应。当步骤S3读取的待存储银行账号为6225001234568899时,步骤S4将判断到银行账号6225001234568899中包含出现频率最高的前述三组数字组合中的其中两组6225、8899,步骤S5将银行账号6225001234568899中的两组数字组合6225、8899分别编码为对应的四位二进制编码1010、1011,同时将银行账号中除6225、8899以外的其它数字按二进制编码规则编码为对应的四位二进制编码,并按银行账号中各数字的打列顺序排列对应的四位二进制编码,最终生成6225001234568899对应的二进制数组1010 0000 00000001 0010 0011 0100 0101 0110 1011共计40比特位,相对于现有技术的128比特位编码缩短了88个比特位空间。
在本实施例中,步骤S7优选将待存储银行账号对应的二进制编码数组存储于布隆过滤器中。在允许一定的误报情况下,采用布隆过滤器进行存储能达到更快的存储速度和查询速度,占用更小的存储空间,适用于客服系统中的银行账号记录和检索。为了防止重复存储待存储银行账号对应的二进制编码数组,步骤S7在将待存储银行账号对应的二进制编码数组存储于布隆过滤器之前,先检查布隆过滤器中是否存在待存储银行账号对应的二进制编码数组,若布隆过滤器中不存在待存储银行账号对应的二进制编码数组,则将待存储银行账号对应的二进制编码数组存入布隆过滤器中,否则,忽略待存储银行账号对应的二进制编码数组,即,不再重复将待存储银行账号对应的二进制编码数组存储于布隆过滤器中。
本实施例在执行步骤S7之前,需首先生成布隆过滤器,其中,本实施例生成布隆过滤器的步骤如下:
步骤Sa,统计需存储于布隆过滤器中的银行账号对应的二进制编码数组的总数量n(如需存储1000条银行账号,则n=10000)及平均长度m(如64bit);
步骤Sb,根据统计得到的总数量n及平均长度m,分配具有M个比特位的位向量B,并将位向量B的各比特位均初始化为0,其中,M的取值范围必须满足n*m/8≤M≤n*m/4,例如取M=n*m/8=64×10000/8=80000;
步骤Sc,分配k个相互独立的散列函数Hash0~Hashk,分配的k个相互独立的散列函数Hash0~Hashk与前述具有M个比特位的位向量B共同构成前述布隆过滤器。其中,散列函数的个数k根据具体需要设定,个数越多则布隆过滤器比特位置1的速度越快,布隆过滤器的效率越低;但若过少,则误报率会变高,在本实施例中,取k=6。
在本实施例中,步骤S7通过如下步骤检查布隆过滤器中是否存在待存储银行账号对应的二进制编码数组:
步骤S71,通过前述k个散列函数Hash0~Hashk对待存储银行账号对应的二进制编码数组进行计算,得到k个散列值h0~hk;
步骤S72,对得到的k个散列值h0~hk分别进行取M模运算,得到0~M-1之间的k个整数;
步骤S73,判断位向量中,k个整数索引的各比特位是否均为1,若是,则判定布隆过滤器中存在待存储银行账号对应的二进制编码数组,否则,判定布隆过滤器中不存在待存储银行账号对应的二进制编码数组。
例如,假设生成布隆过滤器时分配6个散列函数Hash0~Hash5,则首先采用散列函数Hash0~Hash5对待存储银行账号对应的二进制编码数组进行运算,从而得到6个散列值h0~h5;而后,对每一个散列值h0~h5分别取80000模运算,得到0~79999之间的6个整数,假设6个整数分别为0、23、78、96、70001、79998;最后,判断位向量B中6个整数索引的各比特位是否均为1,即,判断位向量B中,B[0]、B[23]、B[78]、B[96]、B[70001]、B[79998]是否均为1,若是,则判定布隆过滤器中存在待存储银行账号对应的二进制编码数组,否则,判定布隆过滤器中不存在待存储银行账号对应的二进制编码数组。
若步骤S73判定布隆过滤器中不存在待存储银行账号对应的二进制编码数组,则按如下步骤S74将待存储银行账号对应的二进制编码数组存入布隆过滤器:步骤S74,在位向量B中将步骤S72得到的k个整数0、23、78、96、70001、79998索引的各比特位B[0]、B[23]、B[78]、B[96]、B[70001]、B[79998]分别置1。
应该理解,步骤S7也可以将待存储银行账号对应的二进制编码数组存储至数据库而不是布隆过滤中,不过相比存储于布隆过滤器,存储至数据库中的存储速度和查询速度更慢,占用存储空间更多。当待存储银行账号对应的二进制编码数组存储至数据库后需要进行去重处理,去重方法优选通过如下步骤实现:首先,按预定顺序对存储的各银行账号对应的二进制编码数组进行排序,而后检查经排序后的各银行账号对应的二进制编码数组中,是否有相邻二进制编码数组相同,若相同,则保留相同二进制编码数组中的其中一个而将其它相同的二进制编码数组删除。
实施例二
本实施例提供一种银行账号存储装置,如图2所示,该装置包括:
高频数字组合统计模块11,用于统计多个银行账号中出现频率最高的N组数字组合,其中,N取1~6之间的整数;
编码规则建立模块12,用于建立N组数字组合对应的预设编码规则,预设编码规则为:N组数字组合的编码分别一一对应于四位二进制编码1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码;
读取模块13,用于读取待存储银行账号;
高频数字组合判断模块14,用于判断待存储银行账号中是否包含出现频率最高的N组数字组合中的其中一组或多组数字组合;
第一编码模块15,用于在高频数字组合判断模块的判断结果为是时,按预设编码规则将待存储银行账号中的一组或多组数字组合分别转换为对应的四位二进制编码,同时按逢二进一的二进制编码规则将待存储银行账号中除一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成待存储银行账号对应的二进制编码数组;
第二编码模块16,用于在高频数字组合判断模块的判断结果为否时,按逢二进一的二进制编码规则将待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成待存储银行账号对应的二进制编码数组;
布隆过滤器生成模块17,用于生成布隆过滤器,以存储各银行账号对应的二进制编码数组;
存储模块18,用于将待存储银行账号对应的二进制编码数组存储于布隆过滤器中,其中,存储模块在将待存储银行账号对应的二进制编码数组存储于布隆过滤器之前,需先检查布隆过滤器中是否存在待存储银行账号对应的二进制编码数组,存储模块仅在布隆过滤器中不存在待存储银行账号对应的二进制编码数组时,才将待存储银行账号对应的二进制编码数组存入布隆过滤器中。
在本实施例中,布隆过滤器生成模块17如图3所示,包括:
二进制编码数组统计单元171,用于统计需存储的银行账号对应的二进制编码数组的总数量n及平均长度m;
位向量分配单元172,用于根据前述总数量n及平均长度m,分配具有M个(n*m/8≤M≤n*m/4)个比特位的位向量B,并将位向量B的各比特位均初始化为0;
散列函数分配单元173,用于分配若干k个相互独立的散列函数Hash0~Hashk,散列函数Hash0~Hashk与位向量B共同构成前述布隆过滤器。
在本实施例中,存储模块如图4所示,包括:
散列值计算单元181,用于通过k个散列函数Hash0~Hashk对待存储银行账号对应的二进制编码数组进行计算,得到k个散列值h0~hk;
模运算单元182,用于对k个散列值h0~hk分别进行取M模运算,得到0~M-1之间的k个整数;
判断单元183,用于判断位向量B中k个整数索引的各比特位是否均为1,若是,则判定布隆过滤器中存在待存储银行账号对应的二进制编码数组,否则,判定布隆过滤器中不存在待存储银行账号对应的二进制编码数组;
存储单元184,用于在判断单元的判断结果为否时,在位向量B中,将k个整数索引的各比特位分别置1,从而实现将待存储银行账号对应的二进制编码数组存入布隆过滤器。
实施例三
本发明还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。本实施例的计算机设备20至少包括但不限于:可通过系统总线相互通信连接的存储器21、处理器22,如图5所示。需要指出的是,图5仅示出了具有组件21-22的计算机设备20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器21(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备20的内部存储单元,例如该计算机设备20的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备20的外部存储设备,例如该计算机设备20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备20的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备20的操作系统和各类应用软件,例如实施例二的银行账号存储装置10的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备20的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行银行账号存储装置10,以实现实施例一的银行账号存储方法。
实施例四
本发明还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储银行账号存储装置10,被处理器执行时实现实施例一的银行账号存储方法。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种银行账号存储方法,其特征在于,该方法包括以下步骤:
步骤S1,统计多个银行账号中出现频率最高的N组数字组合,其中,N取1~6之间的整数;
步骤S2,建立所述N组数字组合对应的预设编码规则,所述预设编码规则为:所述N组数字组合的编码分别一一对应于四位二进制编码1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码;
步骤S3,读取待存储银行账号;
步骤S4,判断所述待存储银行账号中是否包含所述出现频率最高的N组数字组合中的其中一组或多组数字组合,若是,执行步骤S5,否则,执行步骤S6;
步骤S5,按所述预设编码规则将所述待存储银行账号中的所述一组或多组数字组合分别转换为对应的四位二进制编码,同时按逢二进一的二进制编码规则将所述待存储银行账号中除所述一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
步骤S6,按逢二进一的二进制编码规则将所述待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
步骤S7,存储所述待存储银行账号对应的二进制编码数组。
2.根据权利要求1所述的银行账号存储方法,其特征在于,所述步骤S7将所述待存储银行账号对应的二进制编码数组存储于布隆过滤器中。
3.根据权利要求2所述的银行账号存储方法,其特征在于,所述步骤S7在将所述待存储银行账号对应的二进制编码数组存储于所述布隆过滤器之前,先检查所述布隆过滤器中是否存在所述待存储银行账号对应的二进制编码数组,所述步骤S7仅在所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组时,才将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器中。
4.根据权利要求3所述的银行账号存储方法,其特征在于,所述银行账号存储方法还包括在执行所述步骤S7之前,通过如下步骤生成所述布隆过滤器:
步骤Sa,统计需存储的银行账号对应的二进制编码数组的总数量及平均长度;
步骤Sb,根据所述总数量及平均长度,分配具有若干比特位的位向量,并将所述位向量的各比特位均初始化为0;
步骤Sc,分配若干相互独立的散列函数,所述若干散列函数与所述位向量共同构成所述布隆过滤器。
5.根据权利要求4所述的银行账号存储方法,其特征在于,所述步骤S7通过如下步骤检查所述布隆过滤器中是否存在所述待存储银行账号对应的二进制编码数组:
步骤S71,通过k个所述散列函数对所述待存储银行账号对应的二进制编码数组进行计算,得到k个散列值,其中,k为所述步骤Sc分配的所述散列函数的数量;
步骤S72,对所述k个散列值分别进行取M模运算,得到0~M-1之间的k个整数,其中,M为所述步骤Sb分配的所述位向量的比特位的数量;
步骤S73,在所述位向量中,判断所述k个整数索引的各比特位是否均为1,若是,则判定所述布隆过滤器中存在所述待存储银行账号对应的二进制编码数组,否则,判定所述布隆过滤器中不存在所述待存储银行账号对应的二进制编码数组。
6.根据权利要求5所述的银行账号存储方法,其特征在于,所述步骤S7通过如下步骤将所述待存储银行账号对应的二进制编码数组存入所述布隆过滤器:步骤S74,在所述位向量中,将所述k个整数索引的各比特位分别置1。
7.根据权利要求1所述的银行账号存储方法,其特征在于,所述步骤S7将所述待存储银行账号对应的二进制编码数组存储于数据库中。
8.一种银行账号存储装置,其特征在于,该装置包括:
高频数字组合统计模块,用于统计多个银行账号中出现频率最高的N组数字组合,其中,N取1~6之间的整数;
编码规则建立模块,用于建立所述N组数字组合对应的预设编码规则,所述预设编码规则为:所述N组数字组合的编码分别一一对应于1010、1011、1100、1101、1110和1111中的其中N个四位二进制编码;
读取模块,用于读取待存储银行账号;
高频数字组合判断模块,用于判断所述待存储银行账号中是否包含所述出现频率最高的N组数字组合中的其中一组或多组数字组合;
第一编码模块,用于在所述高频数字组合判断模块的判断结果为是时,按所述预设编码规则将所述待存储银行账号中的所述一组或多组数字组合分别转换为对应的四位二进制编码,同时缝二进一的按二进制编码规则将所述待存储银行账号中除所述一组或多组数字组合以外的其它数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
第二编码模块,用于在所述高频数字组合判断模块的判断结果为否时,按逢二进一的二进制编码规则将所述待存储银行账号中的各数字分别转换为对应的四位二进制编码,从而生成所述待存储银行账号对应的二进制编码数组;
存储模块,用于存储所述待存储银行账号对应的二进制编码数组。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190053.7A CN110046159B (zh) | 2019-03-13 | 2019-03-13 | 银行账号存储方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190053.7A CN110046159B (zh) | 2019-03-13 | 2019-03-13 | 银行账号存储方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110046159A CN110046159A (zh) | 2019-07-23 |
CN110046159B true CN110046159B (zh) | 2023-04-18 |
Family
ID=67273723
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910190053.7A Active CN110046159B (zh) | 2019-03-13 | 2019-03-13 | 银行账号存储方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110046159B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512308A (zh) * | 2002-12-27 | 2004-07-14 | 佳能株式会社 | 字处理方法、装置及存储介质 |
CN103067022A (zh) * | 2012-12-19 | 2013-04-24 | 中国石油天然气集团公司 | 一种整型数据无损压缩方法、解压缩方法及装置 |
CN103181167A (zh) * | 2010-07-28 | 2013-06-26 | 诺基亚公司 | 用于提供复杂度平衡熵编码的方法和装置 |
CN105099459A (zh) * | 2015-08-14 | 2015-11-25 | 北京标准信源科技有限公司 | 车辆识别码的数字化编码方法 |
CN108234464A (zh) * | 2017-12-25 | 2018-06-29 | 中国铁路总公司 | 用于信号集中监测系统的采集数据高效压缩方法 |
-
2019
- 2019-03-13 CN CN201910190053.7A patent/CN110046159B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512308A (zh) * | 2002-12-27 | 2004-07-14 | 佳能株式会社 | 字处理方法、装置及存储介质 |
CN103181167A (zh) * | 2010-07-28 | 2013-06-26 | 诺基亚公司 | 用于提供复杂度平衡熵编码的方法和装置 |
CN103067022A (zh) * | 2012-12-19 | 2013-04-24 | 中国石油天然气集团公司 | 一种整型数据无损压缩方法、解压缩方法及装置 |
CN105099459A (zh) * | 2015-08-14 | 2015-11-25 | 北京标准信源科技有限公司 | 车辆识别码的数字化编码方法 |
CN108234464A (zh) * | 2017-12-25 | 2018-06-29 | 中国铁路总公司 | 用于信号集中监测系统的采集数据高效压缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110046159A (zh) | 2019-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106326475B (zh) | 一种高效的静态哈希表实现方法及系统 | |
CN104579360B (zh) | 一种数据处理的方法和设备 | |
CN102708183B (zh) | 数据压缩的方法和装置 | |
CN110532425B (zh) | 视频数据分布式存储方法、装置、计算机设备及存储介质 | |
CN103345469A (zh) | 号码集合的存储、查询方法及其装置 | |
CN112035857B (zh) | 数据保护方法、装置、设备及介质 | |
CN104866601A (zh) | 序列号生成方法及装置 | |
WO2020000486A1 (zh) | 数据处理方法及装置 | |
CN112116436A (zh) | 一种智能推荐方法、装置、计算机设备及可读存储介质 | |
CN114268323A (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN117526965A (zh) | 一种银行数据智能压缩存储方法、计算机设备及存储介质 | |
CN110046159B (zh) | 银行账号存储方法、装置、计算机设备及存储介质 | |
CN112131202B (zh) | 一种分布式文件存储和读取方法、终端设备及存储介质 | |
CN110909212B (zh) | 一种银行标识代码的匹配方法和设备 | |
CN108062289B (zh) | 快速傅里叶变换fft地址换序方法、信号处理方法及装置 | |
CN106571909A (zh) | 数据加密方法及装置 | |
CN111371761A (zh) | 一种基于风险识别的信息处理方法及装置 | |
CN114490547A (zh) | 数据压缩方法、装置、设备及介质 | |
CN113779932A (zh) | 数字格式化方法、装置、终端设备及存储介质 | |
CN110489515B (zh) | 通讯录检索的方法、服务器及存储介质 | |
CN110825924B (zh) | 一种数据检测方法、装置及存储介质 | |
CN118036045B (zh) | 标识生成方法、装置及计算机设备、存储介质、程序产品 | |
CN112597170B (zh) | Redis数据库的优化方法与系统 | |
CN116880778B (zh) | 一种基于再生编码及分布式存储的用户隐私保护方法 | |
CN118277390B (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 |