生成订单号
@Autowired
private StringRedisTemplate redisTemplate;
private final String prefix = "order:id:";
@GetMapping("/getOrderNo")
@ApiOperation(value = "获取订单号")
public Result getOrderNo() {
// 201110
String date = DateTime.now().toString("yyMMdd");
String key = pre + date;
Long increase = redisTemplate.opsForValue().increment(key, 1);
if (increase == 1) {
redisTemplate.expire(key, 24, TimeUnit.HOURS);
}
// 00001
String format = String.format("%05d", increase);
date += format; // 20111000001
// return : ON20111000001
return Result.ok("ON" + date);
}
调用测试一下
redis计数器存储结果
生成订单号
本文介绍了一种使用Redis计数器生成唯一订单号的方法。通过结合日期和递增ID,确保每个订单号的唯一性,并设置了每天过期的策略来清理旧的数据。
2352

被折叠的 条评论
为什么被折叠?



