【技术实现步骤摘要】
一种数据库主键的生成方法、装置、电子设备及介质
[0001]本专利技术实施例涉及计算机技术,尤其涉及一种数据库主键的生成方法、装置、电子设备及介质。
技术介绍
[0002]目前雪花算法这种分布式数据库主键生成方案广泛应用于业界,该算法通过在有限的64个比特位上合理分配比特位表示的含义,来获取到数值型的唯一标识号(以下简称为ID),大大的节省了数据库主键的存储空间消耗。
[0003]然而,目前采用雪花算法生成的ID,可能由于时间超出雪花算法中时间戳的位数而出现与之前生成的ID相重复的情况。还可能由于时钟回拨的问题而出现与之前生成的ID相重复的情况。因此,如何降低ID的重复率是目前亟待解决的问题。
技术实现思路
[0004]本专利技术实施例提供一种数据库主键的生成方法、装置、电子设备及介质,可以解决相关技术中的数据库主键的重复率方面的问题。
[0005]第一方面,本专利技术实施例提供了一种数据库主键的生成方法,包括:
[0006]响应于数据库主键的生成请求,获取本地缓存中上一次生成的历史数 ...
【技术保护点】
【技术特征摘要】
1.一种数据库主键的生成方法,其特征在于,包括:响应于数据库主键的生成请求,获取本地缓存中上一次生成的历史数据库主键对应的历史序列号码和历史差值时间戳,其中,所述历史差值时间戳基于初始时间戳与基准时间戳的差值确定;根据所述历史序列号码确定目标序列号码,根据所述历史差值时间戳确定目标时间戳;根据所述目标时间戳和所述目标序列号码生成所述数据库主键。2.根据权利要求1所述的方法,其特征在于,在根据所述目标时间戳和所述目标序列号码生成所述数据库主键之后,还包括:将所述目标序列号码和所述目标时间戳存储到本地缓存,作为所述历史序列号码和所述历史差值时间戳;确定当前时间与上一次存储时间戳到外部缓存的时间间隔,若所述时间间隔满足预设的时间戳缓存间隔,则获取机器码和所述本地缓存中的所述历史差值时间戳;以所述机器码为键值,采用键值对的形式将所述机器码和所述历史差值时间戳关联存储至外部缓存。3.根据权利要求2所述的方法,其特征在于,在所述本地缓存中不存在上一次生成的历史数据库主键对应的所述历史序列号码和所述历史差值时间戳之时,根据所述历史序列号码确定目标序列号码,所述根据所述历史差值时间戳确定目标时间戳,包括:根据初始序列号码确定目标序列号码,其中,所述初始序列号码为表示序列号码的比特位全部为零时的序列号码;获取所述外部缓存中所述机器码对应的所述历史差值时间戳,将所述历史差值时间戳与所述时间戳缓存间隔的和作为目标时间戳。4.根据权利要求1所述的方法,其特征在于,所述根据所述历史序列号码确定目标序列号码,包括:基于所述历史序列号码的号码值采用数值递增的方式生成参考序列号码;若所述参考序列号码的号码值小于或等于序列号码上限值,则根据所述参考序列号码生成目标序列号码,其中,所述序列号码上限值为表示序列号码的比特位所能表示的最大序列号码值;若所述参考序列号码的号码值大于所述序列号码上限值,则根据表示序列号码的比...
【专利技术属性】
技术研发人员:符波,邓捷,白乐,
申请(专利权)人:平安壹钱包电子商务有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。