原理很简单
ID由64bit组成
其中 第一个bit空缺
41bit用于存放毫秒级时间戳
10bit用于存放机器id
12bit用于存放自增ID
除了最高位bit标记为不可用以外,其余三组bit占位均可浮动,看具体的业务需求而定。默认情况下41bit的时间戳可以支持该算法使用到2082年,10bit的工作机器id可以支持1023台机器,序列号支持1毫秒产生4095个自增序列id。
下面是PHP源码
调用方法如下
Particle::generateParticle($machineId);//生成ID Particle::timeFromParticle($particle);//反向计算时间戳
上一篇:利用php怎么对时间戳进行格式化
下一篇:如何解决微信文章图片防盗链问题