在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识
对数据分库分表后需要有一个唯一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,本地生成,没有网络开销,效率高,但是依赖机器时钟
本文探讨了在复杂分布式环境中如何生成唯一ID,包括自动增长策略、UUID、Redis生成ID以及Snowflake算法。自动增长策略在单库单表场景下适用,但不适合分库分表;UUID虽然简单高效但长度较长;Redis的incr命令提供增量ID,而Snowflake算法在本地生成全局ID,适用于高并发场景。选择合适的ID生成策略对于系统的扩展性和性能至关重要。
4118

被折叠的 条评论
为什么被折叠?



