生成基於雪花演算法的隨機編號

2021-09-13 00:14:34 字數 1183 閱讀 4478

<?php

class snowflake

static function randnumstr($length)

return $password;

}/**

* 生成基於雪花演算法的隨機編號

* @author shiva

* @param int $datacenterid 資料中心id 0-31

* @param int $workerid 任務程序id 0-31

* @return int 分布式id

*/public  function snowflake($datacenterid = 0, $workerid = 0)

else

self::$lasttimestamp = $timestamp;

$snowflakeid = (($timestamp - self::$twepoch) << 27) | (getmypid() << 12) | self::$lastsequence;

//$snowflakeid = (($timestamp - self::$twepoch) << 22) | ($datacenterid << 17) | ($workerid << 12) | self::$lastsequence;

return (string)$snowflakeid;

}/**

* 反向解析雪花演算法生成的編號

* @author shiva

* @param int|float $snowflakeid

* @return array

*/public  function unsnowflake($snowflakeid)

/*** 等待下一毫秒的時間戳

* @author shiva

* @param $lasttimestamp

* @return float

*/private static function tilnextmillis($lasttimestamp)

return $timestamp;

}/**

* 獲取毫秒級時間戳

* @author shiva

* @return float

*/private static function timegen()

}

Js Snowflake 雪花演算法 生成隨機ID

1 snowflake id外掛程式 import snowflakeid from snowflake id const guid num 2 原生使用 var snowflake class function if this.datacenterid this.maxdatacenterid t...

簡單隨機生成編號

所要講的這個是根據 當前時間加上隨機的3位數字組成的編號。從控制器中獲取隨機數,設定乙個三位數字的隨機範圍,再獲取到當前時間年月日時分秒轉換字串型別,在後面拼接3位數字,即可完成,再通過viewbag傳送到頁面上去,即可顯示出來。public actionresult bianhaoshenchen...

基於雪花演算法生成64位ID

import logging import time class generator object 64位id 1 符號位不用 41 毫秒 4 機器id 6 業務編碼 12 重複累加 基礎時間 毫秒 1577808000000 2020 01 01 00 00 最大支援時間差 21990232555...