PHP分布式系统的用户唯一数字ID生成方案

背景设置:centos7.2-64bit 1.每一台机器都会有一个唯一的hostname,可以通过hostname命令查看。 2.安装libuuid-devel。 3.安装PHP的uuid C扩展,pecl install uuid 即可,记得在php.ini文件...

背景设置:centos7.2-64bit

1.每一台机器都会有一个唯一的hostname,可以通过hostname命令查看。

2.安装libuuid-devel。

3.安装PHP的uuid C扩展,pecl install uuid 即可,记得在php.ini文件中启用此扩展"extension=uuid.so"。

4.源码仓库地址:https://pecl.php.net/package/UUID

5.生成算法和基准测试如下:

<?php
$avg = 0;
$total = 0;
$length = 10000;
for ($i = 0; $i < $length; $i++)
{
        $start = microtime(true);
        genGuid();
        $end = microtime(true);
        $total += ($end - $start);
}
$avg = $total/$length;

print_r($avg);
echo "\n";
print_r($total);
function genGuid(){
      $uuid =  uuid_create();
      $uuidArray = explode('-',$uuid);
      $uuidNumberString = '';
      foreach($uuidArray as $sep)
          {
              $uuidNumberString .= (string)hexdec($sep);
          }
}

注意:1.0.4版本兼容PHP7

  • 发表于 2017-07-02 21:06
  • 阅读 ( 1166 )
  • 分类:架构精选

0 条评论

请先 登录 后评论
不写代码的码农
Kemin

架构工程师

35 篇文章

作家榜 »

  1. Kemin 35 文章
  2. golanglover 5 文章
  3. D.Chen 2 文章
  4. salamander 1 文章
  5. 深圳-伟 1 文章
  6. 广训 1 文章
  7. PHP小菜 1 文章
  8. 后端彭于晏 0 文章