生成唯一id的三种方法

1.通过redis 生成
public String nextSerial(String seqName,int num){
//获取redis中的数据
String nextVal = String.valueOf(RedisUtil.incr(seqName));
//字符串拼接,左侧不满足num位的填充0
return StringUtils.leftPad(nextVal,num,“0”);
}
2.通过数据库生成
1).设置数据库表字段 nextVal;
2).获取key值时,nextVal=nextVal+1,前八位填充年月日,后八位由nextVal 组成,不足八位左边填充“0”。更新数据库表字段。返回新生成的seq

3.通过java的random生成
1.生成日期字符串 StringsDate= yyyyMMddhhmmssSSS
2.使用int random = int(Math.random()*1000 ) 生成三位的随机数据。
3.返回字符串,StringsDate+random ,常用于快速拼接字符串且对唯一性要求不高的环境
4.通过static静态变量生成。
与通过数据库生成类似。但是 nextVal 由静态变量组成,可以设置静态变量从0-999,不满足三位前面拼接"0",在前面再拼接日期字段。
如果系统重启,静态变量会重新初始化。

你可能感兴趣的:(java,key值生成方式)