CN111752953A - 标识生成方法、装置、设备以及存储介质 - Google Patents
标识生成方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN111752953A CN111752953A CN202010605121.4A CN202010605121A CN111752953A CN 111752953 A CN111752953 A CN 111752953A CN 202010605121 A CN202010605121 A CN 202010605121A CN 111752953 A CN111752953 A CN 111752953A
- Authority
- CN
- China
- Prior art keywords
- memory database
- identifier
- database
- memory
- relational database
- 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 57
- 230000015654 memory Effects 0.000 claims abstract description 152
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/23—Updating
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了标识生成方法、装置、设备以及存储介质,涉及互联网、软件开发、数据库、云计算等领域。具体实现方案为:在内存数据库按照设定顺序生成标识;每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库。本申请实施例,可以综合内存数据库生成标识速度快以及关系数据库的数据不会丢失的优点,快速生成标识,保证标识的准确性。
Description
技术领域
本申请涉及计算机领域,尤其涉及互联网、软件开发、数据库、云计算等领域。
背景技术
在互联网和软件开发的一些场景中,所有的数据对象都需要一个唯一标识(Identification,ID),用来生成该ID的服务被称为ID生成器(或者发号器)。ID生成器的主要功能包括为数据对象或者其他服务发放全局唯一的ID。数据对象被分配了ID之后才能被存储和使用。
ID生成器包括以下示例:
MySQL自增主键:MySQL数据库可以通过为设置某个字段添加AUTO_INCREMENT(自动增长)属性实现自动分配自增的顺序ID。优势是实现非常简单方便。缺点是MySQL分配ID依赖于插入(insert)操作,由于MySQL的设计导致其性能及其有限,生成ID速度慢,很难实现每秒上万个ID的分配。
发明内容
本申请提供了一种标识生成方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种标识生成方法,包括:
在内存数据库按照设定顺序生成标识;
每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库。
根据本申请的另一方面,提供了一种标识生成装置,包括:
生成模块,用于在内存数据库按照设定顺序生成标识;
存储模块,用于每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库。
根据本申请的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与该至少一个处理器通信连接的存储器;其中,
该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行标识生成方法。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行标识生成方法。
根据本申请实施例,通过内存数据库按照设定顺序生成标识,并且每间隔设定时长,将内存数据库生成的当前标识存储到关系数据库,可以综合内存数据库生成标识速度快以及关系数据库的数据不会丢失的优点,既可以快速生成标识,又能保证标识的准确性。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的标识生成方法的流程图;
图2是根据本申请另一实施例的标识生成方法的流程图;
图3是根据本申请另一实施例的标识生成方法的流程图;
图4是根据本申请另一实施例的标识生成方法的流程图;
图5是本申请实施例的标识生成方法的应用示例的示意图;
图6是根据本申请一实施例的标识生成装置的框图;
图7是根据本申请另一实施例的标识生成装置的框图;
图8是根据本申请实施例的标识生成方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本申请一实施例的标识生成方法的流程图,该方法可以包括:
S101、在内存数据库按照设定顺序生成标识;
S102、每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库。
在本申请实施例中,内存数据库也可以称为缓存数据库。内存数据库的数据是缓存在内存中的,这样内存数据库的访问速度会特别快。因此,内存数据库生成标识的速度快。例如,内存数据库主要有redis、couchbase等。但是内存数据库重启后,数据会丢失或部分丢失。关系数据库也称为关系型数据库,采用关系模型来组织数据的数据库,可以以行和列的形式存储数据。例如,关系数据库可以包括MySQL、Oracle、DB2、MicrosoftSQLServer、MicrosoftAccess等。关系数据库的数据可以存在磁盘上因此关系数据库重启后,数据不会丢失。
示例性地,在内存数据库收到服务请求后,内存数据库可以生成的一个标识,可以将生成的标识发送给请求服务的客户端。再次收到服务请求后,内存数据库可以生成下一个标识,将再次生成的标识发送给本次请求服务的客户端。内存数据库生成标识的设定顺序可以是递增,例如,每收到一次请求,内存数据库保存的标识的值加1。当然加1仅是示例,也可以加0.5、加2、加3或者用其他的数值递增。当然除了递增也可以采用其他算法生成标识,递增是比较简单的方式。每间隔设定时长例如1秒、0.1秒或0.5秒,可以将内存数据库生成的当前标识存储到关系数据库。例如,初始标识为0,在第0.1秒已经从0递增到10000,第0.2秒已经从10001递增到20000。如果间隔0.1秒向关系数据库上传一次内存数据库的当前标识,那么在0.1秒上传的标识为10000,在第0.2秒上传的为20000。上述设定时长和上传的标识的值仅是示例而非限制,也可以为其他的时长和其他的标识的值。每间隔相同的设定时长,内存数据库生成的标识的数量可能相同,也可能不同。
每隔一段时间将内存数据库生成的当前标识存储到关系数据库。后续,如果出现内存数据库重启,数据丢失的情况,可以将关系数据库中存储的内存数据库生成的标识,加载到内存数据库中,恢复内存数据库中用于生成标识的初始值。
在本申请实施例中,通过内存数据库按照设定顺序生成标识,并且每间隔设定时长,将内存数据库生成的当前标识存储到关系数据库,可以综合内存数据库生成标识速度快以及关系数据库的数据不会丢失的优点,既可以快速生成标识,又能保证标识的准确性。
图2是根据本申请另一实施例的标识生成方法的流程图。该实施例的标识生成方法可以包括上述实施例的各步骤。在本实施例中,S102每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库,包括:
S1021、在监控程序监控到该内存数据库连续生成标识的时长达到该设定时长的情况下,将该内存数据库生成的当前标识存储到关系数据库,并重新开始计算该内存数据库连续生成标识的时长。
在本实施例中,可以通过监控程序监控内存数据库的状态,对内存数据库连续生成标识的时间进行计时,如果内存数据库连续生成标识的时长达到设定时长,可以运行一个脚本,将内存数据库生成的当前标识存储到关系数据库。例如,监控程序为supervisor进程管理器,内存数据库为Redis,关系数据库为MySQL。supervisor进程管理器监控到内存数据库连续生成标识的时长为100毫秒,运行脚本S1,将Redis生成的当前标识1000存入MySQL中。然后,supervisor进程管理器将该Redis对应的计时器清零,重新开始计时。如果有多个Redis,在MySQL中可以保存每个Redis与最新存入该Redis生成的当前标识的对应关系。
通过监控程序可以在内存数据库连续生成标识的时长达到设定时长的情况下,将该内存数据库生成的当前标识存储到关系数据库,从而防止内存数据库的数据丢失,保证数据安全。
在一种可能的实施方式中,该标识生成方法还包括:
S201、在监控程序监控到该内存数据库异常的情况下,控制该内存数据库重新启动。例如,supervisor进程管理器监控到Redis不能正常生成标识,可以重新启动该Redis。这样,可以保持系统稳定性,保证内存数据库快速恢复正常运行,从而快速恢复生成以及发送标识,减少业务的延迟时间。
图3是根据本申请另一实施例的标识生成方法的流程图。该实施例的标识生成方法可以包括上述实施例的各步骤。在本实施例中,该标识生成方法还包括:
S301、在启动该内存数据库后,利用该关系数据库中包括的该内存数据库对应的标识,更新该内存数据库中用于生成标识的初始值。该步骤中,可以在第一次启动内存数据库后,例如在S101之前更新内存数据库中用于生成标识的初始值。该步骤中,也可以在S201每次重新启动内存数据库之后更新内存数据库中用于生成标识的初始值。例如,监控程序每次启动内存数据库后,都可以从关系数据库中读出该内存数据库对应的最大标识。
由于每次内存数据库掉电重新启动后,数据会丢失,所以每次重新启动内存数据库之后,可以从关系数据库中加载之前存入的内存数据库对应的标识,作为该内存数据库中本次重启后用于生成标识的初始值。
在每次启动内存数据库后,利用关系数据库中包括的该内存数据库对应的标识,更新该内存数据库中用于生成标识的初始值,可以综合内存数据库生成标识速度快以及关系数据库的数据不会丢失的优点,可以快速生成标识,并保证标识的准确性。
在一种可能的实施方式中,S301还包括:
在监控程序启动该内存数据库的情况下,将该关系数据库中存储的该内存数据库对应的标识加载到该内存数据库;
在收到请求的情况下,在该内存数据库中将从关系数据库加载的标识与参考值相加,得到用于生成标识的初始值。
在第一次监控程序启动内存数据库时,可以运行一个脚本S2,从关系数据库加载默认值例如0。在监控程序重新启动内存数据库时,也可以运行该脚本S2,从关系数据库加载上次存入关系数据库中的该内存数据库对应的标识。由于内存数据库从掉电到重启可能需要一些时间,例如假设内存数据库从掉电到重启需要50毫秒,上次存入标识后,内存数据库有50毫秒还在生成标识。再假设内存数据库是按照加1递增的方式生成标识,可以在从关系数据库中读出的标识的基础上,加上一个参考值。这样,可以减少甚至防止内存数据库生成重复的标识。
在一种可能的实施方式中,该参考值为该内存数据库在设定时长内能够生成的标识数量。该参考值可以按照向关系数据库存储标识所间隔的设定时长来确定。这样,可以防止内存数据库生成重复的标识,保证内存数据库生成的标识的准确性和唯一性。
例如,如果每隔100毫秒,向关系数据库存一次内存数据库生成的当前标识,参考值可以为内存数据库在大于100毫秒的某个时长例如200毫秒、1秒、2秒内生成的标识数量。如果用内存数据库在200毫秒内能够生成的标识数量20000作为参考值,某次内存数据库重启后,从关系数据库读出的该内存数据库对应的标识为321000,则本次内存数据库用于继续生成标识的初始值为331000。
图4是根据本申请另一实施例的标识生成方法的流程图。该实施例的标识生成方法可以包括上述实施例的各步骤。在本实施例中,该标识生成方法还包括:
S401、在该关系数据库启动后,在该关系数据库中建立用于存储该内存数据库的标识的表。
例如,在关系数据库中可以维护内存数据库及其生成的标识的对应关系表。关系数据库中内存数据库及其生成的标识的对应关系也可以理解为键值(Key-Value)对,其中的键(Key)可以为内存数据库的名称或其他基本信息,值(Value)可以为最新存入关系数据库中的内存数据库生成的标识。此外,内存数据库中标识生成器及其生成的标识的对应关系也可以理解为键值(Key-Value)对,其中的键(Key)可以为标识生成器的名称或其他基本信息,值(Value)可以为标识生成器最新生成的标识。
这样,有利于在关系数据库中方便的存储内存数据库重启之前生成的标识。从而在内存数据库重启之后,可以从关系数据库的表中读取内存数据库对应的标识,恢复内存数据库中本次用于生成标识的初始值,继续快速生成标识。
在一种可能的实施方式中,在该内存数据库生成标识的设定顺序为递增的情况下,每间隔设定时长存储到关系数据库中的标识为该内存数据库在该设定时长内生成的最大标识。例如,如果内存数据库中标识的初始值为0,则每次内存数据库收到一个请求,标识可以加1,设定时长为200毫米,第200毫米生成的标识40000为本次在设定时长内生成的最大值,可以将40000存储到关系数据库中。上述示例中的标识是数值,不是字符串,占用内存空间小,递增生成的标识是有序的,具有递增顺序性,能够保证趋势递增,有利于满足多种业务的需求。例如,某个网站要为每个注册进来的用户分配ID,第一个注册的用户ID是1,第二个注册用户ID是2,依次递增,第N个注册用户的ID是N。
在一种应用实例中,可以提供高性能、高可用性的顺序ID生成器。该ID生成器基于高性能的Redis、稳定的MySQL以及supervisor进程管理器(简称supervisor),非常轻量化,可以实现每秒分发几十万ID,在项目中可以发挥非常重要的作用。
MySQL是一个关系型数据库,最主要的特点是开源、轻量级、支持多种引擎。MySQL的数据是存储在磁盘中的,能提供可靠的数据存储,但是受限于磁盘的读写速度,无法像Redis那样支持超高并发访问。
Redis是一个开源的可基于内存的键值(Key-Value)数据库,因为数据都是缓存在内存中,所以性能非常高,支持超高并发访问。在配置满足的情况下,Redis可以达到几十万的QPS。但是由于数据是存储在内存中的,当Redis退出或重启会导致数据丢失或部分丢失,因此可以通过Supervisor管理的脚本在Redis启动时从MySQL中重新读取并写入最新数据。
Supervisor是进程管理程序,能启动、监听和管理用户进程并监控进程状态,当进程中断或者异常退出时能自动重启。在本申请实施例中,Supervisor可以用于自动运行数据同步脚本和管理Redis服务。
一种示例性的ID生成的流程可以包括:
1.在使用ID生成器服务(可以简称ID生成器)之前,可以先启动关系数据库例如MySQL服务(可以简称MySQL),参见图5,并在MySQL中创建一个库和表,设置一个初始的ID为0。配置监控程序例如Supervisor,使得Supervisor启动内存数据库例如Redis服务(可以简称Redis),并监控Redis服务的运行状况。然后再配置Supervisor使其在指定的时机运行脚本。
2.Supervisor还可以管理和监控,Redis和脚本的运行。当Supervisor启动Redis之后,运行脚本(Script-1),将MySQL的初始值加载到Redis中。例如,ID生成器在Redis的键名设为id_generator,对应的初始值是0。
3.当有程序或者服务需要使用ID生成器时,可以直接调用Redis的递增命令例如incr命令。该命令的作用是将键(key)中储存的数字值加一,并返回新的值。如果键(key)不存在,可以将键(key)的值初始化为0再加一。假设第一个服务使用该ID生成器,ID生成器会返回1(0+1,初始值零加一),这样分配给该服务的ID就是1。假设在一秒内N个服务向ID生成器申请了M个ID,这时ID生成器最后分配的ID就是M。
4.定时将Redis中最新的ID存储到MySQL中。
由于Redis的数据是存储在内存中的,所以性能非常高,每秒可分配几十万个ID。大师,Redis异常退出或者重启时,最新的ID数值会丢失,下次有服务再申请ID时,如果分配一个之前已经分配过的ID,会导致ID重复的问题。
本示例中,通过Supervisor、脚本(Script-2)和MySQL配合,可以在Supervisor中配置每隔一段时间运行脚本(Script-2),该脚本可以将Redis中最新的ID存储到MySQL中,间隔时间可以是100ms(100毫秒,甚至更短)。这样,可以将比较新的ID存储到可靠的磁盘中。
5.Redis服务恢复时,利用MySQL中的ID设置Redis服务的新ID。
由于每隔100ms才会将最新的ID写入MySQL,假设脚本在将最新的M写入MySQL之后的50毫秒内分配了8000个ID,这时最新的ID就是M+8000了,但是这时Redis进行异常退出了,M+8000这个数值还没来得及写入到MySQL中。这种情况下,可以通过Supervisor来减少甚至避免ID重复。
Supervisor可以管理和监控Redis,所以当Redis异常退出之后Supervisor可以在毫秒级别立刻重启Redis,使其恢复服务。为了将最新的ID重新写进Redis,先预估出该ID生成器服务每秒最多能生成X个ID,然后将M+X的数值写入到Redis中。这时Redis服务恢复后分配的最新的ID将会是M+X+1。由于Redis每100ms会把数据同步到MySQL,所以MySQL中的数值最多落后于Redis中的数值100ms。该服务每秒最多生成X(假设X是500000)个ID,显然Redis在100ms内生成的ID数会少于500000(上文假设是8000个)。Redis下一次生成的ID就是M+500000+1,显然是大于Redis异常退出前的最后一个ID(M+8000)。因此不会出现ID重复的问题。
这样,虽然Redis生成的ID不再连续了,但是对于很多服务来说ID的连续性并不重要。首先,分配了M个ID,对应M个数据对象,肯定会有某些数据对象被删除过;其次,支持顺序性不代表一定要有连续性,比如1,3,5,7,8,9有递增顺序性,但是没有连续性。
此外,由于MySQL和Redis支持的数值类型都可以是8个字节(8byte,64bit),Redis支持的最大整数非常大,即使采用上述方式跳过一些ID也可以保证ID的正常生成。
本申请实施例的ID生成器服务可以提供非常高性能的ID分发服务,可以下发海量的顺序ID,且具备服务自动恢复性,因此在项目中可以作为可靠的ID生成器服务使用。
图6是根据本申请一实施例的标识生成装置的框图。该装置可以包括:
生成模块41,用于在内存数据库按照设定顺序生成标识;
存储模块42,用于每间隔设定时长,将该内存数据库生成的当前标识存储到关系数据库。
在一种可能的实施方式中,该存储模块具体用于在监控程序监控到该内存数据库连续生成标识的时长达到该设定时长的情况下,将该内存数据库生成的当前标识存储到关系数据库,并重新开始计算该内存数据库连续生成标识的时长。
在一种可能的实施方式中,如图7所示,该装置还包括:
重启模块51,用于在监控程序监控到该内存数据库异常的情况下,控制该内存数据库重新启动。
在一种可能的实施方式中,该装置还包括:
更新模块52,用于在启动该内存数据库后,利用该关系数据库中包括的该内存数据库对应的标识,更新该内存数据库中用于生成标识的初始值。
在一种可能的实施方式中,该更新模块52包括:
加载子模块521,用于在监控程序启动该内存数据库的情况下,将该关系数据库中存储的该内存数据库对应的标识加载到该内存数据库;
加法子模块522,用于在收到请求的情况下,在该内存数据库中将从关系数据库加载的标识与参考值相加,得到用于生成标识的初始值。
在一种可能的实施方式中,该参考值为该内存数据库在设定时长内能够生成的标识数量。
在一种可能的实施方式中,该装置还包括:
建立模块53,用于在该关系数据库启动后,在该关系数据库中建立用于存储该内存数据库的标识的表。
在一种可能的实施方式中,在该内存数据库生成标识的设定顺序为递增的情况下,每间隔设定时长存储到关系数据库中的标识为该内存数据库在该设定时长内生成的最大标识。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图8所示,是根据本申请实施例的标识生成方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图8所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,该存储器存储有可由至少一个处理器执行的指令,以使该至少一个处理器执行本申请所提供的标识生成方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的标识生成方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的标识生成方法对应的程序指令/模块(例如,附图6所示的生成模块41和存储模块42)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的标识生成方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据标识生成方法的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至标识生成方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
标识生成方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图8中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与标识生成方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与虚拟专用服务器(VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。
在本申请实施例中,通过内存数据库按照设定顺序生成标识,并且每间隔设定时长,将内存数据库生成的当前标识存储到关系数据库,可以综合内存数据库生成标识速度快以及关系数据库的数据不会丢失的优点,既可以快速生成标识,又能保证标识的准确性。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (18)
1.一种标识生成方法,包括:
在内存数据库按照设定顺序生成标识;
每间隔设定时长,将所述内存数据库生成的当前标识存储到关系数据库。
2.根据权利要求1所述的方法,其中,每间隔设定时长,将所述内存数据库生成的当前标识存储到关系数据库,包括:
在监控程序监控到所述内存数据库连续生成标识的时长达到所述设定时长的情况下,将所述内存数据库生成的当前标识存储到关系数据库,并重新开始计算所述内存数据库连续生成标识的时长。
3.根据权利要求1所述的方法,其中,还包括:
在监控程序监控到所述内存数据库异常的情况下,控制所述内存数据库重新启动。
4.根据权利要求1至3中任一项所述的方法,其中,还包括:
在启动所述内存数据库后,利用所述关系数据库中包括的所述内存数据库对应的标识,更新所述内存数据库中用于生成标识的初始值。
5.根据权利要求4所述的方法,其中,在启动所述内存数据库后,利用所述关系数据库中包括的所述内存数据库对应的标识,更新所述内存数据库中用于生成标识的初始值,包括:
在监控程序启动所述内存数据库的情况下,将所述关系数据库中存储的所述内存数据库对应的标识加载到所述内存数据库;
在收到请求的情况下,在所述内存数据库中将从关系数据库加载的标识与参考值相加,得到用于生成标识的初始值。
6.根据权利要求5所述的方法,其中,所述参考值为所述内存数据库在设定时长内能够生成的标识数量。
7.根据权利要求1至3中任一项所述的方法,其中,还包括:
在所述关系数据库启动后,在所述关系数据库中建立用于存储所述内存数据库的标识的表。
8.根据权利要求1至3中任一项所述的方法,其中,在所述内存数据库生成标识的设定顺序为递增的情况下,每间隔设定时长存储到关系数据库中的标识为所述内存数据库在所述设定时长内生成的最大标识。
9.一种标识生成装置,包括:
生成模块,用于在内存数据库按照设定顺序生成标识;
存储模块,用于每间隔设定时长,将所述内存数据库生成的当前标识存储到关系数据库。
10.根据权利要求9所述的装置,其中,所述存储模块具体用于在监控程序监控到所述内存数据库连续生成标识的时长达到所述设定时长的情况下,将所述内存数据库生成的当前标识存储到关系数据库,并重新开始计算所述内存数据库连续生成标识的时长。
11.根据权利要求9所述的装置,其中,还包括:
重启模块,用于在监控程序监控到所述内存数据库异常的情况下,控制所述内存数据库重新启动。
12.根据权利要求9至11中任一项所述的装置,其中,还包括:
更新模块,用于在启动所述内存数据库后,利用所述关系数据库中包括的所述内存数据库对应的标识,更新所述内存数据库中用于生成标识的初始值。
13.根据权利要求12所述的装置,其中,所述更新模块包括:
加载子模块,用于在监控程序启动所述内存数据库的情况下,将所述关系数据库中存储的所述内存数据库对应的标识加载到所述内存数据库;
加法子模块,用于在收到请求的情况下,在所述内存数据库中将从关系数据库加载的标识与参考值相加,得到用于生成标识的初始值。
14.根据权利要求13所述的装置,其中,所述参考值为所述内存数据库在设定时长内能够生成的标识数量。
15.根据权利要求9至11中任一项所述的装置,其中,还包括:
建立模块,用于在所述关系数据库启动后,在所述关系数据库中建立用于存储所述内存数据库的标识的表。
16.根据权利要求9至11中任一项所述的装置,其中,在所述内存数据库生成标识的设定顺序为递增的情况下,每间隔设定时长存储到关系数据库中的标识为所述内存数据库在所述设定时长内生成的最大标识。
17.一种电子设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010605121.4A CN111752953A (zh) | 2020-06-29 | 2020-06-29 | 标识生成方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010605121.4A CN111752953A (zh) | 2020-06-29 | 2020-06-29 | 标识生成方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111752953A true CN111752953A (zh) | 2020-10-09 |
Family
ID=72677895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010605121.4A Pending CN111752953A (zh) | 2020-06-29 | 2020-06-29 | 标识生成方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111752953A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199923A (zh) * | 2020-10-20 | 2021-01-08 | 重庆紫光华山智安科技有限公司 | 基于分布式系统的标识生成方法、系统、设备及介质 |
CN112579101A (zh) * | 2020-12-21 | 2021-03-30 | 广州博冠信息科技有限公司 | 任务脚本管控方法、装置、电子设备和存储介质 |
CN114489851A (zh) * | 2022-01-20 | 2022-05-13 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037108B1 (en) * | 2009-07-22 | 2011-10-11 | Adobe Systems Incorporated | Conversion of relational databases into triplestores |
US20150032684A1 (en) * | 2013-07-29 | 2015-01-29 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
CN105871855A (zh) * | 2016-04-11 | 2016-08-17 | 杨鹏 | 一种电子设备标识码生成、存储和识别的方法及系统 |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN109165216A (zh) * | 2018-08-02 | 2019-01-08 | 杭州启博科技有限公司 | 一种Redis分布式数据库主键id的生成方法及系统、存储介质 |
CN110555078A (zh) * | 2019-09-02 | 2019-12-10 | 上海摩库数据技术有限公司 | 分布式id生成 |
-
2020
- 2020-06-29 CN CN202010605121.4A patent/CN111752953A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037108B1 (en) * | 2009-07-22 | 2011-10-11 | Adobe Systems Incorporated | Conversion of relational databases into triplestores |
US20150032684A1 (en) * | 2013-07-29 | 2015-01-29 | Amazon Technologies, Inc. | Generating a multi-column index for relational databases by interleaving data bits for selectivity |
CN105871855A (zh) * | 2016-04-11 | 2016-08-17 | 杨鹏 | 一种电子设备标识码生成、存储和识别的方法及系统 |
CN107918620A (zh) * | 2016-10-10 | 2018-04-17 | 阿里巴巴集团控股有限公司 | 一种数据库的写入方法及装置、电子设备 |
CN109165216A (zh) * | 2018-08-02 | 2019-01-08 | 杭州启博科技有限公司 | 一种Redis分布式数据库主键id的生成方法及系统、存储介质 |
CN110555078A (zh) * | 2019-09-02 | 2019-12-10 | 上海摩库数据技术有限公司 | 分布式id生成 |
Non-Patent Citations (1)
Title |
---|
赖明等主编: "《城市数字化工程 下 示范应用》", 30 June 2006, 中国城市出版社, pages: 165 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199923A (zh) * | 2020-10-20 | 2021-01-08 | 重庆紫光华山智安科技有限公司 | 基于分布式系统的标识生成方法、系统、设备及介质 |
CN112579101A (zh) * | 2020-12-21 | 2021-03-30 | 广州博冠信息科技有限公司 | 任务脚本管控方法、装置、电子设备和存储介质 |
CN114489851A (zh) * | 2022-01-20 | 2022-05-13 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
CN114489851B (zh) * | 2022-01-20 | 2024-02-20 | 飞腾信息技术有限公司 | 内存芯片的启动方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111752953A (zh) | 标识生成方法、装置、设备以及存储介质 | |
US10585691B2 (en) | Distribution system, computer, and arrangement method for virtual machine | |
CN111506401B (zh) | 自动驾驶仿真任务调度方法、装置、电子设备及存储介质 | |
US10445186B1 (en) | Associating a guest application within a virtual machine to create dependencies in backup/restore policy | |
CN111782365B (zh) | 定时任务处理方法、装置、设备及存储介质 | |
CN111694857B (zh) | 存储资源数据的方法、装置、电子设备及计算机可读介质 | |
US20210191780A1 (en) | Method and apparatus for processing development machine operation task, device and storage medium | |
CN111562969B (zh) | 一种区块链的智能合约实现方法、装置、设备和介质 | |
CN109245908B (zh) | 一种主从集群切换的方法和装置 | |
CN110704162B (zh) | 物理机共享容器镜像的方法、装置、设备及存储介质 | |
CN112153167B (zh) | 网际互连协议管理方法、装置、电子设备及存储介质 | |
CN112527899A (zh) | 数据同步的方法、装置、设备以及存储介质 | |
CN113867916A (zh) | 任务处理方法、装置及电子设备 | |
CN109960212B (zh) | 任务发送方法和装置 | |
CN112565356A (zh) | 数据存储方法、装置以及电子设备 | |
CN110598059B (zh) | 数据库操作方法及装置 | |
CN110647570B (zh) | 数据处理方法、装置以及电子设备 | |
CN111782341A (zh) | 用于管理集群的方法和装置 | |
CN111831752A (zh) | 分布式数据库的空间整理方法、装置、设备以及存储介质 | |
CN111782357B (zh) | 标签控制方法及装置、电子设备和可读存储介质 | |
US9754004B2 (en) | Asynchronous notification method for data storage systems | |
CN112527451A (zh) | 容器资源池的管理方法、装置、设备以及存储介质 | |
CN111767149A (zh) | 调度方法、装置、设备及存储设备 | |
CN115061947B (zh) | 资源管理方法、装置、设备和存储介质 | |
CN113239011A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211015 Address after: 100176 Room 101, 1st floor, building 1, yard 7, Ruihe West 2nd Road, economic and Technological Development Zone, Daxing District, Beijing Applicant after: Apollo Zhilian (Beijing) Technology Co.,Ltd. Address before: 2 / F, baidu building, 10 Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |