七叶笔记 » 数据库 » 基于Redis实现分布式单号及分布式ID(自定义规则生成)

基于Redis实现分布式单号及分布式ID(自定义规则生成)

背景

一些业务背景下,业务要求单号需要有区分不同的前缀,那么在分布式的架构下如何自定义单号而且还能保证唯一呢?

注:分布式ID也可以此方式

Redis实现方式

Redis的所有命令操作都是单线程的,本身提供像 incr 和 increby 这样的自增原子命令,所以能保证生成的 ID 肯定是唯一有序的。

优点:不依赖于数据库,灵活方便,且性能优于数据库;数字ID天然排序,对分页或者需要排序的结果很有帮助。

缺点:如果系统中没有Redis,还需要引入新的组件,增加系统复杂度;需要编码和配置的工作量比较大。

考虑到单节点的性能瓶颈,可以使用 Redis 集群来获取更高的吞吐量。 使用 Redis 集群也可以方式单点故障的问题。

代码实例

创建常量类

单号生成枚举

注:为了方便扩展,方便复用,使用枚举方式,可以自定义枚举值来生成不同的单号

单号生成工具类

单号生成接口

单号生成接口实现

使用测试

redis截图

总结

以上还不是最优雅的方式,最好是能做成jar包方式,做成通用的服务

到此这篇关于基于Redis实现分布式单号及分布式ID(自定义规则生成)的文章就介绍到这了,更多相关基于Redis实现分布式单号及分布式ID(自定义规则生成)内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!

相关文章