计算机系统中生成单号的方法、介质及电子设备技术方案

技术编号:20945533 阅读:20 留言:0更新日期:2019-04-24 02:49
本发明专利技术提供一种计算机系统中生成单号的方法、介质及电子设备,所述计算机系统包括第一数据库和第二数据库,其中第一数据库和第二数据库用于存储至少最大值变量,以及第一数据库还用于存储最近生成的单号,所述方法包括:接收生成单号的请求;针对所述生成单号的请求,查找所述第一数据库;如果在所述第一数据库中查找到最近生成的单号,则根据所述最近生成的单号生成新的单号;否则根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号;在所述第一数据库中存储所述新的单号作为所述最近生成的单号。本发明专利技术实现了生成单号的高效性和唯一性,适于在高并发环境下生成单号,并且提高了数据存储的安全性。

The Method, Medium and Electronic Equipment of Generating Single Number in Computer System

The invention provides a method, a medium and an electronic device for generating a single number in a computer system. The computer system includes a first database and a second database, in which the first database and the second database are used to store at least the maximum variable, and the first database is also used to store the recently generated single number. The method includes: receiving a request for generating a single number; and for the said method, receiving a request for generating a single number; A request to generate a single number to find the first database; if a recently generated single number is found in the first database, a new single number is generated from the recently generated single number; otherwise, a new single number is generated from the maximum variable stored in the first database or the second database; and the new single number is stored in the first database as described above. The recently generated single number. The invention realizes the high efficiency and uniqueness of generating a single number, is suitable for generating a single number in a high concurrent environment, and improves the security of data storage.

【技术实现步骤摘要】
计算机系统中生成单号的方法、介质及电子设备
本专利技术涉及数据处理及存储
,尤其涉及一种生成单号的技术,更具体地,涉及一种适于在高并发环境下生成单号的技术。其中,高并发环境指的是同时并行处理大量系统请求的环境。
技术介绍
保单号是投保人向保险公司投保成功后,由保险公司出具的保险合同的编号。当前生成保单号有两种常见的方法:一种方法是在关系型数据库(如Mysql数据库)中存储已生成的最大保单号,通过从关系型数据库中读取已生成的最大保单号并采用序号自增长技术来生成新的保单号;另一种方法是在关系型数据库中存储已生成的所有保单号,通过生成随机数来生成新的保单号,该方法需要在关系型数据库中检索生成的随机数是否已经存在,如果已经存在则需要重新生成随机数。这两种方法都需要频繁地检索关系型数据库,其中,前者需要在每次生成新的保单号之前检索已生成的最大保单号,而后者需要检索已生成的所有保单号以确定所生成的随机数是否与已生成的保单号重复。这些检索导致生成保单号的耗时较长,因此以上两种方法都难以适应高并发环境。内存数据库(如Redis数据库)是一种将数据加载在内存中直接操作的数据库,相对于关系型数据库,内存数据库的数据读写速度要高出几个数量级,并且支持Strings、Lists、Hashes、Sets以及OrderedSets等数据类型的操作。如果将内存数据库用于上述两种方法来生成保单号,则能够较大地提高生成保单号的效率。然而,内存数据库的安全性较低,其本身还存在掉电丢失数据的问题。因此,如何在利用内存数据库高效生成保单号的基础上提高数据存储的安全性,并且保证所生成的保单号的唯一性,是当前亟待解决的问题。
技术实现思路
为解决上述现有技术中存在的问题,根据本专利技术的一个实施例,提供一种计算机系统中生成单号的方法,所述计算机系统包括第一数据库和第二数据库,其中所述第一数据库和所述第二数据库用于存储至少最大值变量,以及所述第一数据库还用于存储最近生成的单号,所述方法包括:接收生成单号的请求;针对所述生成单号的请求,查找所述第一数据库;如果在所述第一数据库中查找到最近生成的单号,则根据所述最近生成的单号生成新的单号;否则根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号;在所述第一数据库中存储所述新的单号作为所述最近生成的单号。上述方法还可以包括:当所述最大值变量与所述新的单号的差值小于预定阈值时,更新所述第一数据库和所述第二数据库中存储的所述最大值变量。上述方法中,根据下式更新所述第一数据库和所述第二数据库中存储的最大值变量:maximum*=maximum+increstep+step其中,maximum表示最大值变量,maximum*表示更新后的最大值变量,increstep为预定的常量,step为所述生成单号的请求中所指定的针对所述请求需要生成的单号数量。上述方法中,根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号包括:如果在所述第一数据库中查找到所述最大值变量,则将所述最大值变量作为所述最近生成的单号,将所述最近生成的单号与预定值相加得到新的单号;否则,将所述第二数据库中的所述最大值变量存储到所述第一数据库,将所述最大值变量作为所述最近生成的单号,将所述最近生成的单号与预定值相加得到新的单号。上述方法还包括根据下式更新所述第一数据库和所述第二数据库中的最大值变量:maximum*=maximum+increstep其中,maximum表示最大值变量,maximum*表示更新后的最大值变量,并且increstep为预定的常量。上述方法中,所述最大值变量的初始值是通过监测同一时间生成单号的请求的并发数而得到的。上述方法中,如果所述生成单号的请求指定需要生成的单号数量不止一个,则所述方法还包括:判断针对所述生成单号的请求已生成的单号数量是否满足所述生成单号的请求,若不满足则查找所述第一数据库;如果在所述第一数据库中查找到最近生成的单号,则根据所述最近生成的单号生成新的单号;否则根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号。上述方法中,所述第一数据库是内存数据库,并且所述第二数据库是关系型数据库。根据本专利技术的一个实施例,还提供一种计算机可读介质,其上存储有计算机程序,当所述计算机程序被处理器执行时实现根据上述实施例所述的方法。根据本专利技术的一个实施例,还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现根据上述实施例所述的方法。本专利技术具有如下的有益效果:引入内存数据库来存储最近生成的单号(即已生成的最大单号),由于内存数据库具有读写高效性,因此降低了生成单号所耗费的时间,适用于在高并发环境下生成多个单号。还引入了关系型数据库,该关系型数据库与内存数据库同步一个最大值变量,在对最近生成的单号查找失败的情况下,该最大值变量用于生成与已生成的单号不重复的新的单号,从而提高了数据存储的安全性。此外,无需在每次生成新的单号时都更新该最大值变量,这减少了与关系型数据库的读写交互,进一步提高了效率。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示意性示出了根据本专利技术一个实施例的生成单号的系统结构图;图2示意性示出了根据本专利技术一个实施例的生成单号的方法的流程图;图3示意性示出了根据本专利技术另一个实施例的生成单号的方法的流程图;图4示意性示出了根据本专利技术又一个实施例的生成单号的方法的流程图。图5示意性示出了适于用来实现本专利技术实施例的电子设备的计算机系统的结构示意图。具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本专利技术将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本专利技术的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本专利技术的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本专利技术的各方面。附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。根据本专利技术的一个实施例,提供一种生成单号的方法,其中单号表示为具有固定位长的数字,单号的类别包括但不限于:保单号、流水号、快递单号、账单号等。该生成单号的方法利用了两个数据库:内存数据库和关系型数据库。概括而言,该生成单号的方法包括:在内存数据库中存储最近生成的单号并且在内存数据库和关系型数据库之间同步一个最大值变量;本文档来自技高网
...

【技术保护点】
1.一种计算机系统中生成单号的方法,所述计算机系统包括第一数据库和第二数据库,其中所述第一数据库和所述第二数据库用于存储至少最大值变量,以及所述第一数据库还用于存储最近生成的单号,所述方法包括:接收生成单号的请求;针对所述生成单号的请求,查找所述第一数据库;如果在所述第一数据库中查找到最近生成的单号,则根据所述最近生成的单号生成新的单号;否则根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号;在所述第一数据库中存储所述新的单号作为所述最近生成的单号。

【技术特征摘要】
1.一种计算机系统中生成单号的方法,所述计算机系统包括第一数据库和第二数据库,其中所述第一数据库和所述第二数据库用于存储至少最大值变量,以及所述第一数据库还用于存储最近生成的单号,所述方法包括:接收生成单号的请求;针对所述生成单号的请求,查找所述第一数据库;如果在所述第一数据库中查找到最近生成的单号,则根据所述最近生成的单号生成新的单号;否则根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号;在所述第一数据库中存储所述新的单号作为所述最近生成的单号。2.根据权利要求1所述的方法,还包括:当所述最大值变量与所述新的单号的差值小于预定阈值时,更新所述第一数据库和所述第二数据库中存储的所述最大值变量。3.根据权利要求2所述的方法,其中,根据下式更新所述第一数据库和所述第二数据库中存储的最大值变量:maximum*=maximum+increstep+step其中,maximum表示最大值变量,maximum*表示更新后的最大值变量,increstep为预定的常量,step为所述生成单号的请求中所指定的针对所述请求需要生成的单号数量。4.根据权利要求1-3中任一项所述的方法,其中,根据在所述第一数据库或所述第二数据库中存储的最大值变量生成新的单号包括:如果在所述第一数据库中查找到所述最大值变量,则将所述最大值变量作为所述最近生成的单号,将所述最近生成的单号与预定值相加得到新的单号;如果在所述第一数据库中没有查找到所述最大值变量,则将所述第二数据库中的所述最大值变量存储到所述第一数...

【专利技术属性】
技术研发人员:倪珍田玉明史立爽
申请(专利权)人:泰康保险集团股份有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1