AtomPHP唯一ID生成扩展

联合创作 · 2023-09-28 18:38

使用Twitter的 Snowflake算法,有兴趣可以了解一下这个算法: https://github.com/twitter/snowflake  


php.ini的配置项:



[ukey]
ukey.datacenter = integer
ukey.worker = integer
ukey.twepoch = uint64


  • datacenter配置项是一个整数, 用于设置数据中心;


  • worker配置项是一个整数, 用于设置数据中心的机器序号;


  • twepoch配置项是一个64位的整数, 用于设置时间戳基数, 此值越大, 生成的ID越小;



Atom


Based on the Twitter Snowflake algorithm


PHP unique ID generator


functions list:



  • 1) string atom_next_id(void);
       Get the next unique ID.


  • 2) array atom_explain(string ID);
       Change unique ID to array includes: timestamp, datacenter id and worker id.



example:



<?php
$id = atom_next_id();
echo $id;

$info = atom_explain($id);
echo date('Y-m-d H:i:s', $info['timestamp']);
?>

install:




$ cd ./atom
$ phpize
$ ./configure
$ make
$ sudo make install

php.ini configure entries:




[atom]
atom.datacenter = integer
atom.worker = intger
atom.twepoch = uint64
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报