[发明专利]一种Redis分布式数据库主键id的生成方法及系统、存储介质在审
申请号: | 201810870677.9 | 申请日: | 2018-08-02 |
公开(公告)号: | CN109165216A | 公开(公告)日: | 2019-01-08 |
发明(设计)人: | 陆宇峰;张勇 | 申请(专利权)人: | 杭州启博科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/27;G06F16/28 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 姚宇吉 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 主键 分布式数据库 存储介质 回滚 集群 数据库记录 查询 生成请求 使用习惯 业务发生 正整数 数组 并发 兼容 场景 响应 重复 | ||
本发明公开了一种Redis分布式数据库主键id的生成方法及系统、存储介质,其中方法包括:响应于数据表主键id的生成请求,查询Redis集群内是否包含该数据表主键id对应的Key;在查询到该数据表主键id对应的Key后,判断是否需要批量添加数据库记录,若不需要,则在原步长值的基础上自动加1;若需要,则根据用户选择生成的步长值产生一个数组。本发明提供的Redis分布式数据库主键id的生成方法及系统、存储介质,使用Redis集群来产生主键id,主键id字段能够以正整数的形式持续自增,在高并发的场景下id值不重复;在业务发生问题进行回滚的时候,主键id也可以回滚到增长以前。在使用习惯上,能够较好地兼容以前auto_increament功能带来的主键id方式。
技术领域
本发明涉及分布式计算技术领域,尤其涉及一种Redis(REmote DIctionaryServer,key-value存储系统)分布式数据库主键id的生成方法及系统、存储介质。
背景技术
MySQL(关系型数据库管理系统)数据库的每个表都可以使用自增的功能产生连续的数字id(Identity,身份标识),这一id通常被作为各种数据的主键id,具有唯一性,以保证通过该id的具体数据一一对应。
但是,在MySQL集群的情况下,程序访问到数据库时,每个数据库会根据自己的情况进行自增,因此就会出现多个数据库具有同一个id,但对应的数据并不相同的情况。
目前,现有的主要解决方案是以Twitter(推特)的分布式自增ID算法snowflake为基础的衍生版,利用这一算法生成的主键id过长,构造复杂,不适合代替MySQL原本的auto_increment功能,以生成单纯的数字主键id。
发明内容
本发明提供一种Redis分布式数据库主键id的生成方法及系统、存储介质,能够代替MySQL原本的auto_increament功能,使得主键id字段是一个单纯的数字,而且能够持续自增、在高并发的场景下,id值不重复。
本发明提供的Redis分布式数据库主键id的生成方法,包括以下步骤:
响应于数据表主键id的生成请求,查询Redis集群内是否包含该数据表主键id对应的Key(标识符);若Redis集群内包含该数据表主键id对应的Key,则使用该Key;若Redis集群内不包含该数据表主键id对应的Key,则创建Key;
在Redis集群内查询到该数据表主键id对应的Key后,判断是否需要批量添加数据库记录,若不需要,则在主键id查询的基础上自动加1,生成一个数值;若需要,则根据主键id查询值产生一个数组;并将得到的数值或数组与其他数据一起写入数据库;
当写入数据库失败时,进一步判断增加的步长是否为1;若增加的步长为1,则将Redis中的数据减掉1,然后向数据库抛送一个异常,使数据库删除对应插入的数据;若增加的步长不为1,则将Redis中的数据减掉一个数组,然后向数据库抛出一个异常,使数据库删除对应插入的数据。
作为一种可实施方式,本发明的Redis分布式数据库主键id的生成方法,还包括以下步骤:
在将得到的数值或数组与其他数据一起写入数据库后,判断写入数据是否成功;
若写入数据成功,则结束流程。
作为一种可实施方式,在Redis集群内查询到该数据表主键id对应的Key后,判断是否需要批量添加数据库记录,具体为:
在Redis集群内查询到该数据表主键id对应的Key后,判断增加的步长是否为1;
若判断为是,则在主键id查询值的基础上自动加1,生成一个数值,将得到的数值与其他数据一起写入数据库;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州启博科技有限公司,未经杭州启博科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810870677.9/2.html,转载请声明来源钻瓜专利网。