使用Twitter的 Snowflake算法,有兴趣可以了解一下这个算法: https://github.com/twitter/snowflake
php.ini的配置项:
[ukey] ukey.datacenter = integer ukey.worker = integer ukey.twepoch = uint64
datacenter配置项是一个整数, 用于设置数据中心;
worker配置项是一个整数, 用于设置数据中心的机器序号;
twepoch配置项是一个64位的整数, 用于设置时间戳基数, 此值越大, 生成的ID越小;
Based on the Twitter Snowflake algorithm
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.
<?php $id = atom_next_id(); echo $id; $info = atom_explain($id); echo date('Y-m-d H:i:s', $info['timestamp']); ?>
$ cd ./atom $ phpize $ ./configure $ make $ sudo make install
[atom] atom.datacenter = integer atom.worker = intger atom.twepoch = uint64