使用redis生成自增序号

import org.springframework.data.redis.core.StringRedisTemplate;

@Autowired
private StringRedisTemplate redisTemplate;
/**
 * 自增序列号
 *
 * @param prefix    前缀
 * @param numLength 要生成多少位的数字
 * @return
 */
public String SeqGenerator(String prefix, int numLength) {
    String upperCode = "";
    Long size = redisTemplate.opsForList().size(prefix);//查找以prefix作为key值的数据长度
    if (size > 0) {//有数据
        List leve = redisTemplate.opsForList().range(prefix, 0, -1);//获取该key下面的所有值 (-1所有值;1下一个值)
        upperCode = leve.get(leve.size() - 1).toString();//返回最后一个值
    }
    String returnCode = "";
    int Suffix;//后缀数字
    if (!StringUtil.isEmpty(upperCode)) {//有数据
        String sequence = upperCode.substring(prefix.length());//截取前缀开始的后面数字
        Suffix = Integer.parseInt(sequence);
        Suffix++;//最后的序号加一
    } else {//没有数据
        Suffix = 1;
    }
    returnCode = prefix + String.format("%0" + numLength + "d", Suffix);//后缀不够numLength长,前面补充0
    redisTemplate.opsForList().rightPush(prefix, returnCode);//存入Redis
    return returnCode;
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值