zoukankan      html  css  js  c++  java
  • PHP 生成全局唯一id

    直接上代码:

    function generate_global_uniqid()
    {
        $prefix = md5(microtime(true)); // 生成唯一ID发生器 prefix,如果为服务集群需要生成唯一ID,该值可以设置为机器编号,这里采用了时间作为前缀
        $id = uniqid($prefix, true); // 生成唯一ID, 具体可以参考:http://php.net/manual/en/function.uniqid.php,参数 true 可以提高唯一的概率(注意这里并不能完全保证生成id的唯一性,但是测试结果显示,重复的概率非常低)
        return md5($id);    
    }

    注意,这里并不能百分百保证 id 的唯一性,不过测试发现得到唯一id的概率非常高,测试代码如下,大家使用前可以自行测试:

    <?php

    $units
    = array(); for ($i = 0; $i < 1000000; $i++) // 100万次循环 { $units[] = md5(uniqid(md5(microtime(true)), true)); } $values = array_count_values($units);$duplicates = []; // 重复的id foreach ($values as $k => $v) { if ($v > 1) { $duplicates[$k] = $v; } } var_dump($duplicates);


  • 相关阅读:
    弱网环境测试点总结
    【CMDB】高级配置
    【CMDB】获取服务器数据
    Centos部属前后端项目
    Centos部署项目
    Django
    nginx反向代理和负载均衡
    nginx的配置
    centos7 安装nginx
    centos7 安装Virtualenv
  • 原文地址:https://www.cnblogs.com/smallrookie/p/6867350.html
Copyright © 2011-2022 走看看