redis实现序列号自增
原创
©著作权归作者所有:来自51CTO博客作者FelixLHT的原创作品,请联系作者获取转载授权,否则将追究法律责任
1,利用redis的原子类
一般都是 每天从1开始增长,生成的序列号带上日志就是唯一的了。
@Autowired
private RedisTemplate redisTemplate;
public String generateCodeString(String type) {
String date = DatePattern.PURE_DATE_FORMAT.format(new Date());
if (redisTemplate.getConnectionFactory() == null) {
return "";
}
RedisAtomicLong redisAtomicLong = new RedisAtomicLong(date, redisTemplate.getConnectionFactory());
long l = redisAtomicLong.incrementAndGet();
if (l == 1) {
redisAtomicLong.expire(1, TimeUnit.DAYS);
}
return String.valueOf(l);
}