PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结合md5函数来生成唯一ID。

PHP uniqid() 生成不重复唯一标识方法一

这种方法会产生大量的重复数据,运行如下PHP代码会数组索引是产生的唯一标识,对应的元素值是该唯一标识重复的次数。

$units = array();

for($i=0;$i<1000000;$i++){

$units[] = uniqid();

}

$values = array_count_values($units);

$duplicates = [];

foreach($values as $k=>$v){

if($v>1){

$duplicates[$k]=$v;

}

}

echo '

';

print_r($duplicates);

echo '

';

?>

PHP uniqid() 生成不重复唯一标识方法二

这种方法生成的唯一标识重复量明显减少。

$units = array();

for($i=0;$i<1000000;$i++){

$units[] = uniqid('',true);

}

$values = array_count_values($units);

$duplicates = [];

foreach($values as $k=>$v){

if($v>1){

$duplicates[$k]=$v;

}

}

echo '

';

print_r($duplicates);

echo '

';

?>

PHP uniqid() 生成不重复唯一标识方法三

这种方法生成的唯一标识中没有重复。

$units = array();

for($i=0;$i<1000000;$i++){

$units[]=md5(uniqid(md5(microtime(true)),true));

}

$values = array_count_values($units);

$duplicates = [];

foreach($values as $k=>$v){

if($v>1){

$duplicates[$k]=$v;

}

}

echo '

';

print_r($duplicates);

echo '

';

?>

PHP uniqid() 生成不重复唯一标识方法四

使用session_create_id()函数生成唯一标识符,经过实际测试发现,即使循环调用session_create_id()一亿次,都没有出现过重复。

php session_create_id()是php 7.1新增的函数,用来生成session id,低版本无法使用。

转自:http://blog.csdn.net/ghostyusheng/article/details/53788087

php uniqid 高并发,高并发 php uniqid 不重复唯一标识符生成方案相关推荐

  1. [PHP] 高并发 php uniqid 不重复唯一标识符生成方案

    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据.即使使用了第二个参数,也会重复,最好的方案是结 ...

  2. php 8位md5重复概率,高并发 php uniqid 用md5生成不重复唯一标识符方案

    高并发 php uniqid 用md5生成不重复唯一标识符方案 uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. uniqid(prefix,more_entropy) prefi ...

  3. Java分布式唯一ID生成方案——比UUID效率更高的生成id工具类

    package com.xinyartech.erp.core.util;import java.lang.management.ManagementFactory; import java.net. ...

  4. PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳。在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据。即使使用了第二个参数,也会重复,最好的方案是结

    转载地址:http://www.51-n.com/t-4264-1-1.html PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环 ...

  5. php uniqid 高并发,PHP uniqid 高并发生成不重复唯一ID

    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据.即使使用了第二个参数,也会重复,最好的方案是结 ...

  6. php uniqid 高并发,PHP-PHP中的uniqid在高并发下的重复问题

    以下是测试代码: function new_child($func_name) { $args = func_get_args(); unset($args[0]); $pid = pcntl_for ...

  7. 说说大型高并发高负载网站的系统架构【转】

    我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大 ...

  8. 推荐100份:高并发高可用和中台一网打尽

    今天给大家推荐一个干货技术公众号:技术琐话,由BAT某厂的技术专家右军发起,2018年发展为一个集大成的Java&架构&研发管理的主题分享平台. 坐馆老司机列表 翻译/写作 本公众号坐 ...

  9. 说说大型高并发高负载网站的系统架构(更新)

    转载请保留出处:俊麟 Michael's blog (http://www.toplee.com/blog/?p=71) Trackback Url : http://www.toplee.com/b ...

最新文章

  1. 【从零学习OpenCV 4】4种读取Mat类元素的的方法
  2. Java实现的简单神经网络(基于Sigmoid激活函数)
  3. 安卓MP3播放器开发实例(1)之音乐列表界面
  4. mysql bundle.tar_MySQL 5.6 Bundle Tar安装
  5. 第 十 一 天 : 复 习 完 ( 四 )
  6. 设计模式6---(单例模式的概念及其实现(懒汉式和饿汉式),线程安全)
  7. Linux监控命令之 top
  8. 跟我学Spring Cloud(Finchley版)-18-Zuul深入
  9. 如何选择 Offer?
  10. Linux低分辨率下时钟中断调用流程
  11. 程序设计语言基础知识复习
  12. Keras:基于Python的深度学习库
  13. Java读取计算 PPT,Word,excel的页数
  14. PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的clicked信号参数QAbstractButton *解决办法
  15. 剪切蒙版与抠图的结合
  16. deepin linux连接不上网络,把Deepin升级到15.8桌面版后无线上不了网的解决方法
  17. PHP实现手机号码归属地查询
  18. SNS:六度分隔理论
  19. psp记忆棒测试软件,乱花渐欲迷人眼——PSP用记忆棒选购指南
  20. 用友畅捷通T+,现金流量相关档案从一个帐套复制到另个帐套

热门文章

  1. vue-router传参的四种方式超详细
  2. 2021年,你还会坚持做公众号吗?看这篇反思文章!
  3. 缓解学习压力的有效方法
  4. 遗憾!汤唯主演的韩国片《分手的决心》无缘戛纳最佳女主角
  5. 常见在线AI绘画平台
  6. 思维导图APP开发独立源码部署
  7. 英语作文 谈谈计算机1.我们已进入了计算机时代2.计算机有很多优点,The Computer(电脑时代)...
  8. 常用的二分类损失函数
  9. python统计小说人物_Python爬虫 - 统计自己读过小说的字数
  10. Java获取系统时间并转化为字符串