当前位置: 首页 > news >正文

湛江专业建站推荐wordpress 文章列表顺序

湛江专业建站推荐,wordpress 文章列表顺序,内网建设网站外网访问,网站外包 博客引言 雪花算法是Twitter开源的分布式ID生成算法#xff0c;可以产生64位的ID。其中第一位是固定的正数标识#xff0c;41位用于存储时间戳#xff0c;剩下的为机器ID和序列号。通过时间戳、机器ID和序列号的组合#xff0c;确保每个ID都是唯一的。 PHP代码 1、定义雪花算…引言 雪花算法是Twitter开源的分布式ID生成算法可以产生64位的ID。其中第一位是固定的正数标识41位用于存储时间戳剩下的为机器ID和序列号。通过时间戳、机器ID和序列号的组合确保每个ID都是唯一的。 PHP代码 1、定义雪花算法类 class Snowflake {private int $datacenterId; // 数据中心IDprivate int $machineId; // 机器IDprivate int $sequence 0; // 序列号private int $lastTimestamp -1; // 上一个时间戳private const DATA_CENTER_ID_BITS 5; // 数据中心ID所占位数private const MACHINE_ID_BITS 5; // 机器ID所占位数private const SEQUENCE_BITS 12; // 序列号所占位数private const MAX_DATA_CENTER_ID -1 ^ (-1 self::DATA_CENTER_ID_BITS);private const MAX_MACHINE_ID -1 ^ (-1 self::MACHINE_ID_BITS);private const TIMESTAMP_LEFT_SHIFT self::SEQUENCE_BITS self::MACHINE_ID_BITS self::DATA_CENTER_ID_BITS;private const SEQUENCE_LEFT_SHIFT self::MACHINE_ID_BITS self::DATA_CENTER_ID_BITS;private int $epoch; // 起始时间戳public function __construct(int $datacenterId, int $machineId){if ($datacenterId 0 || $datacenterId self::MAX_DATA_CENTER_ID) {throw new Exception(数据中心ID超出范围);}if ($machineId 0 || $machineId self::MAX_MACHINE_ID) {throw new Exception(机器ID超出范围);}$this-datacenterId $datacenterId;$this-machineId $machineId;$this-epoch 1609430400000; // 自定义起始时间例如2021年1月1日}public function nextId(): int{$timestamp $this-currentTimeMillis();if ($timestamp $this-lastTimestamp) {throw new Exception(错误系统时钟发生回拨);}if ($this-lastTimestamp $timestamp) {$this-sequence ($this-sequence 1) ((1 self::SEQUENCE_BITS) - 1);if ($this-sequence 0) {$timestamp $this-waitNextMillis($timestamp);}} else {$this-sequence 0;}$this-lastTimestamp $timestamp;return (($timestamp - $this-epoch) self::TIMESTAMP_LEFT_SHIFT) |($this-datacenterId self::SEQUENCE_LEFT_SHIFT) |($this-machineId self::SEQUENCE_BITS) |$this-sequence;}private function waitNextMillis(int $lastTimestamp): int{$timestamp $this-currentTimeMillis();while ($timestamp $lastTimestamp) {$timestamp $this-currentTimeMillis();}return $timestamp;}private function currentTimeMillis(): int{return (int)(microtime(true) * 1000);} }2、创建实例生成ID // 创建雪花算法实例 $datacenterId 1; // 数据中心ID $machineId 1; // 机器ID $snowflake new Snowflake($datacenterId, $machineId);// 生成用户ID的示例 for ($i 0; $i 10; $i) {$userId $snowflake-nextId();echo 生成的用户ID: $userId.br/; }3、查看生成结果 生成的用户ID: 507485100926047232 生成的用户ID: 507485100926047233 生成的用户ID: 507485100926047234 生成的用户ID: 507485100926047235 生成的用户ID: 507485100926047236 生成的用户ID: 507485100926047237 生成的用户ID: 507485100926047238 生成的用户ID: 507485100926047239 生成的用户ID: 507485100926047240 生成的用户ID: 507485100926047241结论 这段代码是一个比较完整的雪花算法实现能够在分布式系统中生成高效、唯一的ID。通过合理的位移和位数分配确保了在高并发情况下生成的ID也不会重复。 实际部署中只需修改$datacenterId 1; // 数据中心ID 以及 $machineId 1; // 机器ID即可实现分布式生成不重复的ID。
http://www.dnsts.com.cn/news/4162.html

相关文章:

  • 网站建设步骤流程详细介绍企业网站必须做可信认证吗
  • 做网上商城网站设计河北住房和城乡建设厅网站电话是多少
  • 网络优化怎么自己做网站关于网站建设的通知
  • 网站备案后更换主机校园网站建设er模型
  • 台州做企业网站建设网站大概要花多少钱
  • 门户站点是什么360seo排名优化服务
  • 百度如何验证网站做网站端口映射
  • 建立一个网站的技术解决方案湖州建设局新网站
  • wordpress建立企业网站简述企业网站建设的流程
  • 品牌网站设计公司哪家好南上海网站建设
  • 电子商务网站平台建设前景展望有没有免费的云服务器可以用
  • 怎么查公司网站有没有中文域名资料图片 wordpress
  • 网站国内空间和国外空间装饰行业网站建设
  • 富阳网站建设怎样南皮网站建设
  • 网站建设 镇江万达网站营销单页怎么做
  • 营口东站营销网站建设济南网站建设服务公司
  • 网站代理建设58黄页
  • 做网站的题目建筑工程类人才招聘
  • 手机管理网站WordPress有评论邮件通知
  • 怎么建个人网站金融保险网站模板
  • 网站免费观影怎么做凡科互动怎么发布
  • 黑山网站建设东莞人才市场最新招聘信息
  • 照片网站源码广州我网站制作
  • 网站做301跳转重庆沙坪坝有什么好玩的
  • 公司介绍网站平台搭建设计论文杭州seo技术培训
  • 涂料做哪个网站好减粘装置反应塔的特点
  • 网站建设珠海wordpress dns预加载
  • 全国网站开发公司网站有利于seo的细节
  • 投资网站wordpress怎么分段
  • 提供邯郸手机网站建设图片网站优化