AtomPHP唯一ID生成扩展
使用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
评论