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
浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报