生成固定前缀固定长度的不重复字符串使用方法(可用于生成电商系统中的订单号,出库单号等等)

本文介绍如何利用Java的AtomicInteger和Redis来创建固定前缀的不重复字符串,适合电商系统生成订单号和出库单号,避免并发冲突。方法一借助原子操作确保序列性,方法二利用Redis的原子增删操作确保唯一性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成固定前缀固定长度的不重复字符串使用方法(可用于生成电商系统中的订单号,出库单号等等)
第一个方法,需要用到Java自带的原子类

private final AtomicInteger currentNum = new AtomicInteger(0);
public String code(Long userId) {
   
        // 简单加密
        userId = userId * 2 + 88;
        //原子自增,再对10000取模,不足4位的用0补充
        // 出现重复的场景(几乎不可能):系统在1秒内产生10000+单,同时第n和第n+9999单为同一用户时
        String numStr = String.format("%04d", currentNum.getAndIncrement(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值