主键ID策略

本文探讨了在复杂分布式环境中如何生成唯一ID,包括自动增长策略、UUID、Redis生成ID以及Snowflake算法。自动增长策略在单库单表场景下适用,但不适合分库分表;UUID虽然简单高效但长度较长;Redis的incr命令提供增量ID,而Snowflake算法在本地生成全局ID,适用于高并发场景。选择合适的ID生成策略对于系统的扩展性和性能至关重要。

在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识
对数据分库分表后需要有一个唯一ID来标识一条数据或消息

1.自动增长策略

自动增长策略 auto increment
自动增长在单数据库单表时十分好用,单当数据量变大需要 分库分表时会不方便
在这里插入图片描述

2.uuid

uuid每次生成随机的唯一值 uuid生成全球唯一id,生成方式简单粗暴,本地生成,没有网络开销,效率高;缺点长度较长,没有递增趋势性,不易维护,常用于生成token令牌
在这里插入图片描述

3.redis生成ID

redis生成ID使用Redis 的incr和incrby实现
Redis Incr 命令将 key 中储存的数字值增一。如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

4.mp自带策略

mp自带策略 snowflake(雪花)算法
基于雪花算法snowflake 生成全局id,本地生成,没有网络开销,效率高,但是依赖机器时钟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值