ランダム生成の難しさは、衝突を回避する方法です。もちろん、それは可能ですが、アカウントとしては乱雑に見えますし、生成される桁数が長すぎます。
固定ヘッドは秒単位で正確な unixtime 時間を使用するため、このメソッドは 1 秒以内に同時衝突を解決するだけで済みます。1 秒を超える場合は、このヘッドの時間が変更されているはずです。同時に、この方法ではユーザーに対してランダムな注文番号を生成することもできます。
テスト条件は、ループを使用して、衝突が 0 件のランダムなアカウント (ミリ秒レベル) 10,000 個と、衝突が約 0 ~ 3 件の 100,000 個のアカウントを作成することです。これだけ多くのアカウントを瞬時に同時に作成するネット企業は存在しないはずなので、数十億PV規模なら十分対応できます。
~~~.java
// ランダムなユーザー名を自動的に生成します
// テスト、ループ内で 10,000 個のランダムなアカウントを作成、衝突は 0、100,000 個の衝突は 0 ~ 3 回あり、将来的には数十億の PV を処理するのに十分です
プライベート関数genUserNumber()
{
$chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$username = "";
for ( $i = 0; $i {
$username .= $chars[mt_rand(0 , strlen($chars))];
}
return strtoupper(base_convert(time() - 1420070400, 10, 36)).$username
}