php 生成分布式唯一ID

2021-06-21 02:01:04 字數 800 閱讀 4287

<?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型別,因為範圍太小...