为什么要用雪花算法?
- 生成有顺序的id,提高数据库的性能,现在大部分都不用uuid作为主键,因为不规则,每向数据库插入一条数据就要重新排列,使数据库性能降低。
- 分布式环境,ID唯一
- 所有生成的id按时间趋势递增
使用
1.引入pom依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.9</version>
</dependency>
2.java代码
//生成带-的UUID字符串
System.out.println(IdUtil.randomUUID());
//生成不带-的UUID字符串
System.out.println(IdUtil.simpleUUID());
//使用雪花算法生成id
System.out.println(IdUtil.getSnowflake(0,0).nextId());
//使用雪花算法生成id,返回字符串类型
System.out.println(IdUtil.getSnowflake(1,1).nextIdStr());
System.out.println(IdUtil.getSnowflake(1,1).nextIdStr());
System.out.println(IdUtil.getSnowflake(2,1).nextIdStr());
System.out.println(IdUtil.getSnowflake(2,1).nextIdStr());
3.结果展示