


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第PHP全局唯一ID生成*64bit=1bit為空缺+41bit毫秒時間戳+10bit機器id+12bit自增id
*當前結構****最多支持128項業(yè)務
*64bit=1bit空缺+7bit業(yè)務編號(128項業(yè)務)+39bit毫秒時間戳(與2017-06-01的差值)+5bit機器id(32臺)+4bit一級隨機數(shù)+4bit二級隨機數(shù)+4bit三級隨機數(shù)
$machineid_file=/data/machineid.txt
if(file_exists($machineid_file)){
$machine_id=intval(file_get_contents($machineid_file));
if($machine_id31||$machine_id0){
$machine_id=0;
}else{
$machine_id=0;
define(MACHINE_ID,$machine_id);
classBusinessIdHelper
publicstatic$start_stamp=1496246400000;//2017-06-0100:00:00的毫秒級時間戳
publicstatic$max_rand=15;
publicstaticfunctiongenerateId($business_id)
//1bit-頭部空缺
$head_bin=str_pad(decbin(0),1,0,STR_PAD_LEFT);
//7bit-7bit業(yè)務編號(最多128項業(yè)務)
$business_id_bin=str_pad(decbin($business_id),7,0,STR_PAD_LEFT);
//39bit-(now-$start_stamp)的毫秒級時間戳差值
$now_stamp=floor(microtime(true)*1000);
$diff_stamp_bin=str_pad(decbin($now_stamp-self::$start_stamp),39,0,STR_PAD_LEFT);
//5bit-32臺機器
$machine_id_bin=str_pad(decbin(MACHINE_ID),5,0,STR_PAD_LEFT);
//4bit-4位隨機數(shù)(0~15)
//一級
$random1=mt_rand(0,self::$max_rand);
$random1_bin=str_pad(decbin($random1),4,0,STR_PAD_LEFT);
//二級
$random2=mt_rand(0,self::$max_rand);
$random2_bin=str_pad(decbin($random2),4,0,STR_PAD_LEFT);
//三級
$random3=mt_rand(0,self::$max_rand);
$random3_bin=str_pad(decbin($random3),4,0,STR_PAD_LEFT);
//鏈接二進制串
$pack_data=$head_bin.$business_id_bin.$diff_stamp_bin.$machine_id_bin.$random1_bin.$random2_bin.$random3_bin;
var_dump($business_id);
var_dump($now_stamp);
var_dump(MACHINE_ID);
var_dump($pid);
var_dump($pack_data);
returnbindec($pack_data);
publicstaticfunctionparseId($id)
//數(shù)據(jù)不滿64位的,需要補齊
$data_bin=str_pad(decbin($id),64,0,STR_PAD_LEFT);
$head_bin=substr($data_bin,0,1);
$business_id_bin=substr($data_bin,1,7);
$diff_stamp_bin=substr($data_bin,8,39);
$machine_id_bin=substr($data_bin,47,5);
$random1_bin=substr($data_bin,52,4);
$random2_bin=substr($data_bin,56,4);
$random3_bin=substr($data_bin,60,4);
$head=bindec($head_bin);
$business_id=bindec($business_id_bin);
$diff_stamp=bindec($diff_stamp_bin);
$machine_id=bindec($machine_id_bin);
$random1=bindec($random1_bin);
$random2=bindec($random2_bin);
$random3=bindec($random3_bin);
$stamp=self::$start_stamp+$diff_stamp;//毫秒
$data=[
head=$head,
business_id=$business_id,
stamp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣東樂昌產(chǎn)業(yè)轉(zhuǎn)移工業(yè)園投資開發(fā)有限公司招聘筆試參考題庫含答案解析
- 四川省成都市雙流棠湖中學2023-2024學年高一上學期期中生物 無答案
- 重慶市西南大學附屬中學2022-2023學年高二下學期期末物理試題 無答案
- 天津市九校聯(lián)考2023屆高三模擬考試數(shù)學試題 無答案
- 安全如廁課件
- 安全培訓課件編寫
- 安全培訓新課件
- 江西小學紅色文化課件教學
- 安全交通課件
- 漢服文化課件下載
- 麻醉科醫(yī)師晉升副主任醫(yī)師病例分析專題報告三篇
- HG∕T 3714-2014 耐油輸送帶 國標
- 北師大版八年級數(shù)學下冊??碱}專練專題09與旋轉(zhuǎn)有關的最值問題(原卷版+解析)
- 云南省煙葉生產(chǎn)基礎設施建設管理規(guī)程
- 【正版授權】 ISO 4532:1991 EN Vitreous and porcelain enamels - Determination of the resistance of enamelled articles to impact - Pistol test
- 2023-2024學年人教版數(shù)學八年級下冊期末復習試卷
- 園區(qū)綠化設計方案
- 火力發(fā)電廠汽水管道支吊架設計手冊
- 第五章-包裝容器造型設計
- 數(shù)字貿(mào)易學 課件 第1章 導論
- 《陣列式消聲器技術要求》(T-CAEPI 17-2019)
評論
0/150
提交評論