CN110457059A - 一种基于redis的序列号生成方法及装置 - Google Patents
一种基于redis的序列号生成方法及装置 Download PDFInfo
- Publication number
- CN110457059A CN110457059A CN201910582668.4A CN201910582668A CN110457059A CN 110457059 A CN110457059 A CN 110457059A CN 201910582668 A CN201910582668 A CN 201910582668A CN 110457059 A CN110457059 A CN 110457059A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- serial number
- redis
- codes
- current value
- 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 42
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 31
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 238000013481 data capture Methods 0.000 claims description 3
- 238000007599 discharging Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 5
- 230000003321 amplification Effects 0.000 description 4
- 238000003199 nucleic acid amplification method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于redis的序列号生成方法及装置,该方法包括:接收序列号生成请求,序列号生成请求至少包括序列号编码,序列号编码为用于区别多个序列号的唯一标识;查询序列号编码在redis中是否存在;若不存在,则请求获取所述序列号编码的共享锁,若获取成功,则查询数据库中序列号编码的相关信息以及生成规则,相关信息至少包括序列号的当前值;根据相关信息以及生成规则生成序列号后,释放共享锁。本发明通过采用共享锁措施,防止大批量并发对数据库造成压力以及造成结果串重复可能性,采用按跨度值更新的措施,保证序列号的唯一性。
Description
技术领域
本发明涉及软件开发技术领域,特别涉及一种基于redis的序列号生成方法及装置。
背景技术
为保证服务的可用性和响应性能,系统都会采用服务器的集群部署,这就带来了在多JVM(指Java虚拟机)的场景下如何生成唯一序列号的问题。现有技术中,通常采用的方式如下:
1、UUID,指通用唯一识别码(Universally Unique Identifier),是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。由于UUID采用了时间戳和全局唯一的IEEE机器识别号,因此可以保证每次生成的UUID是唯一的,优点是方便快捷,性能高。缺点是结果串过长,标准的UUID格式为:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX(8-4-4-4-12)。若只是片面的截取字符串,又会破坏其唯一性,因此片面截取字符串的方式并不能解决上述问题;
2、数据库Sequence,指数据库系统按照一定规则自增的数字序列,因为自增所以不会重复,即由数据库序列保证结果串的唯一性,优点是可以通过设置定义长度和增幅,且生成的数字序列是有序的。缺点是性能一般受限于数据库性能,且不是所有数据库都支持Sequence,例如,目前互联网行业广泛使用的Mysql、SQLsever等数据库就不支持该业务。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于redis的序列号生成方法及装置,以克服现有技术中,无法在集群环境高并发场景下,无法保证获取的序列号是全局唯一且有序等问题。
为解决上述一个或多个技术问题,本发明采用的技术方案是:
一方面,提供了一种基于redis的序列号生成方法,该方法包括如下步骤:
接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识;
查询所述序列号编码在redis中是否存在;
若不存在,则请求获取所述序列号编码的共享锁,若获取成功,则查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值;
根据所述相关信息以及所述生成规则生成序列号后,释放所述共享锁。
进一步的,所述相关信息还包括所述序列号编码的对应的跨度值以及起始值,所述根据所述相关信息以及所述生成规则生成序列号包括:
校验所述当前值与所述起始值是否一致;
若一致,则根据所述当前值以及所述生成规则生成序列号;
若不一致,则以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
进一步的,若查询出所述序列号编码在redis中存在,所述方法还包括:
根据所述序列号编码对应的当前值以及生成规则生成序列号;
将所述序列号作为所述序列号编码新的当前值更新至数据库中。
进一步的,所述将所述序列号作为所述序列号编码新的当前值更新至数据库中包括:
获取所述序列号编码对应的跨度值,判断生成的所述序列号是否能被所述跨度值整除,若是,则将数据库中所述序列号编码对应的当前值更新为所述序列号,否则,不更新。
进一步的,若请求获取所述序列号编码的共享锁失败,所述方法还包括:
重新在redis中查找所述序列号编码是否存在或返回异常报错。
另一方面,提供了一种基于redis的序列号生成装置,所述装置包括:
任务接收模块,用于接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识;
第一查询模块,用于查询所述序列号编码在redis中是否存在;
共享锁请求模块,用于请求获取所述序列号编码的共享锁;
第二查询模块,用于查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值;
序列号生成模块,用于根据所述相关信息以及所述生成规则生成序列号;
共享锁释放模块,用于释放所述共享锁。
进一步的,所述序列号生成模块包括:
数据校验单元,用于校验所述当前值与所述起始值是否一致;
序列号生成单元,用于根据所述当前值以及所述生成规则生成序列号,以及以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
进一步的,所述装置还包括:
数据更新模块,用于将所述序列号作为所述序列号编码新的当前值更新至数据库中。
进一步的,所述数据更新模块包括:
数据获取单元,用于获取所述序列号编码对应的跨度值;
更新判断单元,用于判断生成的所述序列号是否能被所述跨度值整除;
数据更新单元,用于将数据库中所述序列号编码对应的当前值更新为所述序列号。
进一步的,所述装置还包括:
异常报错模块,用于若请求获取所述序列号编码的共享锁失败,则返回异常报错。
本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的基于redis的序列号生成方法及装置,回写数据库(DB)的时候采用共享锁措施,防止大批量并发对数据库造成压力以及造成结果串重复可能性;
2、本发明实施例提供的基于redis的序列号生成方法及装置,采用主动触发式回写数据库,且采用按跨度值更新的措施,避过redis宕机后可能产生的重复值,保证序列号的唯一性;
3、本发明实施例提供的基于redis的序列号生成方法及装置,通过基于redis的单线程多路并发的特性生成全局唯一有序的序列号,同时支持自由定制的特性,通过提供统一的服务满足特定业务需求。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的基于redis的序列号生成方法的流程图;
图2是根据一示例性实施例示出的基于redis的序列号生成装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前软件开发工程中,有产品需求要用到定长的有序的序列号,常用的方案存在一些弊端或者不支持,本发明实施例提供一种基于redis的单线程多路并发的特性生成全局唯一有序序列号的方法,同时该方法支持类似Sequence的自由定制的特性,通过提供统一的服务满足特定业务需求。本发明实施例主要适用于一些单号或者编码按业务要求都是定长的业务场景,例如,生成16位的商品编码或生成12位的订单号等。这里需要说明的是,本发明实施例中,redis采用sentinel做高可用,并且由于redis的主备模式存在master和slave同步问题,一旦master出现问题,切换slave的时候数据不同步,无法确保序列号唯一性,因此本发明实施例中的redis采用双主模式。
图1是根据一示例性实施例示出的基于redis的序列号生成方法的流程图,参照图1所示,该方法包括如下步骤:
接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识。
具体的,本发明实施例提供的序列号生成方法是基于redis实现的,redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会切换到另一个线程。也就是说,如果把一个事务可看作是一个程序,它要么完整的被执行,要么完全不执行,这种特性就叫原子性。
接收到的用户发来的序列号生成请求(即业务请求)至少包括序列号编码,序列号编码是用于区别多个序列号的唯一标识,这里的多个序列号是指不同类型的序列号,例如,商品编码的序列号编码productCode,订单号的序列号编码poCode。总之,在本发明实施例中,序列号编码是与商品、订单等待生成序列号的对象的类型相关的唯一标识。
查询所述序列号编码在redis中是否存在。
具体的,接收到的用户发来的序列号生成请求后,首先从该请求中提取序列号编码,然后查询redis中是否存在该序列号编码。
若不存在,则请求获取所述序列号编码的共享锁,若获取成功,则查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值。
具体的,若是redis中不存在该序列号编码,则尝试请求获取该序列号编码的共享锁。这里需要说明的是,本发明实施例中,设置共享锁只会给一个用户请求,即若是有用户获取到该序列号编码的共享锁了,那么其他用户关于该序列号编码的共享锁的请求就不会被接收,就其他用户的请求均会失败。给序列号编码加上共享锁后,其他用户可以并发读取、查询该序列号编码数据,但是不能进行修改、增加、删除等操作。综上所述,采用共享锁可以在redis失效后,大量请求并发到数据库,一方面降低对数据库压力,另一方面防止重复对redis赋值无法保证序列号唯一性。
共享锁获取成功后,查询数据库,获取序列号编码的相关信息以及生成规则,其中相关信息至少包括序列号的当前值。本发明实施例中,会在数据库中预先配置序列号编码的相关信息,包括描述、起始值、单次增幅、序列号长度、当前值以及跨度值等。其中:
描述(serialDesc),用于描述该序列号基本信息
起始值(startNum),指序列号的初始值
单次增幅(increment),指增量的步长
序列号长度(len),指序列号长度
当前值(current),指当前序列号的值,非准确的
跨度值(interval),主要配合当前值,异常情况下重设redis序列值。
另外,还需预先配置与序列号编码对应的生成规则,例如,针对本次序列号生成请求,在当前值的基础上按照单次增幅增长,生成新的序列号返回给用户。这里需要说明的是,本发明实施例中,对序列号的长度没有固定要求,序列号的长度可以根据用户的实际需求进行配置,本发明实施例中,序列号长度等信息支持动态配置,具体实施时,用户只需在数据库中对序列号编码的相关信息以及生成规则进行修改即可。
另外,采用共享锁措施,一方面可以防止大批量数据(如序列号生成请求)并发,对数据库造成压力,另一方面防止重复对redis赋值,导致序列号重复,从而无法保证序列号唯一性。
根据所述相关信息以及所述生成规则生成序列号后,释放所述共享锁。
具体的,本发明实施例中,根据相关信息以及生成规则生成序列号时调用redis方法中的incrBy(serialNum,increment)。
作为一种较优的实施方式,本发明实施例中,所述相关信息还包括所述序列号编码的对应的跨度值以及起始值,所述根据所述相关信息以及所述生成规则生成序列号包括:
校验所述当前值与所述起始值是否一致;
若一致,则根据所述当前值以及所述生成规则生成序列号;
若不一致,则以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
具体的,本发明实施例中,共享锁获取成功后,首先查询数据库(DB)将序列号编码(serialNum)对应的相关数据以及生成规则等信息取出来。然后判断从数据库中获取到的相关数据中的当前值(current)和起始值(startNum)是否一致,若一致,则直接根据当前值以及生成规则调用redis方法中的incrBy(serialNum,increment)生成序列号,若不一致,则需要将当前值(current)和跨度值(interval)求和赋值给当前值(current),即生成新的当前值(current)更新到redis中,然后按照所述生成规则调用redis方法中的incrBy(serialNum,increment)生成序列号后释放共享锁。
作为一种较优的实施方式,本发明实施例中,若查询出所述序列号编码在redis中存在,所述方法还包括:
根据所述序列号编码对应的当前值以及生成规则生成序列号;
将所述序列号作为所述序列号编码新的当前值更新至数据库中。
具体的,若是在redis中查询出序列号编码存在,则获取序列号编码对应的当前值以及生成规则调用redis方法中的incrBy(serialNum,increment)生成序列号。然后将序列号作为序列号编码新的当前值更新至数据库中,以供下一条序列号生成请求使用。这里需要说明的是,这里的序列号编码对应的当前值以及生成规则也是预先配置的,具体配置内容及方式请参照上述内容,这里不再一一赘述。
作为一种较优的实施方式,本发明实施例中,所述将所述序列号作为所述序列号编码新的当前值更新至数据库中包括:
获取所述序列号编码对应的跨度值,判断生成的所述序列号是否能被所述跨度值整除,若是,则将数据库中所述序列号编码对应的当前值更新为所述序列号,否则,不更新。
具体的,本发明实施例中,采用跨度值参与更新,具体实施时,先获取到序列号编码对应的跨度值,然后判断新生成的序列号是否能被跨度值整除,若是,则将数据库中序列号编码对应的当前值更新为新生成的序列号,否则,不对数据库中的当前值进行更新。这里需要说明的是,一方面,设置当前值的更新条件为新生成的序列号能被跨度值整除,能够保证后续使用当前值和跨度值(interval)求和生成新的当前值参与序列号生成时,减少覆盖的概率,从而保证生成的序列号的唯一性。另一方面,采用跨度更新的措施,还可以减少更新频次,从而减少数据库的数据压力。
作为一种较优的实施方式,本发明实施例中,若请求获取所述序列号编码的共享锁失败,所述方法还包括:
重新在redis中查找所述序列号编码是否存在或返回异常报错。
具体的,在请求获取序列号编码的共享锁失败时,可以重新尝试在redis中查找序列号编码是否存在,或者返回异常报错提醒用户。除此之外,在上述生成序列号、更新数据库中当前值、到数据库查询数据的过程中,若是出现异常,也可以设置返回异常报错。
图2是根据一示例性实施例示出的基于redis的序列号生成装置的结构示意图,参照图2所示,该装置包括:
任务接收模块,用于接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识;
第一查询模块,用于查询所述序列号编码在redis中是否存在;
共享锁请求模块,用于请求获取所述序列号编码的共享锁;
第二查询模块,用于查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值;
序列号生成模块,用于根据所述相关信息以及所述生成规则生成序列号;
共享锁释放模块,用于释放所述共享锁。
作为一种较优的实施方式,本发明实施例中,所述序列号生成模块包括:
数据校验单元,用于校验所述当前值与所述起始值是否一致;
序列号生成单元,用于根据所述当前值以及所述生成规则生成序列号,以及以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
数据更新模块,用于将所述序列号作为所述序列号编码新的当前值更新至数据库中。
作为一种较优的实施方式,本发明实施例中,所述数据更新模块包括:
数据获取单元,用于获取所述序列号编码对应的跨度值;
更新判断单元,用于判断生成的所述序列号是否能被所述跨度值整除;
数据更新单元,用于将数据库中所述序列号编码对应的当前值更新为所述序列号。
作为一种较优的实施方式,本发明实施例中,所述装置还包括:
异常报错模块,用于若请求获取所述序列号编码的共享锁失败,则返回异常报错。
具体的,异常报错模块还用于生成序列号、更新数据库中当前值、到数据库查询数据等过程中出现异常时,返回异常报错。
综上所述,本发明实施例提供的技术方案带来的有益效果是:
1、本发明实施例提供的基于redis的序列号生成方法及装置,回写数据库(DB)的时候采用共享锁措施,防止大批量并发对数据库造成压力以及造成结果串重复可能性;
2、本发明实施例提供的基于redis的序列号生成方法及装置,采用主动触发式回写数据库,且采用按跨度值更新的措施,避过redis宕机后可能产生的重复值,保证序列号的唯一性;
3、本发明实施例提供的基于redis的序列号生成方法及装置,通过基于redis的单线程多路并发的特性生成全局唯一有序的序列号,同时支持自由定制的特性,通过提供统一的服务满足特定业务需求。
需要说明的是:上述实施例提供的基于redis的序列号生成装置在触发序列号生成业务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于redis的序列号生成装置与基于redis的序列号生成方法实施例属于同一构思,即该装置是基于该基于redis的序列号生成方法的,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于redis的序列号生成方法,其特征在于,所述方法包括如下步骤:
接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识;
查询所述序列号编码在redis中是否存在;
若不存在,则请求获取所述序列号编码的共享锁,若获取成功,则查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值;
根据所述相关信息以及所述生成规则生成序列号后,释放所述共享锁。
2.根据权利要求1所述的基于redis的序列号生成方法,其特征在于,所述相关信息还包括所述序列号编码的对应的跨度值以及起始值,所述根据所述相关信息以及所述生成规则生成序列号包括:
校验所述当前值与所述起始值是否一致;
若一致,则根据所述当前值以及所述生成规则生成序列号;
若不一致,则以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
3.根据权利要求1或2所述的基于redis的序列号生成方法,其特征在于,若查询出所述序列号编码在redis中存在,所述方法还包括:
根据所述序列号编码对应的当前值以及生成规则生成序列号;
将所述序列号作为所述序列号编码新的当前值更新至数据库中。
4.根据权利要求3所述的基于redis的序列号生成方法,其特征在于,所述将所述序列号作为所述序列号编码新的当前值更新至数据库中包括:
获取所述序列号编码对应的跨度值,判断生成的所述序列号是否能被所述跨度值整除,若是,则将数据库中所述序列号编码对应的当前值更新为所述序列号,否则,不更新。
5.根据权利要求1或2所述的基于redis的序列号生成方法,其特征在于,若请求获取所述序列号编码的共享锁失败,所述方法还包括:
重新在redis中查找所述序列号编码是否存在或返回异常报错。
6.一种基于redis的序列号生成装置,其特征在于,所述装置包括:
任务接收模块,用于接收序列号生成请求,所述序列号生成请求至少包括序列号编码,所述序列号编码为用于区别多个序列号的唯一标识;
第一查询模块,用于查询所述序列号编码在redis中是否存在;
共享锁请求模块,用于请求获取所述序列号编码的共享锁;
第二查询模块,用于查询数据库中所述序列号编码的相关信息以及生成规则,所述相关信息至少包括序列号的当前值;
序列号生成模块,用于根据所述相关信息以及所述生成规则生成序列号;
共享锁释放模块,用于释放所述共享锁。
7.根据权利要求6所述的基于redis的序列号生成装置,其特征在于,所述序列号生成模块包括:
数据校验单元,用于校验所述当前值与所述起始值是否一致;
序列号生成单元,用于根据所述当前值以及所述生成规则生成序列号,以及以所述当前值和跨度值的和作为新的当前值,并按照所述生成规则生成序列号。
8.根据权利要求6或7所述的基于redis的序列号生成装置,其特征在于,所述装置还包括:
数据更新模块,用于将所述序列号作为所述序列号编码新的当前值更新至数据库中。
9.根据权利要求8所述的基于redis的序列号生成装置,其特征在于,所述数据更新模块包括:
数据获取单元,用于获取所述序列号编码对应的跨度值;
更新判断单元,用于判断生成的所述序列号是否能被所述跨度值整除;
数据更新单元,用于将数据库中所述序列号编码对应的当前值更新为所述序列号。
10.根据权利要求6或7所述的基于redis的序列号生成装置,其特征在于,所述装置还包括:
异常报错模块,用于若请求获取所述序列号编码的共享锁失败,则返回异常报错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582668.4A CN110457059A (zh) | 2019-06-28 | 2019-06-28 | 一种基于redis的序列号生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582668.4A CN110457059A (zh) | 2019-06-28 | 2019-06-28 | 一种基于redis的序列号生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110457059A true CN110457059A (zh) | 2019-11-15 |
Family
ID=68481869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910582668.4A Pending CN110457059A (zh) | 2019-06-28 | 2019-06-28 | 一种基于redis的序列号生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457059A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625543A (zh) * | 2020-05-27 | 2020-09-04 | 贵州易鲸捷信息技术有限公司 | 一种基于HBase表实现全局单调递增的序列的方法 |
CN112688799A (zh) * | 2020-12-11 | 2021-04-20 | 中国人寿保险股份有限公司 | 基于Redis集群的客户号分配方法以及分配装置 |
CN113239043A (zh) * | 2021-05-17 | 2021-08-10 | 上海中通吉网络技术有限公司 | 在分布式系统中高效生成唯一值的方法及设备 |
CN113806384A (zh) * | 2021-08-19 | 2021-12-17 | 紫光云(南京)数字技术有限公司 | 基于redis的分配递增整型数据的方法 |
CN113822015A (zh) * | 2020-06-16 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 序列号生成方法、装置、电子设备及计算机可读介质 |
CN114172792A (zh) * | 2021-12-13 | 2022-03-11 | 武汉众邦银行股份有限公司 | 一种保证服务高可用的序号生成方法的实现方法及装置 |
CN117635273A (zh) * | 2023-12-12 | 2024-03-01 | 苏州思客信息技术有限公司 | 业务订单号生成方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777258A (zh) * | 2016-12-28 | 2017-05-31 | 银江股份有限公司 | 一种医疗大数据存储中Hbase行键的编码及压缩方法 |
-
2019
- 2019-06-28 CN CN201910582668.4A patent/CN110457059A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777258A (zh) * | 2016-12-28 | 2017-05-31 | 银江股份有限公司 | 一种医疗大数据存储中Hbase行键的编码及压缩方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111625543A (zh) * | 2020-05-27 | 2020-09-04 | 贵州易鲸捷信息技术有限公司 | 一种基于HBase表实现全局单调递增的序列的方法 |
CN111625543B (zh) * | 2020-05-27 | 2023-08-25 | 贵州易鲸捷信息技术有限公司 | 一种基于HBase表实现全局单调递增的序列的方法 |
CN113822015A (zh) * | 2020-06-16 | 2021-12-21 | 北京沃东天骏信息技术有限公司 | 序列号生成方法、装置、电子设备及计算机可读介质 |
CN112688799A (zh) * | 2020-12-11 | 2021-04-20 | 中国人寿保险股份有限公司 | 基于Redis集群的客户号分配方法以及分配装置 |
CN112688799B (zh) * | 2020-12-11 | 2023-05-12 | 中国人寿保险股份有限公司 | 基于Redis集群的客户号分配方法以及分配装置 |
CN113239043A (zh) * | 2021-05-17 | 2021-08-10 | 上海中通吉网络技术有限公司 | 在分布式系统中高效生成唯一值的方法及设备 |
CN113239043B (zh) * | 2021-05-17 | 2024-05-03 | 上海中通吉网络技术有限公司 | 在分布式系统中高效生成唯一值的方法及设备 |
CN113806384A (zh) * | 2021-08-19 | 2021-12-17 | 紫光云(南京)数字技术有限公司 | 基于redis的分配递增整型数据的方法 |
CN114172792A (zh) * | 2021-12-13 | 2022-03-11 | 武汉众邦银行股份有限公司 | 一种保证服务高可用的序号生成方法的实现方法及装置 |
CN114172792B (zh) * | 2021-12-13 | 2023-07-28 | 武汉众邦银行股份有限公司 | 一种保证服务高可用的序号生成方法的实现方法及装置 |
CN117635273A (zh) * | 2023-12-12 | 2024-03-01 | 苏州思客信息技术有限公司 | 业务订单号生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457059A (zh) | 一种基于redis的序列号生成方法及装置 | |
US11397721B2 (en) | Merging conflict resolution for multi-master distributed databases | |
CN107688500B (zh) | 一种分布式任务处理方法、装置、系统及设备 | |
US20020035559A1 (en) | System and method for a decision engine and architecture for providing high-performance data querying operations | |
CN110764700B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
US7328213B2 (en) | Transaction processing method, transaction control apparatus and program thereof | |
CN106886371B (zh) | 缓存数据处理方法及装置 | |
CN105468720A (zh) | 集成分布式数据处理系统的方法、相应系统及其数据处理方法 | |
CN113220795B (zh) | 基于分布式存储的数据处理方法、装置、设备以及介质 | |
CN111722918A (zh) | 业务标识码生成方法、装置、存储介质及电子设备 | |
CN111225012A (zh) | 事务处理方法、装置和设备 | |
US5742812A (en) | Parallel network communications protocol using token passing | |
CN108566291A (zh) | 一种事件处理的方法、服务器及系统 | |
CN107181773A (zh) | 分布式存储系统的数据存储及数据管理方法、设备 | |
CN109586970A (zh) | 资源分配方法、装置及系统 | |
CN113849320A (zh) | 开发方法、控制方法及计算设备 | |
CN110555064A (zh) | 用于保险业务的数据服务系统及方法 | |
CN112632093A (zh) | 工单处理方法、设备、系统、存储介质及程序产品 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN112749172A (zh) | 一种缓存与数据库之间的数据同步方法及系统 | |
CN113791740B (zh) | 一种记录对象存储桶统计计数的方法 | |
CN107590199B (zh) | 一种面向内存的多线程数据库设计方法 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN115168384A (zh) | 数据一致性处理方法、装置、服务器及存储介质 | |
CN114281794A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |