雪花算法

用途

生成唯一编号

如何使用

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: root
  5. * Date: 19-1-9
  6. * Time: 上午10:10
  7. */
  8. require './vendor/autoload.php';
  9. $str = \EasySwoole\Utility\SnowFlake::make(1,1);//传入数据中心id(0-31),任务进程id(0-31)
  10. var_dump($str);
  11. var_dump(\EasySwoole\Utility\SnowFlake::unmake($str));
  12. /**
  13. * 输出结果:
  14. * int(194470364728922112)
  15. * object(stdClass)#3 (4) {
  16. * ["timestamp"]=>
  17. * int(1532127766018)
  18. * ["dataCenterID"]=>
  19. * int(1)
  20. * ["workerID"]=>
  21. * int(1)
  22. * ["sequence"]=>
  23. * int(0)
  24. * }
  25. */

核心对象方法

核心类:EasySwoole\Utility\SnowFlake

make

生成基于雪花算法的随机编号

  • mixed $dataCenterID 数据中心
  • mixed $workerID 任务进程I

static function make($dataCenterID = 0, $workerID = 0)

unmake

反向解析雪花算法生成的编号

  • mixed $snowFlakeId 编号

static function unmake($snowFlakeId)