跳转至

Snowflake

数据库生成

  • offset:起始值
  • increment:自增步长

image-20250731125614914

缺点是,如果发生主从延迟,或者在主从切换时存在尚未同步的数据,可能会重复发出已经发过的号

Redis 生成

依赖于 incrby key cnt 命令。在高负载场景下同样需要使用集群,基于 offset 和 increment 实现。如果发生宕机,同样需要考虑主从的同步性问题

雪花算法

image-20250731124434466

  • 41 bit 时间戳的单位是毫秒
  • 12 bit 序列号是一台机器上,一毫秒内可以产生 4096 个自增的 uuid