前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见的ID生成策略 – IdUtil – Hutool的ID生成工具

常见的ID生成策略 – IdUtil – Hutool的ID生成工具

作者头像
收心
发布2023-03-06 20:27:25
9K0
发布2023-03-06 20:27:25
举报
文章被收录于专栏:Java实战博客

本页目录

代码语言:txt
复制
- [IdUtil案例](https://www.zanglikun.com/#idutil%e6%a1%88%e4%be%8b)

IdUtil案例

演示了:UUID、nanoID、objectID、snowflake

代码语言:javascript
复制
    public static void main(String[] args) {
        System.out.println(IdUtil.fastUUID()); // 813bd123-69e9-42ae-97c4-2da7895235df
        System.out.println(IdUtil.fastSimpleUUID()); // 5547f7f9f0d2428787cdba7b6bd61616
        System.out.println(IdUtil.nanoId()); // y-E4JNXw_jURG0GE2sPV0
        System.out.println(IdUtil.nanoId(10)); // z6xBGVGM-L
        System.out.println(IdUtil.objectId()); // 6400442cdebadda465d32661
        System.out.println(IdUtil.getSnowflake(1, 1).nextIdStr()); // 1631180428218077184
    }

既然都整理ID生成工具,就在这里统一搜集整理一些常见的ID策略

常见ID生成策略

UUID

案例:144985ec-458d-49c5-8338-ba325eca5322

特点:无序、数字与小写英文、长度36位

缺点:无序、长度太长,超低概率可能会重复

❄️雪花算法(我觉得了解再多,还得是万能的雪花算法❄️)

特点:纯数字、自增、每秒26万个ID、长度19

雪花算法是推特公司开源的工具:想了解前往本站:https://cloud.tencent.com/developer/article/1935487

曾经有次面试问到我这个问题,问我雪花算法需要哪些参数。当时很久不用,属实遗忘了。一个是机器ID,另一个是数据中心ID(两个ID均是数字)。

保证线程安全,务必获取单例对象!上文案例就是单例对象,随便使用!

MongoDB唯一主键

这里是Hutool工具集成的MongoDB唯一ID生成,我才了解的。

特点:数字与小写英文、长度24

Redis自增主键策略

利用其单线程原子性 INCR与 INCRBY可以做,但是其需要调用网络传输redis命令以及响应。不使用!

特点:纯数字、自增

缺点:使用利用Java调用网络IO

特殊说明:

上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IdUtil案例
  • 常见ID生成策略
    • UUID
      • ❄️雪花算法(我觉得了解再多,还得是万能的雪花算法❄️)
        • MongoDB唯一主键
          • Redis自增主键策略
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档