찾다

 >  Q&A  >  본문

算法 - php如何生成唯一递增数字?

1.不接受使用MySQL的自增字段的方法
2.高并发时也一定要确保唯一递增
3.使用C语言编写PHP扩展的方式不算

先谢谢大家

ringa_leeringa_lee2896일 전605

모든 응답(2)나는 대답할 것이다

  • PHPz

    PHPz2017-04-10 15:29:51

    参考MongoDB的ObjectID算法,可以考虑在ID中包含以下部分来防止冲突

    • 机器hash(防止多台机器之间ID冲突)
    • 进程ID(防止多进程冲突)
    • 时间戳(秒)
    • 自增值(同一秒内自增)

    把时间放在最见面可以获得基本递增的效果

    UUID1效果类似,PHP有现成实现 https://github.com/ramsey/uuid

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-10 15:29:51

    递增, 请请求就要排序处理咯.

    회신하다
    0
  • 취소회신하다