基于 Redis 的全局唯一性ID生成器的一些实现思路

本文分享了一个基于Redis的全局唯一ID生成器设计思路,包括MySQL记录应用信息,Redis负责ID区间生成和分发,使用L1、L2缓存确保效率,对外提供注册、获取ID等接口,并描述了ID生成机制和测试结果。

前段时间正值开发ID生成中心,看到很多业界大神分享了自己公司的ID生成器的设计思路。现在分享一下自己的思路,供大家参考、吐槽。

业务需求及业内方案,在许多文章中都有介绍,我在这里就不多介绍了。现在直入主题,谈谈自己的设计思路。

基本介绍

1.MySQL记录注册的应用服务信息及生成的应用唯一标识authID。

2.高可用的Redis记录注册的IDKey(应用中ID的唯一标识,一个应用可以申请多个ID)并负责生成、分发ID区间(利用Redis中incr特性)。这里Redis必须保证高可用,至少为双机热备保证数据不丢失。当然这里的IDKey注册可以记录在MySQL中。

3.ID生成中心使用L1、L2缓存从Redis中获取到的ID区间,并实时同步。

4.下游服务可以直接通过Http/RPC,从ID生成中心获取ID。

5.下游服务也可以通过在项目中引入ID生成客户端依赖包来获取ID。因为目前我们并没有那么高频的需求,所以暂时没有开发。

对外接口

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值