Snowflake
数据库生成¶
- offset:起始值
- increment:自增步长
缺点是,如果发生主从延迟,或者在主从切换时存在尚未同步的数据,可能会重复发出已经发过的号
Redis 生成¶
依赖于 incrby key cnt 命令。在高负载场景下同样需要使用集群,基于 offset 和 increment 实现。如果发生宕机,同样需要考虑主从的同步性问题
雪花算法¶
- 41 bit 时间戳的单位是毫秒
- 12 bit 序列号是一台机器上,一毫秒内可以产生 4096 个自增的 uuid