编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

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

wxchong 2025-07-03 20:28:07 开源技术 7 ℃ 0 评论

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

由于这段时间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拦截器)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表