实现全局唯一ID解决方案:Redis

实现全局唯一ID解决方案:Redis

随着互联网应用的广泛普及,每个业务系统的数据量激增,如果你还采用关系型数据库,例如Mysql,当单表行数超过500万行或者单表容量超过2GB时,恐怕就得考虑使用分库分表了。当同一张表存在于多个数据库实例时,业务数据又要求唯一性,怎么保证业务主键是全局唯一的呢?

解决方案中包括UUID,数据库主键方式,或者通过在分布式系统中给每个分库设置不同的初始值,步长和分库数量相等的方式,以及支持高并发的SnowFlake算法,这几种方式就在本博文中不再详细介绍,推荐去看下面这篇博文,漫画形式的很生动 什么是SnowFlake算法?

Redis实现全局唯一ID
虽说SnowFlake算法应对高并发是非常好的,如果你的系统对并发量要求没那么高,就没有必要使用这个算法,这个算法的使用也是有一点风险的。那么咱们可以通过redis存储每张表的目前最新的ID值来实现,详细步骤如下:

  1. 首先你的系统必须引入Redis相关的包,如代码片段1@Configuration用于全局配置,比如数据库相关配置,SequenceConfiguration 类主要是初始化redis连接实例,以便业务系统Redis操作数据库
    代码片段1:
@Configuration
public class SequenceConfiguration {

    @Configuration
    @AutoConfigureAfter(RedisAu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值