私たちの Java アプリケーションには、一意の ID を保持するための 4 バイトのサイズ制限があります。
サイズが 4 バイトの一意の ID を作成する戦略を実装する必要があります。
それを作成するための戦略を知っている人はいますか
私たちの Java アプリケーションには、一意の ID を保持するための 4 バイトのサイズ制限があります。
サイズが 4 バイトの一意の ID を作成する戦略を実装する必要があります。
それを作成するための戦略を知っている人はいますか
はい、ランダムな 32 ビット整数から始めてインクリメントします。
スケールアップするにつれて、それ以外のものはすべて要求が高すぎます (たとえば、10 億の ID が既に作成されていて、新しい ID をランダムに生成する必要がある場合、内部の存在を確認するために 10 億のエントリ テーブルが必要です... 痛い!)。
しかし、絶対にランダムでユニークでなければならない場合は、次の 2 つの戦略を使用できます。
1)HashSet
これまでに使用されたすべてのIDを大きくして、新しいランダムIDを生成するたびにセット内に存在するかどうかを確認します. その場合は、破棄して再試行してください。
2) ランダムに使用されたすべての ID をデータベースに保存し、 aを実行しSELECT
て、新しく生成されたランダム ID が存在するかどうかを確認します。その場合は、破棄して再試行してください。
一意の ID がこれよりも大きい場合は、Guid (uuid とも呼ばれます) を使用できます。この Guid は十分に大きく生成され、2 つの Guid が同じ値を持つことは決してないので、確認する必要はありません。
Java の Guid/UUID については、 http: //docs.oracle.com/javase/7/docs/api/java/util/UUID.html を参照してください。
あなたはこのように試すことができます
private static byte[] synhead = {(byte)0xAA,0x55,0x7E,0x0B};
int
ご要望にお応えできると思います。