雪花算法ID生成器 SnowflakeIDGenerator

雪花ID是一种适用于大规模分布式系统的全局唯一ID生成器,它通过时间戳、机器ID和序列号组合生成轻量级的64位唯一ID。虽然时间戳可能导致重复ID的风险,但在大多数场景下仍能提供高性能和全局唯一性。了解其核心原理和潜在隐患,有助于在适当场景中合理使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

何为SnowflakeID雪花id构造器

一个适合大量数据的主键生成器

  • 可以尽可能的让数据靠拢
  • 可以赋予主键更多的区分信息这个是一个附加的也是一个短板
  • 支持数据库的扩容/分片(该id是 全球唯一、轻量的)

比较


  • 自增主键

利用数据库产生自增id,保证唯一性,单独使用一张(或固定几张)数据库表专门用来产生自增id,与业务无关,后续不再重新分表,数据量大时 可以删除早一些时候产生的数据

  • 好处: 实现简单,容易理解
  • 劣势:严重依赖数据库,id产生速率受数据库性能以及连接数据库的网络影响

  • 时间戳

时间戳做唯一id

  • 优势: 简单/简单/简单
  • 劣势: 并发高或者分布式环境中基本不可行,同一时间生成的id是重复的,不满足全局唯一

  • 借助Redis实现主键

利用Redis原子操作incrBy

  • 好处:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值