[發明專利]一種全局ID生成方法、裝置、設備及存儲介質有效
| 申請號: | 202110449174.6 | 申請日: | 2021-04-25 |
| 公開(公告)號: | CN113064903B | 公開(公告)日: | 2022-12-13 |
| 發明(設計)人: | 鐘江;馬黎明;黃明遠 | 申請(專利權)人: | 小馬國炬(玉溪)科技有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 薛嬌 |
| 地址: | 653100 云南省玉*** | 國省代碼: | 云南;53 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 全局 id 生成 方法 裝置 設備 存儲 介質 | ||
1.一種全局ID生成方法,其特征在于,包括:
如果需要生成指定業務對應ID,則查詢相應的ID記錄;
如果當前為宕機重啟后首次生成所述指定業務對應的ID,則確定所述指定業務的ID記錄中下一ID號段開始值的值為生成的ID,如果當前不為宕機重啟后首次生成所述指定業務對應的ID,則對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID;
判斷生成的ID是否符合單個ID號段結束的要求,如果是,則更新所述指定業務的ID記錄中下一ID號段開始值的值為該下一ID號段開始值當前的值及單個ID號段的長度值之和,否則,確定無需更新所述指定業務的ID記錄中下一ID號段開始值的值。
2.根據權利要求1所述的方法,其特征在于,查詢相應的ID記錄包括:
在Redis中查詢相應的ID記錄;
相應的,查詢相應的ID記錄之后,還包括:
如果在所述Redis中查詢到所述指定業務相應的ID記錄,則執行生成ID的步驟,否則,在數據庫中查詢所述指定業務相應的ID記錄,并將查詢到的ID記錄寫入所述Redis中。
3.根據權利要求2所述的方法,其特征在于,查詢相應的ID記錄之后,還包括:
如果在所述Redis及所述數據庫中均未查詢到相應的ID記錄,則按照預設的與所述指定業務對應的規則生成ID。
4.根據權利要求3所述的方法,其特征在于,按照預設的與所述指定業務對應的規則生成ID,包括:
按照預設的所述指定業務的ID前綴及ID長度值生成相應的ID。
5.根據權利要求4所述的方法,其特征在于,判斷生成的ID是否符合單個ID號段結束的要求,包括:
判斷生成的ID后M位數據的值是否分別與單個ID號段結束的ID后M位數據的值一一對應相同。
6.根據權利要求5所述的方法,其特征在于,對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID,包括:
調用所述Redis的原子自增指令對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID。
7.根據權利要求6所述的方法,其特征在于,在數據庫中查詢所述指定業務相應的ID記錄,包括:
通過雙重加鎖后在數據庫中查詢所述指定業務相應的ID記錄。
8.一種全局ID生成裝置,其特征在于,包括:
查詢模塊,用于:如果需要生成指定業務對應ID,則查詢相應的ID記錄;
生成模塊,用于:如果當前為宕機重啟后首次生成所述指定業務對應的ID,則確定所述指定業務的ID記錄中下一ID號段開始值的值為生成的ID,如果當前不為宕機重啟后首次生成所述指定業務對應的ID,則對所述指定業務相應的ID記錄中的ID號段進行自增加N操作以生成ID;
更新模塊,用于:判斷生成的ID是否符合單個ID號段結束的要求,如果是,則更新所述指定業務的ID記錄中下一ID號段開始值的值為該下一ID號段開始值當前的值及單個ID號段的長度值之和,否則,確定無需更新所述指定業務的ID記錄中下一ID號段開始值的值。
9.一種全局ID生成設備,其特征在于,包括:
存儲器,用于存儲計算機程序;
處理器,用于執行所述計算機程序時實現如權利要求1至7任一項所述全局ID生成方法的步驟。
10.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如權利要求1至7任一項所述全局ID生成方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于小馬國炬(玉溪)科技有限公司,未經小馬國炬(玉溪)科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110449174.6/1.html,轉載請聲明來源鉆瓜專利網。





