生成规则:自定义前缀+yyMMdd日期+序列号(存在redis)
关键在于redis的hincyBy方法
public class TimeCodeUtil {
private final static String QRCode = "QRCODE";// 二维码序列号
public synchronized static long nextId() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");// 设置日期格式
String timeStr = df.format(new Date());
Long hincrBy = RedisClient.hincrBy(QRCode, timeStr,1);//RedisClient是自己封装的一个工具类,这里使用的是jedis的hincyBy方法
Long laststamp = ((hincrBy == null) ? 0 : hincrBy);
String idStr = timeStr + String.format("%07d", laststamp);// 七位,不足补0
Long id = Long.valueOf(idStr);
return id;
}
}
关于redis的其他一些操作,可以看这篇文章
Redis学习——数据类型及操作