一、使用UUID
String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
System.out.println(uuid);
优点:代码实现简单、不占用宽带、数据迁移不受影响
缺点:无序、无法保证趋势递增(要求3)字符存储、传输、查询慢、不可读
二、使用redis
@Autowired
private RedisTemplate redisTemplate;
@RequestMapping("/getOrderid")
public String getOrderid(String key) {
//String key = "DEMO_ORDER_ID_" + prefix;
RedisAtomicLong redisAtomicLong = new RedisAtomicLong(key,redisTemplate.getConnectionFactory());
long incrementAndGet = redisAtomicLong.incrementAndGet();
String ordIid =prefix()+ String.format("%1$05d", incrementAndGet);
return ordIid;
}
public static String prefix() {
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
return df.format(date);
}
三、使用数据库自增id
四、雪花算法Snowflake