如何利用Redis做数据库的主键生成机制

如何利用Redis做数据库的主键生成机制

技术教程gslnedu2025-02-01 13:07:0711A+A-

有些情况,我们不能使用数据库自带的主键生成机制(例如:使用分表的策略,采用数据库自增主键将使得每张物理表的主键彼此独立,这不是我们想要的)。

由于这段时间redis使用挺多的,现在就看看如何生成主键。

我们初步设想ID的生成规则:

根据每一个库的每一张表组合成一个key, 然后依靠redis进行生成ID

1. 首先定义了一个生成id的接口类

2. 定义一个子类,实现我们的接口

3. 或使用Spring的redisTemplate实现,这就是接口的好处了,扩展另一种实现很方便。

至此,主键的生成机制就完成了,以后想扩展直接添加实现类就行。

但现在要替换MySQL自带的主键机制,我就需要手动的创建PrimarykeyGenerator的子类

调用generateId(String dbName, String tableName)返回我们需要插入的主键值,赋值给ID属性,在插入就完成了。

如果使用了Spring框架 ,像JedisPrimarykeyGenerator自定义类都交给spring管理。

具体怎么配就不在这里写。(相信大家都会的)

当然,我们还有很多需要完善的,例如我想像使用MySQL自带的主键机制时,根本就不关心ID的设置问题,多方便,多省心。

其实我们也是可以做到的,比如使用Mybatis做为映射框架,就可以自定义一个自动插入主键ID的插件,依赖intercept,自动处理手动设置ID的工作,这样就和使用MySQL自带的主键机制一样,不用我们关心ID的设置问题了。(这样也能练习一下ibatis拦截器)

点击这里复制本文地址 以上内容由朽木教程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

朽木教程网 © All Rights Reserved.  蜀ICP备2024111239号-8