[发明专利]一种Redis分布式数据库主键id的生成方法及系统、存储介质在审
申请号: | 201810870677.9 | 申请日: | 2018-08-02 |
公开(公告)号: | CN109165216A | 公开(公告)日: | 2019-01-08 |
发明(设计)人: | 陆宇峰;张勇 | 申请(专利权)人: | 杭州启博科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/27;G06F16/28 |
代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 姚宇吉 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 主键 分布式数据库 存储介质 回滚 集群 数据库记录 查询 生成请求 使用习惯 业务发生 正整数 数组 并发 兼容 场景 响应 重复 | ||
1.一种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中的数据减掉一个数组,然后向数据库抛出一个异常,使数据库删除对应插入的数据。
2.根据权利要求1所述的Redis分布式数据库主键id的生成方法,其特征在于,还包括以下步骤:
在将得到的数值或数组与其他数据一起写入数据库后,判断写入数据是否成功;
若写入数据成功,则结束流程。
3.根据权利要求1或2所述的Redis分布式数据库主键id的生成方法,其特征在于,在Redis集群内查询到该数据表主键id对应的Key后,判断是否需要批量添加数据库记录,具体为:
在Redis集群内查询到该数据表主键id对应的Key后,判断增加的步长是否为1;
若判断为是,则在主键id查询值的基础上自动加1,生成一个数值,将得到的数值与其他数据一起写入数据库;
若判断为否,则根据主键id查询值产生一个数组,并将得到的数组与其他数据一起写入数据库。
4.一种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中的数据减掉一个数组,然后向数据库抛出一个异常,使数据库删除对应插入的数据。
5.根据权利要求4所述的Redis分布式数据库主键id的生成系统,其特征在于,还包括判断模块;
所述判断模块,用于在将得到的数值或数组与其他数据一起写入数据库后,判断写入数据是否成功;并在判断写入数据成功后,结束流程。
6.根据权利要求4或5所述的Redis分布式数据库主键id的生成系统,其特征在于,所述数据库写入模块包括写数据单元;
所述写数据单元,用于在Redis集群内查询到该数据表主键id对应的Key后,判断增加的步长是否为1;若判断为是,则在主键id查询值的基础上自动加1,生成一个数值,将得到的数值与其他数据一起写入数据库;若判断为否,则根据主键id查询值产生一个数组,并将得到的数组与其他数据一起写入数据库。
7.一种Redis分布式数据库主键id的生成系统,其特征在于,包括存储器和处理器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器,连接Redis集群和所述存储器,用于根据所述程序代码中的指令执行如权利要求1~3任一项所述的Redis分布式数据库主键id的生成方法。
8.一种存储介质,所述存储介质用于存储程序代码,其特征在于,所述程序代码用于执行如权利要求1~3任一项所述的Redis分布式数据库主键id的生成方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州启博科技有限公司,未经杭州启博科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810870677.9/1.html,转载请声明来源钻瓜专利网。