sprinboot主键自增_SpringBoot使用Redis按照日历生成自增编号

目标:在系统中按日历生成编号,如 202003070001

刚开始,我想的是使用MySQL存起来就可以了,如果使用MySQL的话会需要以下步骤:

(1)判断数据库中今天是否有编号

(2)如果没有,那么使用0001,如果有,那么从查询到的今天最大的一位数字+1

(3)然后再存入数据库

这样一来二区,查询就两次,然后截取字符串,然后+1等等操作,感觉哪里不爽,而且直接对数据库频繁读、写,还会存在数据库锁的获取等烦锁操作!

后来又想到直接数据库定义MySQL函数解决吧,经理直接给我一句话“最好不要在数据库写函数”,原因没说!

没办法,问题还是要解决!想到了Redis,Redis有一个方便的工具RedisAtomicLong!咋一眼看这个工具名称你就知道人家是原子性的!

Redis生成自增编号

首先,你的项目中需要先集成了Redis,这里你可以查看相关文章SpringBoot集成Redis

生成自增编号@SpringBootTest

class RedisDemoApplicationTests {

@Autowired

private StringRedisTemplate redisTemplate;

@Test

public void contextLoads() {

RedisAtomicLong entityIdCounter

= new RedisAtomicLong(&

你可能感兴趣的:(sprinboot主键自增)