在java中创建4字节唯一Id的策略



我们的java应用程序有一个4字节的大小限制来保存唯一的id。

我们被迫实现一个策略来创建一个4字节大小的唯一id。

有人知道创建它的策略吗

可以,从一个随机的32位整数开始,然后自增。

当你扩大规模时,其他任何东西都将过于苛刻(例如,如果你已经创建了10亿个id,并且需要随机生成一个新的id,你必须有一个10亿个条目表来检查其中的存在…哎哟!)。

但如果它绝对是随机和唯一的,你可以采取两种策略:

1)对到目前为止使用的每个id都有一个大的HashSet,并在生成新的随机id时检查集合中的存在性。如果是,则丢弃并重试。

2)将所有随机使用的ID存储在数据库中,并执行SELECT以查看新生成的随机ID是否存在。如果是,则丢弃并重试。

如果唯一ID更大,您可以使用Guid(也称为uuid),它生成的足够大,并且在不需要检查的情况下,您永远不会看到两个Guid在任何地方具有相同的值。

java中的Guids/uuid,参见http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html

我认为int可以满足您的要求。

你可以这样试试

private static byte[] synhead = {(byte)0xAA,0x55,0x7E,0x0B};

最新更新