<?php
// 生成唯一id, 主要針對的是分布式服務
// md5(伺服器mac位址+時間戳+程序id+自增id)
// 當應用於api時,由於(nginx)程序id一直在變化,所以自增id可以使用隨機數,同時避免檔案鎖影響api能力
// ip位址
function getipaddr()}}
return preg_replace("#\.#", "", $ipaddress);
}// 系統的實體地址
function getmacaddr()
}return preg_replace('#:#', "", $macaddr);
}// 程序id
function getrunningpid()
// 自增id
function getinc($iswebapi = false)
else
$id = strval($id);
file_put_contents($filename, $id);
flock($fp, lock_un | lock_nb);
fclose($fp);
}return $id;
}// 時間戳
function gettimestamp()
function makeuniqueid($iswebapi = false)
一直沒有想好怎麼生成乙個類似於mongoid 的應對分布式的id,今天寫了乙個粗粗的
雪花演算法生成分布式ID
package top.sponger.common.util import lombok.data 描述 twitter的分布式自增id雪花演算法snowflake public class snowflake if machineid max machine num machineid 0 th...
分布式唯一ID生成服務
snservice是一款基於分布式的唯一id生成服務,主要用於提供大數量業務資料建立唯一id的需要 服務提供最低10k s的唯一id請求處理.如果你部署服務的cpu資源達到4核的情況下那該服務最低可以提供100k s的請求處理能力.服務支援部署到linux mono 3.2.3和windows ne...
分布式唯一ID生成器
在應用程式中,經常需要全域性唯一的id作為資料庫主鍵。如何生成全域性唯一id?首先,需要確定全域性唯一id是整型還是字串?如果是字串,那麼現有的uuid就完全滿足需求,不需要額外的工作。缺點是字串作為id占用空間大,索引效率比整型低。如果採用整型作為id,那麼首先排除掉32位int型別,因為範圍太小...